diff options
Diffstat (limited to 'accounts/account.py')
-rw-r--r-- | accounts/account.py | 65 |
1 files changed, 1 insertions, 64 deletions
diff --git a/accounts/account.py b/accounts/account.py index fdfeba2..72ea42d 100644 --- a/accounts/account.py +++ b/accounts/account.py @@ -1,7 +1,5 @@ # -*- coding: utf-8 -*- -from utils import Service -from uuid import uuid4 - +from models import Service SERVICES = [ Service('foren', 'Foren', 'https://foren.spline.inf.fu-berlin.de/'), @@ -10,64 +8,3 @@ SERVICES = [ Service('jabber', 'Jabber', 'http://jabber.spline.de/'), Service('zettel', 'Zettel', 'https://zettel.spline.inf.fu-berlin.de/'), ] - - -class Account: - """ - An Account represents a complex ldap tree entry for spline users. - For each service a spline user can have a different password. - """ - def __init__(self, uid, mail, services=[], dn=None, password=None): - self.uid = uid.encode('utf8') if isinstance(uid, unicode) else uid - self.services = services - self.dn = dn - self.password = password.encode('utf8') if isinstance(password, unicode) else password - self.new_password_root = None - self.new_password_services = {} - self.attributes = {} - - self._set_attribute('mail', mail) - - def __repr__(self): - return "<Account uid=%s>" % self.uid - - - def reset_password(self, service): - self.new_password_services[service] = (None, None) - - def change_password(self, new_password, old_password='', service=None): - """ - Changes a password for a given service. You have to use the - AccountService class to make the changes permanent. If no service is - given, the root password will be changed. - """ - if isinstance(new_password, unicode): - new_password = new_password.encode('utf8') - - if isinstance(old_password, unicode): - old_password = old_password.encode('utf8') - - if not service: - self.new_password_root = (old_password, new_password) - else: - self.new_password_services[service] = (old_password, new_password) - - def _set_attribute(self, key, value): - if isinstance(value, unicode): - value = value.encode('utf8') - - self.attributes[key] = value - - def change_email(self, new_mail): - """ - Changes the mail address of an account. You have to use the - AccountService class to make changes permanent. - """ - self._set_attribute('mail', new_mail) - - def __getattr__(self, name): - if name in self.attributes: - return self.attributes[name] - - raise AttributeError("'%s' object has no attribute '%s'" % - (self.__class__.__name__, name)) |