From 0d2d6daef850ac6bcc7fafccd230e52d2a862c2c Mon Sep 17 00:00:00 2001 From: RaNaN Date: Sun, 3 Jun 2012 17:45:10 +0200 Subject: updates for database + api --- module/datatypes/User.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 module/datatypes/User.py (limited to 'module/datatypes/User.py') diff --git a/module/datatypes/User.py b/module/datatypes/User.py new file mode 100644 index 000000000..6ea958770 --- /dev/null +++ b/module/datatypes/User.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +############################################################################### +# Copyright(c) 2008-2012 pyLoad Team +# http://www.pyload.org +# +# This file is part of pyLoad. +# pyLoad is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# Subjected to the terms and conditions in LICENSE +# +# @author: RaNaN +############################################################################### + + +from module.Api import UserData + +#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, + user.traffic, user.dllimit, user.dlquota, user.hddquota, user.user, user.templateName) + + def __init__(self, manager, *args): + UserData.__init__(*args) + self.m = manager + -- cgit v1.2.3 From 941e3021000e59020f66419cc2156aee30972121 Mon Sep 17 00:00:00 2001 From: RaNaN Date: Mon, 13 Aug 2012 17:40:10 +0200 Subject: working login --- module/datatypes/User.py | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) (limited to 'module/datatypes/User.py') 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 -- cgit v1.2.3