Beispiel #1
0
 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")
Beispiel #2
0
    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")
Beispiel #3
0
 def activateUser(self, uid):
     user = self.getUserUuid(uuid=uid)
     if user != None:
         user["activate"] = True
         self.setUser(user)
         return True
     else:
         raise SQLException("UUID")
Beispiel #4
0
 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")
Beispiel #5
0
 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")
Beispiel #6
0
 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")
Beispiel #7
0
 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")
Beispiel #8
0
 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")
Beispiel #9
0
 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")
Beispiel #10
0
 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")
Beispiel #11
0
 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")
Beispiel #12
0
 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")