|
|
@ -34,20 +34,24 @@ class ResUsers(models.Model): |
|
|
|
""" |
|
|
|
#recherche si un contact existe avec l'adresse email saisie |
|
|
|
#on ignore les majsucule : operateur ilike |
|
|
|
partner_email=self.env['res.partner'].sudo().search([('email','ilike',values.get('login'))],limit=1) |
|
|
|
#_logger.error("partner_email:"+str(partner_email.email)) |
|
|
|
#si le contact existe déjà on vérifie s'il existe déjà un compte utilisateur |
|
|
|
if partner_email: |
|
|
|
user_email=self.env['res.users'].sudo().search([('partner_id','=',int(partner_email.id))],limit=1) |
|
|
|
#si un compte utilisateur existe déjà avec l'adresse email,on ne crer pas le compte mais on fait la connexion |
|
|
|
if user_email: return (self.env.cr.dbname, values.get('login'), values.get('password')) |
|
|
|
#si pas de compte utilisateur on crée un token pour le contact trouvé |
|
|
|
else: |
|
|
|
partner_email.signup_type='signup' |
|
|
|
partner_email.signup_token=self.random_token() |
|
|
|
partner_email.signup_expiration=datetime.today()+timedelta(days=1) |
|
|
|
token=partner_email.signup_token |
|
|
|
|
|
|
|
if not token: |
|
|
|
partner_email=self.env['res.partner'].sudo().search([('email','ilike',values.get('login'))],limit=1) |
|
|
|
#_logger.error("errKpartner_email:"+str(partner_email.email)) |
|
|
|
#si le contact existe déjà on vérifie s'il existe déjà un compte utilisateur |
|
|
|
if partner_email: |
|
|
|
_logger.error("errK1partner_email:"+str(partner_email.email)) |
|
|
|
user_email=self.env['res.users'].sudo().search([('partner_id','=',int(partner_email.id))],limit=1) |
|
|
|
#si un compte utilisateur existe déjà avec l'adresse email,on ne crer pas le compte mais on fait la connexion |
|
|
|
if user_email: |
|
|
|
_logger.error("errK2user_email") |
|
|
|
return (self.env.cr.dbname, values.get('login'), values.get('password')) |
|
|
|
#si pas de compte utilisateur on crée un token pour le contact trouvé |
|
|
|
else: |
|
|
|
partner_email.signup_type='signup' |
|
|
|
partner_email.signup_token=self.random_token() |
|
|
|
partner_email.signup_expiration=datetime.today()+timedelta(days=1) |
|
|
|
token=partner_email.signup_token |
|
|
|
_logger.error("errK3token"+token) |
|
|
|
|
|
|
|
|
|
|
|
if token: |
|
|
@ -67,7 +71,8 @@ class ResUsers(models.Model): |
|
|
|
values.pop('lang', None) |
|
|
|
|
|
|
|
if partner_user: |
|
|
|
_logger.error("user exists, modify it according to values"+str(partner.email)) |
|
|
|
|
|
|
|
_logger.error("errK4user exists, modify it according to values"+str(partner.email)) |
|
|
|
# user exists, modify it according to values |
|
|
|
values.pop('login', None) |
|
|
|
values.pop('name', None) |
|
|
@ -77,7 +82,7 @@ class ResUsers(models.Model): |
|
|
|
return (self.env.cr.dbname, partner_user.login, values.get('password')) |
|
|
|
else: |
|
|
|
|
|
|
|
_logger.error("user does not exist: sign up invited user") |
|
|
|
_logger.error("errK5user does not exist: sign up invited user") |
|
|
|
# user does not exist: sign up invited user |
|
|
|
values.update({ |
|
|
|
'name': partner.name, |
|
|
@ -91,6 +96,7 @@ class ResUsers(models.Model): |
|
|
|
partner_user._notify_inviter() |
|
|
|
else: |
|
|
|
# no token, sign up an external user |
|
|
|
_logger.error("errK6no token, sign up an external user") |
|
|
|
values['email'] = values.get('email') or values.get('login') |
|
|
|
|
|
|
|
|
|
|
|