summaryrefslogtreecommitdiffstats
path: root/module/datatypes
diff options
context:
space:
mode:
authorGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2012-08-13 17:40:10 +0200
committerGravatar RaNaN <Mast3rRaNaN@hotmail.de> 2012-08-13 17:40:10 +0200
commit941e3021000e59020f66419cc2156aee30972121 (patch)
tree49332fb148dd50c0ee78e4c20336c2848921bc1a /module/datatypes
parentmerge (diff)
downloadpyload-941e3021000e59020f66419cc2156aee30972121.tar.xz
working login
Diffstat (limited to 'module/datatypes')
-rw-r--r--module/datatypes/User.py40
-rw-r--r--module/datatypes/__init__.py1
2 files changed, 34 insertions, 7 deletions
diff --git a/module/datatypes/User.py b/module/datatypes/User.py
index 6ea958770..d48111182 100644
--- a/module/datatypes/User.py
+++ b/module/datatypes/User.py
@@ -17,17 +17,45 @@
###############################################################################
-from module.Api import UserData
+from module.Api import UserData, Permission, Role, has_permission
+#TODO: activate user
#noinspection PyUnresolvedReferences
class User(UserData):
@staticmethod
- def fromUserData(manager, user):
- return User(manager, user.uid, user.name, user.email, user.role, user.permission, user.folder,
+ def fromUserData(api, user):
+ return User(api, user.uid, user.name, user.email, user.role, user.permission, user.folder,
user.traffic, user.dllimit, user.dlquota, user.hddquota, user.user, user.templateName)
- def __init__(self, manager, *args):
- UserData.__init__(*args)
- self.m = manager
+ def __init__(self, api, *args):
+ UserData.__init__(self, *args)
+ self.api = api
+
+ def toUserData(self):
+ return UserData()
+
+ def hasPermission(self, perms):
+ """ Accepts permission bit or name """
+
+ if isinstance(perms, basestring) and hasattr(Permission, perms):
+ perms = getattr(Role, perms)
+
+ return has_permission(self.permission, perms)
+
+ def hasRole(self, role):
+ if isinstance(role, basestring) and hasattr(Role, role):
+ role = getattr(Role, role)
+
+ return self.role == role
+
+ def isAdmin(self):
+ return self.hasRole(Role.Admin)
+
+ @property
+ def handle(self):
+ """ Internal user handle used for most operations (secondary share handle with primary user) """
+ if self.hasRole(Role.Admin):
+ return None
+ return self.user if self.user else self.uid
diff --git a/module/datatypes/__init__.py b/module/datatypes/__init__.py
index 4b31e848b..e69de29bb 100644
--- a/module/datatypes/__init__.py
+++ b/module/datatypes/__init__.py
@@ -1 +0,0 @@
-__author__ = 'christian'