[MERGE] latest trunk
[odoo/odoo.git] / addons / auth_signup / auth_signup.py
1 from openerp.osv import osv, fields
2
3 class res_users(osv.Model):
4     _inherit = 'res.users'
5
6     _sql_constraints = [
7         ('email_uniq', 'UNIQUE (user_email)', 'You can not have two users with the same email!')
8     ]
9
10 class signup_signup(osv.TransientModel):
11     _name = 'auth.signup'
12
13     # TODO add captcha
14     _columns = {
15         'name': fields.char('Name', size=64),
16         'email': fields.char('Email', size=64),
17         'password': fields.char('Password', size=64),
18     }
19
20     def create(self, cr, uid, values, context=None):
21         # NOTE here, invalid values raises exceptions to avoid storing
22         # sensitive data into the database (which then are available to anyone)
23
24         new_user = {
25             'name': values['name'],
26             'login': values['email'],
27             'user_email': values['email'],
28             'password': values['password'],
29             'active': True,
30         }
31
32         user_template_id = self.pool.get('ir.config_parameter').get_param(cr, uid, 'auth.signup_template_user_id', 0)
33         if user_template_id:
34             self.pool.get('res.users').copy(cr, 1, user_template_id, new_user, context=context)
35         else:
36             self.pool.get('res.users').create(cr, 1, new_user, context=context)
37
38         # Dont store anything
39         return 0