[FIX] auth_signup: store and retrieve config parameters that may be null
bzr revid: rco@openerp.com-20120925125522-2t74fta15yfoesc1
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user