]> jfr.im git - erebus.git/blobdiff - erebus.py
admin_user module to set users' glevel
[erebus.git] / erebus.py
index 0377d92ded68ae4014a3546e917048ec4303bb2d..42a2f416cefef07c20fdcfc3935431a63934ec9a 100644 (file)
--- a/erebus.py
+++ b/erebus.py
@@ -24,7 +24,10 @@ class Erebus(object): #singleton to pass around
        class User(object):
                def __init__(self, nick, auth=None):
                        self.nick = nick
-                       self.auth = auth
+                       if auth is None:
+                               self.auth = None
+                       else:
+                               self.auth = auth.lower()
                        self.checklevel()
 
                        self.chans = []
@@ -59,6 +62,23 @@ class Erebus(object): #singleton to pass around
                                        self.glevel = 0
                        return self.glevel
 
+               def setlevel(self, level, savetodb=True):
+                       if savetodb:
+                               if level != 0:
+                                       c = main.query("REPLACE INTO users (auth, level) VALUES (%s, %s)", (self.auth, level))
+                               else:
+                                       c = main.query("DELETE FROM users WHERE auth = %s", (self.auth,))
+                                       if c == 0: # no rows affected
+                                               c = True # is fine
+                               if c:
+                                       self.glevel = level
+                                       return True
+                               else:
+                                       return False
+                       else:
+                               self.glevel = level
+                               return True
+
                def join(self, chan):
                        if chan not in self.chans: self.chans.append(chan)
                def part(self, chan):
@@ -117,6 +137,9 @@ class Erebus(object): #singleton to pass around
                                        return True
                                else:
                                        return False
+                       else:
+                               self.levels[auth] = level
+                               return True
 
                def userjoin(self, user, level=None):
                        if user not in self.users: self.users.append(user)