def test_030_validate_user_registration(self):
     """
     validate user registration succeeds and logs user in
     """
     webuser = WebUser.search_by_email('*****@*****.**')
     self.assertEqual(webuser.opt_in_state, "mail-sent")
     self.url("verify_email/" + webuser.opt_in_uuid)
     self.screenshot()
     self.assertTrue(
         self.cli.find_elements_by_class_name('cs-backend')
     )
    def create_client(self):
        uuid = self.appstruct['uuid']
        email = self.appstruct['email']

        if Client.search_by_uuid(uuid, active=False):
            self.request.session.flash(
                _('Client already exists: ') + uuid,
                'main-alert-warning'
            )
            self.redirect(
                ClientResource, 'list', headers=remember(self.request, email)
            )
            return

        _client = {
            'web_user': WebUser.search_by_email(email),
            'uuid': uuid,
            'player_name': 'Clementine',
            'player_version': '1.2',
            'plugin_name': 'Clementine IMP Prototyp',
            'plugin_version': '0.5',
            'plugin_vendor': 'C3S',
            'active': True
        }

        clients = Client.create([_client])

        if not clients:
            log.info("client add failed for %s: %s" % (email, _client))
            self.request.session.flash(
                _(u"Client could not be added: ") + uuid,
                'main-alert-danger'
            )
            self.redirect(
                ClientResource, 'list', headers=remember(self.request, email)
            )
            return
        client = clients[0]

        log.info("client add successful for %s: %s" % (email, client.uuid))
        self.request.session.flash(
            _(u"Client added: ") + client.uuid,
            'main-alert-success'
        )

        self.redirect(
            ClientResource, 'list', headers=remember(self.request, email)
        )
def validate_unique_user_email(node, values, **kwargs):  # multifield validator
    """Check for valid email and prevent duplicate usernames."""

    request = node.bindings["request"]
    email_value = values["email"]
    current_web_user = WebUser.current_web_user(request)
    if email_value != current_web_user.email:
        # email has been changed: check if it conflicts with other webuser
        found_conflicting_web_user = WebUser.search_by_email(email_value)
        if found_conflicting_web_user:
            raise colander.Invalid(node, _(u"Email address already taken"))

    # finally, check email format
    if len(email_value) > 7:
        if re.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+' +  # noqa: W605
                    '(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', email_value) is not None:
            return
    raise colander.Invalid(node, "Invalid email address")
Exemplo n.º 4
0
def validate_unique_user_email(node, values, **kwargs):  # multifield validator
    """Check for valid email and prevent duplicate usernames."""

    request = node.bindings["request"]
    email_value = values["email"]
    current_web_user = WebUser.current_web_user(request)
    if email_value != current_web_user.email:
        # email has been changed: check if it conflicts with other webuser
        found_conflicting_web_user = WebUser.search_by_email(email_value)
        if found_conflicting_web_user:
            raise colander.Invalid(node, _(u"Email address already taken"))

    # finally, check email format
    if len(email_value) > 7:
        if re.match(
                '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+' +  # noqa: W605
                '(\.[a-z0-9-]+)*(\.[a-z]{2,4})$',
                email_value) is not None:
            return
    raise colander.Invalid(node, "Invalid email address")
Exemplo n.º 5
0
 def is_registered(self, web_user):
     if WebUser.search_by_email(web_user['email']):
         return True
     return False
 def is_registered(self, web_user):
     if WebUser.search_by_email(web_user['email']):
         return True
     return False