1 import logging
, re
, datetime
, uuid
, hashlib
4 from fma
import SuperDoc
5 from fma
.orm
import relation
8 _collection_name
= 'users'
12 created_discussions
= relation('Discussion',pk
='creator_id==_id',listmode
=True)
15 'req' : ['name','email','passkey']
20 return self
.idname
and '/user/' + self
.idname
or ''
24 #TODO: check for existing name or email
25 self
.idname
= self
.name
.lower()
26 self
.email
= self
.email
.lower()
27 self
.create_timestamp
= datetime
.datetime
.utcnow()
28 self
.salt
= '%x' % (crc32(str(uuid
.uuid4())) & 0xffffffffL
)
29 self
.passkey
= hashlib
.md5(self
.salt
+ hashlib
.sha1(self
.passkey
).hexdigest()).hexdigest()
30 #TODO: check config for activation method
32 #self.activation_key = str(uuid.uuid4())
34 if self
.admin
is None:
37 super(User
, self
).save()
39 def login(self
, passkey
):
40 return self
.passkey
== hashlib
.md5(self
.salt
+ hashlib
.sha1(passkey
).hexdigest()).hexdigest()