Revision 76cc889c
b/db/models.py | ||
---|---|---|
8 | 8 |
|
9 | 9 |
class SynnefoUser(models.Model): |
10 | 10 |
|
11 |
#TODO: Amend this when we have groups |
|
11 | 12 |
ACCOUNT_TYPE = ( |
12 | 13 |
('STUDENT', 'Student'), |
13 | 14 |
('PROFESSOR', 'Professor') |
... | ... | |
21 | 22 |
type = models.CharField('Current Image State', choices=ACCOUNT_TYPE, max_length=30) |
22 | 23 |
created = models.DateTimeField('Time of creation', auto_now_add=True) |
23 | 24 |
updated = models.DateTimeField('Time of last update', auto_now=True) |
24 |
|
|
25 |
|
|
25 | 26 |
class Meta: |
26 | 27 |
verbose_name = u'Synnefo User' |
27 | 28 |
|
28 | 29 |
def __unicode__(self): |
29 | 30 |
return self.name |
30 | 31 |
|
31 |
def __init__(self, *args, **kw): |
|
32 |
"""Initialize state for just created VM instances.""" |
|
33 |
super(SynnefoUser, self).__init__(*args, **kw) |
|
34 |
# This gets called BEFORE an instance gets save()d for |
|
35 |
# the first time. |
|
36 |
if not self.pk: |
|
37 |
self.name = kw['name'] |
|
38 |
self.realname = kw['realname'] |
|
39 |
|
|
40 | 32 |
def get_limit(self, limit_name): |
41 | 33 |
"""Returns the limit value for the specified limit""" |
42 | 34 |
limit_objs = Limit.objects.filter(name=limit_name, user=self) |
b/logic/tests.py | ||
---|---|---|
107 | 107 |
def test_register_student(self): |
108 | 108 |
users.register_student ("Jimmy Page", "jpage", "jpage@zoso.com") |
109 | 109 |
user = SynnefoUser.objects.get(name = "jpage") |
110 |
|
|
111 |
self.assertNotEquals(user, None) |
b/logic/users.py | ||
---|---|---|
9 | 9 |
import hashlib |
10 | 10 |
|
11 | 11 |
@transaction.commit_on_success |
12 |
def _register_user(fullname, username, uniqid, type): |
|
13 |
user = SynnefoUser(fullname, username, uniqid, type) |
|
12 |
def _register_user(f, u, unq, t): |
|
13 |
user = SynnefoUser() |
|
14 |
user.realname = f |
|
15 |
user.name = u |
|
16 |
user.uniq = unq |
|
17 |
user.type = t |
|
18 |
user.auth_token = create_auth_token(user) |
|
19 |
user.credit = 10 #TODO: Fix this when we have a per group policy |
|
14 | 20 |
user.save() |
15 | 21 |
|
22 |
@transaction.commit_on_success |
|
23 |
def delete_user(user): |
|
24 |
if user is not None: |
|
25 |
user.delete() |
|
26 |
|
|
16 | 27 |
def register_student(fullname, username, uniqid): |
17 | 28 |
_register_user(fullname, username, uniqid, 'STUDENT') |
18 | 29 |
|
19 | 30 |
def register_professor(fullname, username, uniqid): |
20 | 31 |
_register_user(fullname, username, uniqid, 'PROFESSOR') |
21 | 32 |
|
22 |
@transaction.commit_on_success |
|
23 |
def delete_user(user): |
|
24 |
if user is not None: |
|
25 |
user.delete() |
|
26 |
|
|
27 | 33 |
def create_auth_token(user): |
28 |
md5 = hashlib.md5 |
|
29 |
md5.update(user.uniqid)
|
|
30 |
md5.update(user.username)
|
|
31 |
return md5.digest() |
|
34 |
md5 = hashlib.md5()
|
|
35 |
md5.update(user.uniq) |
|
36 |
md5.update(user.name) |
|
37 |
return md5.hexdigest()
|
|
32 | 38 |
|
33 | 39 |
#def login(username, password): |
34 |
|
Also available in: Unified diff