[FIX] auth_signup: store and retrieve config parameters that may be null

bzr revid: rco@openerp.com-20120925125522-2t74fta15yfoesc1
This commit is contained in:
Raphael Collet
2012-09-25 14:55:22 +02:00
parent 597919467d
commit e184913f34
2 changed files with 12 additions and 7 deletions
+7 -4
View File
@@ -20,6 +20,7 @@
##############################################################################
from openerp.osv import osv, fields
from openerp.tools.safe_eval import safe_eval
class base_config_settings(osv.TransientModel):
_inherit = 'base.config.settings'
@@ -31,13 +32,15 @@ class base_config_settings(osv.TransientModel):
def get_default_auth_signup_template_user_id(self, cr, uid, fields, context=None):
icp = self.pool.get('ir.config_parameter')
# we use safe_eval on the result, since the value of the parameter is a nonempty string
return {
'auth_signup_uninvited': icp.get_param(cr, uid, 'auth_signup.allow_uninvited', False),
'auth_signup_template_user_id': icp.get_param(cr, uid, 'auth_signup.template_user_id', False),
'auth_signup_uninvited': safe_eval(icp.get_param(cr, uid, 'auth_signup.allow_uninvited', 'False')),
'auth_signup_template_user_id': safe_eval(icp.get_param(cr, uid, 'auth_signup.template_user_id', 'False')),
}
def set_auth_signup_template_user_id(self, cr, uid, ids, context=None):
config = self.browse(cr, uid, ids[0], context=context)
icp = self.pool.get('ir.config_parameter')
icp.set_param(cr, uid, 'auth_signup.allow_uninvited', config.auth_signup_uninvited)
icp.set_param(cr, uid, 'auth_signup.template_user_id', config.auth_signup_template_user_id.id)
# we store the repr of the values, since the value of the parameter is a required string
icp.set_param(cr, uid, 'auth_signup.allow_uninvited', repr(config.auth_signup_uninvited))
icp.set_param(cr, uid, 'auth_signup.template_user_id', repr(config.auth_signup_template_user_id.id))
+5 -3
View File
@@ -23,6 +23,7 @@ import openerp
from openerp.osv import osv, fields
from openerp import SUPERUSER_ID
from openerp.tools.misc import DEFAULT_SERVER_DATETIME_FORMAT
from openerp.tools.safe_eval import safe_eval
import time
import random
@@ -152,10 +153,11 @@ class res_users(osv.Model):
""" create a new user from the template user """
# check that uninvited users may sign up
ir_config_parameter = self.pool.get('ir.config_parameter')
if token and not ir_config_parameter.get_param(cr, uid, 'auth_signup.allow_uninvited', False):
raise Exception('Signup is not allowed for uninvited users')
if not token:
if not safe_eval(ir_config_parameter.get_param(cr, uid, 'auth_signup.allow_uninvited', 'False')):
raise Exception('Signup is not allowed for uninvited users')
template_user_id = ir_config_parameter.get_param(cr, uid, 'auth_signup.template_user_id')
template_user_id = safe_eval(ir_config_parameter.get_param(cr, uid, 'auth_signup.template_user_id', 'False'))
assert template_user_id, 'Signup: missing template user'
values.update({'active': True, 'signup_token': False, 'signup_expiration': False})
return self.copy(cr, uid, template_user_id, values, context=context)