def change_profile(self): web_user = self.request.web_user web_user.party.firstname = self.appstruct['firstname'] # save separate web_user.party.lastname = self.appstruct['lastname'] # for clarity web_user.party.name = (web_user.party.firstname + ' ' + web_user.party.lastname) # self.appstruct['name'] TODO: generate name using a tryton trigger if self.appstruct['email'] != web_user.email: web_user.new_email = self.appstruct['email'] # email verification! web_user.save() template_variables = { 'link': self.request.resource_url( self.request.root, 'verify_email', WebUser.get_opt_in_uuid_by_id(web_user.id) ) } send_mail( self.request, template="new_email_verification", variables=template_variables, recipients=[web_user.new_email] ) web_user.party.save() if self.appstruct['email'] == web_user.email: log.info( "edit profile add successful for %s" % (web_user.party.name)) self.request.session.flash( _(u"Profile changed for: ${name}", mapping={'name': web_user.party.name}), 'main-alert-success' ) else: log.info( "edit profile add successful for %s, activation email sent." % (web_user.party.name)) self.request.session.flash( _(u"Profile changed for: ${name}" " -- activation email for new email address sent." " Please check your (new) email inbox.", mapping={'name': web_user.party.name}), 'main-alert-success' ) self.redirect()
def change_profile(self): web_user = self.request.web_user web_user.party.firstname = self.appstruct['firstname'] # save separate web_user.party.lastname = self.appstruct['lastname'] # for clarity web_user.party.name = (web_user.party.firstname + ' ' + web_user.party.lastname) # self.appstruct['name'] TODO: generate name using a tryton trigger if self.appstruct['email'] != web_user.email: web_user.new_email = self.appstruct['email'] # email verification! web_user.save() template_variables = { 'link': self.request.resource_url( self.request.root, 'verify_email', WebUser.get_opt_in_uuid_by_id(web_user.id)) } send_mail(self.request, template="new_email_verification", variables=template_variables, recipients=[web_user.new_email]) web_user.party.save() if self.appstruct['email'] == web_user.email: log.info("edit profile add successful for %s" % (web_user.party.name)) self.request.session.flash( _(u"Profile changed for: ${name}", mapping={'name': web_user.party.name}), 'main-alert-success') else: log.info( "edit profile add successful for %s, activation email sent." % (web_user.party.name)) self.request.session.flash( _( u"Profile changed for: ${name}" " -- activation email for new email address sent." " Please check your (new) email inbox.", mapping={'name': web_user.party.name}), 'main-alert-success') self.redirect()
def register(self): _create = False _web_user = { 'email': self.data['email'], 'password': self.data['password'], 'roles': [('add', [WebUserRole.search_by_code('licenser').id])] } _c3smembership = self.context.registry['services']['c3smembership'] template_variables = {} # user is already registered if self.is_registered(_web_user): # user passes authentication (accidently registered to login) if self.passes_authentication(_web_user): opt_in_state = WebUser.get_opt_in_state_by_email( _web_user['email']) if opt_in_state == 'opted-in': self.request.session.flash( _(u"You are already registered with your " u"credentials."), 'main-alert-info') self.login() return else: self.request.session.flash( _(u"Your email address is not verified yet. Please " u"follow the instructions in our email."), 'main-alert-info') return # user fails authentication (email already registered) else: template_name = "registration-fail_registered" # user is not registered yet else: # user claims to be a c3s member if self.is_claiming_membership(self.data): # TODO: Change back, when membership is integrated # # user is a c3s member # if self.is_member(_c3smembership, _web_user): # _create = True # template_name = "registration-member_success" # # user is not a c3s member # else: # template_name = "registration-member_fail_nomatch" _create = True template_name = "registration-member_success" # user claims not to be a c3s member else: # TODO: Change back, when membership is integrated # # user is a c3s member # if self.is_member(_c3smembership, _web_user): # template_name = "registration-nonmember_fail_reserved" # # user is not a c3s member # else: # _create = True # template_name = "registration-nonmember_success" _create = True template_name = "registration-nonmember_success" # create if _create: web_users = WebUser.create([_web_user]) # creation failed if not web_users or len(web_users) is not 1: log.info("web_user creation not successful: %s" % _web_user) self.request.session.flash( _(u"There was an error during the registration process. " u"Please try again later and contact us, if this " u"error occurs again. Sorry for the inconveniece."), 'main-alert-danger') return False # creation successful web_user = web_users[0] if self.is_member(_c3smembership, _web_user): # c3s membership web_user.party.member_c3s = True response = _c3smembership.generate_member_token( service='repertoire', email=web_user.email) if not response or 'token' not in response: log.debug("web_user c3s membership token error: %s, %s" % (_web_user, response)) web_user.party.member_c3s_token = response['token'] web_user.party.save() else: # save values of non-c3s-member form fields web_user.party.repertoire_terms_accepted = self.data[ 'terms_accepted'] web_user.party.name = self.data['firstname'] + ' ' + self.data[ 'lastname'] # also save separately for clarity web_user.party.firstname = self.data['firstname'] web_user.party.lastname = self.data['lastname'] web_user.party.birthdate = self.data['birthdate'] web_user.party.save() template_variables = { 'link': self.request.resource_url( self.request.root, 'verify_email', WebUser.get_opt_in_uuid_by_id(web_user.id)) } log.info("web_user creation successful: %s" % web_user.email) # flash message self.request.session.flash( _(u"Thank you for your registration. We are now processing your " u"request and will send you an email with further " u"instructions."), 'main-alert-success') # send mail send_mail(self.request, template=template_name, variables=template_variables, recipients=[_web_user['email']]) if _create: web_user.opt_in_state = "mail-sent" web_user.save() # reset form self.redirect(FrontendResource)
def register(self): _create = False _web_user = { 'email': self.data['email'], 'password': self.data['password'], 'roles': [('add', [WebUserRole.search_by_code('licenser').id])] } _c3smembership = self.context.registry['services']['c3smembership'] template_variables = {} # user is already registered if self.is_registered(_web_user): # user passes authentication (accidently registered to login) if self.passes_authentication(_web_user): opt_in_state = WebUser.get_opt_in_state_by_email( _web_user['email'] ) if opt_in_state == 'opted-in': self.request.session.flash( _(u"You are already registered with your " u"credentials."), 'main-alert-info') self.login() return else: self.request.session.flash( _(u"Your email address is not verified yet. Please " u"follow the instructions in our email."), 'main-alert-info') return # user fails authentication (email already registered) else: template_name = "registration-fail_registered" # user is not registered yet else: # user claims to be a c3s member if self.is_claiming_membership(self.data): # TODO: Change back, when membership is integrated # # user is a c3s member # if self.is_member(_c3smembership, _web_user): # _create = True # template_name = "registration-member_success" # # user is not a c3s member # else: # template_name = "registration-member_fail_nomatch" _create = True template_name = "registration-member_success" # user claims not to be a c3s member else: # TODO: Change back, when membership is integrated # # user is a c3s member # if self.is_member(_c3smembership, _web_user): # template_name = "registration-nonmember_fail_reserved" # # user is not a c3s member # else: # _create = True # template_name = "registration-nonmember_success" _create = True template_name = "registration-nonmember_success" # create if _create: web_users = WebUser.create([_web_user]) # creation failed if not web_users or len(web_users) is not 1: log.info("web_user creation not successful: %s" % _web_user) self.request.session.flash( _( u"There was an error during the registration process. " u"Please try again later and contact us, if this " u"error occurs again. Sorry for the inconveniece." ), 'main-alert-danger' ) return False # creation successful web_user = web_users[0] if self.is_member(_c3smembership, _web_user): # c3s membership web_user.party.member_c3s = True response = _c3smembership.generate_member_token( service='repertoire', email=web_user.email ) if not response or 'token' not in response: log.debug( "web_user c3s membership token error: %s, %s" % ( _web_user, response ) ) web_user.party.member_c3s_token = response['token'] web_user.party.save() else: # save values of non-c3s-member form fields web_user.party.repertoire_terms_accepted = self.data[ 'terms_accepted'] web_user.party.name = self.data['firstname'] + ' ' + self.data[ 'lastname'] # also save separately for clarity web_user.party.firstname = self.data['firstname'] web_user.party.lastname = self.data['lastname'] web_user.party.birthdate = self.data['birthdate'] web_user.party.save() template_variables = { 'link': self.request.resource_url( self.request.root, 'verify_email', WebUser.get_opt_in_uuid_by_id(web_user.id) ) } log.info("web_user creation successful: %s" % web_user.email) # flash message self.request.session.flash( _( u"Thank you for your registration. We are now processing your " u"request and will send you an email with further " u"instructions." ), 'main-alert-success' ) # send mail send_mail( self.request, template=template_name, variables=template_variables, recipients=[_web_user['email']] ) if _create: web_user.opt_in_state = "mail-sent" web_user.save() # reset form self.redirect(FrontendResource)