コード例 #1
0
    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()
コード例 #2
0
    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()
コード例 #3
0
    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)
コード例 #4
0
    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)