Browse Source

bug doublons contact creation compte

dev-rcn
root 3 years ago
parent
commit
e2a6cdd091
2 changed files with 23 additions and 17 deletions
  1. +1
    -1
      models/__init__.py
  2. +22
    -16
      models/res_users.py

+ 1
- 1
models/__init__.py View File

@ -20,6 +20,6 @@ from . import booking_donation
from . import event_media_link
from . import mailing_list
#from . import account
#from . import res_users
from . import res_users
from . import membership_import

+ 22
- 16
models/res_users.py View File

@ -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')


Loading…
Cancel
Save