def upgradePermis(self, user, upd, newPermissions): admin = self.getUser(email=user) if newPermissions < OWNER_LEVEL: return False if admin['permissions'] <= OWNER_LEVEL: upg = self.getUser(email=upd) if upg != None: upg['permissions'] = newPermissions upg['banned'] = False self.setUser(upg) return True else: raise SQLException("User") elif admin["permissions"] <= ADMIN_LEVEL: if newPermissions <= ADMIN_LEVEL: raise MissingPermission("Owner") else: upg = self.getUser(email=upd) if upg != None: upg["permissions"] = newPermissions upg["banned"] = False self.setUser(upg) return True else: raise SQLException("User") else: raise MissingPermission("Admin")
def updatePlugin(self, user, pid, **kwargs): """Update a plugin. Checks the Array to make sure the field is available to modify Arguments: user -- loged users email pid -- Plugin ID kwargs -- insert the key words or the fields you want to update Returns: if any of the kwargs keywords isn't True the array it will return a False. if all of the kwargs are in the array it will update and return the updated plugin """ user = self.getUser(user) plugin = self.getPlugin(pid=pid) if plugin != None: if user["permissions"] <= ADMIN_LEVEL or plugin[ 'uploader'] == user['email']: for i in kwargs.keys(): try: if PLUGIN_INFO[i]: plugin[i] = kwargs[i] else: pass except KeyError: return False self.setPlugin(plugin) return plugin else: raise MissingPermission("Admin or Uploader") else: raise SQLException("Plugin ID")
def activateUser(self, uid): user = self.getUserUuid(uuid=uid) if user != None: user["activate"] = True self.setUser(user) return True else: raise SQLException("UUID")
def unlikePlugin(self, user, pid): user = self.getUser(email=user) plugin = self.getPlugin(pid=pid) if plugin != None: del user['likes'][user['likes'].index(plugin['id'])] plugin['likes'] -= 1 self.setUser(user) self.setPlugin(plugin) else: raise SQLException("Plugin Id")
def likePlugin(self, user, pid): user = self.getUser(email=user) plugin = self.getPlugin(pid=pid) if plugin != None: user['likes'].append(plugin['id']) plugin['likes'] += 1 self.setUser(user) self.setPlugin(plugin) else: raise SQLException("Plugin Id")
def allowPlugin(self, user, pid): user = self.getUser(email=user) if user["permissions"] <= MOD_LEVEL: plugin = self.getPlugin(pid=pid) if plugin != None: plugin["approved"] = True self.plugins.update(plugin, ['id']) else: raise SQLException("Plugin ID") else: raise MissingPermission("Moderator")
def transferPluginOwner(self, user, pid, newUser): admin = self.getUser(email=user) if admin["permission"] <= ADMIN_LEVEL: newOwner = self.getUser(email=newUser) if newOwner != None: plugin = self.getPlugin(pid=pid) if plugin != None: previousOwner = self.getUser(plugin['uploader']) del previousOwner['plugins'][ previousOwner['plugins'].index(plugin[id])] newOwner['plugins'].append(pid) plugin['uploader'] = newOwner['email'] self.setPlugin(plugin) self.setUser(newOwner) self.setUser(previousOwner) else: raise SQLException("Plugin") else: raise SQLException("User") else: raise MissingPermission("Admin")
def banUser(self, user, toBan): user = self.getUser(email=user) ban = self.getUser(email=toBan) if user['permissions'] <= ADMIN_LEVEL or user["email"] == ban["email"]: if ban != None: ban['banned'] = True ban['permissions'] = BAN_LEVEL self.setUser(ban) return True else: raise SQLException("User") else: raise MissingPermission("Admin")
def deleteUser(self, user, todel): admin = self.getUser(user) todel = self.getUser(todel) if todel != None: if admin['permissions'] <= ADMIN_LEVEL or admin[uuid] == todel[ uuid]: for i in todel["plugins"]: self.removePlugin(i) self.users.delete(email=todel['email']) else: raise MissingPermission("Admin or User Creator") else: raise SQLException("User")
def strikeUser(self, user, toStr): user = self.getUser(email=user) if user['permissions'] <= MOD_LEVEL: strike = self.getUser(email=self.getPlugin(pid=toStr)['uploader']) if strike != None: strike['strikes'] += 1 if strike['strikes'] >= MAX_STIKES: strike['banned'] = True strike['permissions'] = BAN_LEVEL self.setUser(strike) self.removePlugin(user['email'], toStr) return True else: raise SQLException("Plugin's creator") else: raise MissingPermission("Moderator")
def removePlugin(self, user, pid): admin = self.getUser(user) plugin = self.getPlugin(pid=pid) if plugin != None: if admin['permissions'] <= ADMIN_LEVEL or plugin[ 'uploader'] == admin['email'] or ( admin['permissions'] <= MOD_LEVEL and not plugin['approved']): user = self.getUser(email=plugin["uploader"]) del user["plugins"][user["plugins"].index(pid)] self.setUser(user) self.plugins.delete(id=pid) return True else: raise MissingPermission("Admin or Uploader") else: raise SQLException("Plugin ID")
def updateUser(self, loged, tomod, **kwargs): loged = self.getUser(email=loged) user = self.getUser(email=tomod) if user != None: if loged['email'] == user['email']: for i in kwargs.keys(): if USER_INFO[i]: if i == "passwd": phash = str(self.computeMD5hash(kwargs[i])) del kwargs[i] user["hash"] = phash else: user[i] = kwargs[i] else: pass else: raise MissingPermission("User Creator") self.setUser(user) return True else: raise SQLException("User")