summaryrefslogtreecommitdiffstats
path: root/accounts/account.py
diff options
context:
space:
mode:
Diffstat (limited to 'accounts/account.py')
-rw-r--r--accounts/account.py65
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))