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