[MERGE]
[odoo/odoo.git] / addons / auth_signup / controllers / main.py
1 import logging
2
3 import werkzeug.urls
4
5 from openerp.modules.registry import RegistryManager
6 from openerp.addons.web.controllers.main import login_and_redirect
7 import openerp.addons.web.common.http as openerpweb
8 from openerp import SUPERUSER_ID
9
10 _logger = logging.getLogger(__name__)
11
12 class OpenIDController(openerpweb.Controller):
13     _cp_path = '/auth_signup'
14
15     @openerpweb.httprequest
16     def signup(self, req, dbname, name, login, password):
17         url = '/'
18         registry = RegistryManager.get(dbname)
19         with registry.cursor() as cr:
20             try:
21                 Users = registry.get('res.users')
22                 credentials = Users.auth_signup(cr, SUPERUSER_ID, name, login, password)
23                 cr.commit()
24                 return login_and_redirect(req, *credentials)
25             except AttributeError:
26                 # auth_signup is not installed
27                 _logger.exception('attribute error when signup')
28                 url = "/#action=auth_signup&error=NA"   # Not Available
29             except Exception:
30                 # signup error
31                 _logger.exception('error when signup')
32                 url = "/#action=auth_signup&error=UE"   # Unexcpected Error
33         return werkzeug.utils.redirect(url)
34
35 # vim:expandtab:tabstop=4:softtabstop=4:shiftwidth=4: