Ejemplo n.º 1
0
    def test_use_uuid_as_userid_enabled(self):
        """Test generating a user id if the use_uuid_as_userid setting is
        enabled.
        """
        self.security_settings.use_uuid_as_userid = True
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        user_id = form.generate_user_id(data)
        self.assertEqual(data.get('user_id'), user_id)
        self.assertEqual(len(data.get('user_id')),
                         len(uuid_userid_generator()))

        data = {'username': '******',
                'fullname': 'Joe User',
                'email': '*****@*****.**'}
        user_id = form.generate_user_id(data)
        self.assertNotEqual(user_id, 'joe')
        self.assertEqual(data.get('user_id'), user_id)
        self.assertEqual(len(user_id), len(uuid_userid_generator()))

        # Calling it twice should give a different result, as every
        # call to the uuid generator should be unique.
        self.assertNotEqual(form.generate_user_id(data),
                            form.generate_user_id(data))
Ejemplo n.º 2
0
    def test_default(self):
        """Test generating user_id with no custom user id generator and
        the default security settings.
        """
        form = BaseRegistrationForm(self.portal, {})
        data = {}
        self.assertEqual(form.generate_user_id(data), '')
        self.assertEqual(data.get('user_id'), '')

        # An explicit username is taken by default.
        data = {'username': '******',
                'fullname': 'Joe User',
                'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), 'joe')
        self.assertEqual(data.get('user_id'), 'joe')

        # When no username is there, we try a normalized fullname.
        data = {'fullname': 'Joe User',
                'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), 'joe-user')
        self.assertEqual(data.get('user_id'), 'joe-user')

        # With no fullname, we take the email.
        data = {'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), '*****@*****.**')
        self.assertEqual(data.get('user_id'), '*****@*****.**')
Ejemplo n.º 3
0
    def test_use_uuid_as_userid_enabled(self):
        """Test generating a user id if the use_uuid_as_userid setting is
        enabled.
        """
        self.security_settings.use_uuid_as_userid = True
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        user_id = form.generate_user_id(data)
        self.assertEqual(data.get('user_id'), user_id)
        self.assertEqual(len(data.get('user_id')),
                         len(uuid_userid_generator()))

        data = {
            'username': '******',
            'fullname': 'Joe User',
            'email': '*****@*****.**'
        }
        user_id = form.generate_user_id(data)
        self.assertNotEqual(user_id, 'joe')
        self.assertEqual(data.get('user_id'), user_id)
        self.assertEqual(len(user_id), len(uuid_userid_generator()))

        # Calling it twice should give a different result, as every
        # call to the uuid generator should be unique.
        self.assertNotEqual(form.generate_user_id(data),
                            form.generate_user_id(data))
    def test_use_email_as_login_enabled(self):
        """Test generating user_id with no custom login name generator and
        with the use_email_as_login security setting enabled.
        """
        form = BaseRegistrationForm(self.portal, {})
        data = {'username': '******', 'email': '*****@*****.**'}
        self.security_settings.use_email_as_login = True

        self.assertEqual(form.generate_login_name(data), '*****@*****.**')
        self.assertEqual(data.get('login_name'), '*****@*****.**')
Ejemplo n.º 5
0
    def test_use_email_as_login_enabled(self):
        """Test generating user_id with no custom login name generator and
        with the use_email_as_login security setting enabled.
        """
        form = BaseRegistrationForm(self.portal, {})
        data = {'username': '******', 'email': '*****@*****.**'}
        self.security_settings.use_email_as_login = True

        self.assertEqual(form.generate_login_name(data), '*****@*****.**')
        self.assertEqual(data.get('login_name'), '*****@*****.**')
Ejemplo n.º 6
0
 def form_fields(self):
     #defaultFields = super(RegisterForm, self).form_fields
     defaultFields = BaseRegistrationForm(self, self.context).form_fields
     defaultFields += form.Fields(ExtendRegistrationForm)
     schema = getUtility(IUserDataSchemaProvider).getSchema()
     
     #registrationfields = getUtility(
     #    IUserDataSchemaProvider
     #).getRegistrationFields()
     #return (defaultFields.omit('password', 'password_ctl', 'mail_me') + 
     #        form.Fields(schema).select(*registrationfields))
     return defaultFields.omit('password', 'password_ctl', 'mail_me')
    def test_generate_uuid_user_id(self):
        self.assertTrue(self.ptool.site_properties.getProperty("use_uuid_as_userid"))
        form = BaseRegistrationForm(self.portal, {})
        data = {"username": "******", "fullname": "Joe User", "email": "*****@*****.**"}
        user_id = form.generate_user_id(data)
        self.assertNotEqual(user_id, "joe")
        self.assertEqual(data.get("user_id"), user_id)
        self.assertEqual(len(user_id), len(uuid_userid_generator()))

        # Calling it twice should give a different result, as every
        # call to the uuid generator should be unique.
        self.assertNotEqual(form.generate_user_id(data), form.generate_user_id(data))
Ejemplo n.º 8
0
    def form_fields(self):
        #defaultFields = super(RegisterForm, self).form_fields
        defaultFields = BaseRegistrationForm(self, self.context).form_fields
        defaultFields += form.Fields(ExtendRegistrationForm)
        defaultFields['captcha'].custom_widget = CaptchaWidget
        schema = getUtility(IUserDataSchemaProvider).getSchema()

        #registrationfields = getUtility(
        #    IUserDataSchemaProvider
        #).getRegistrationFields()
        #return (defaultFields.omit('password', 'password_ctl', 'mail_me') +
        #        form.Fields(schema).select(*registrationfields))
        return defaultFields.omit('password', 'password_ctl', 'mail_me')
Ejemplo n.º 9
0
    def test_custom_generator_empty(self):
        """Test that the username is used if a custom login name generator
        returns an empty value.
        """
        sm = getSiteManager(context=self.portal)
        form = BaseRegistrationForm(self.portal, {})
        data = {'useme': '', 'username': '******'}

        sm.registerUtility(lambda data: data['useme'],
                           provided=ILoginNameGenerator)

        self.assertEqual(form.generate_login_name(data), 'Frank')
        self.assertEqual(data.get('login_name'), 'Frank')
Ejemplo n.º 10
0
    def test_custom_generator(self):
        """Test if a custom login name generator overrides the default
        behavior.
        """
        sm = getSiteManager(context=self.portal)
        form = BaseRegistrationForm(self.portal, {})
        data = {'useme': 'me me me', 'username': '******'}

        sm.registerUtility(lambda data: data['useme'],
                           provided=ILoginNameGenerator)

        self.assertEqual(form.generate_login_name(data), 'me me me')
        self.assertEqual(data.get('login_name'), 'me me me')
Ejemplo n.º 11
0
    def test_custom_generator(self):
        """Test if a custom login name generator overrides the default
        behavior.
        """
        sm = getSiteManager(context=self.portal)
        form = BaseRegistrationForm(self.portal, {})
        data = {'useme': 'me me me', 'username': '******'}

        sm.registerUtility(
            lambda data: data['useme'], provided=ILoginNameGenerator)

        self.assertEqual(form.generate_login_name(data), 'me me me')
        self.assertEqual(data.get('login_name'), 'me me me')
Ejemplo n.º 12
0
    def test_custom_generator_empty(self):
        """Test that the username is used if a custom login name generator
        returns an empty value.
        """
        sm = getSiteManager(context=self.portal)
        form = BaseRegistrationForm(self.portal, {})
        data = {'useme': '', 'username': '******'}

        sm.registerUtility(
            lambda data: data['useme'], provided=ILoginNameGenerator)

        self.assertEqual(form.generate_login_name(data), 'Frank')
        self.assertEqual(data.get('login_name'), 'Frank')
Ejemplo n.º 13
0
    def test_use_email_as_login_no_fullname_uppercase_email(self):
        """"Test generating a user id if the use_email_as_login setting is
        enabled and full name is not provided, with an uppercase e-mail.
        """
        self.security_settings.use_email_as_login = True
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), '')
        self.assertEqual(data.get('user_id'), '')

        data = {'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), '*****@*****.**')
        self.assertEqual(data.get('user_id'), '*****@*****.**')
Ejemplo n.º 14
0
 def form_fields(self):
     #my_fields = super(ExtendRegistrationForm, self).form_fields
     my_fields = BaseRegistrationForm(self, self.context).form_fields
     my_fields += form.Fields(ICaptchaSchema)
     
     #my_fields.append(form.Fields(ICaptchaSchema)) --> test
     my_fields['captcha'].custom_widget = CaptchaWidget
     
     #for fld in my_fields:
     #    if fld.__name__ == 'captcha':
     #        
     #        fld.field.custom_widget = CaptchaWidget
     
     return my_fields.omit('password', 'password_ctl', 'mail_me')
    def test_generate_uuid_user_id(self):
        form = BaseRegistrationForm(self.portal, {})
        data = {'username': '******',
                'fullname': 'Joe User',
                'email': '*****@*****.**'}
        user_id = form.generate_user_id(data)
        self.assertNotEqual(user_id, 'joe')
        self.assertEqual(data.get('user_id'), user_id)
        self.assertEqual(len(user_id), len(uuid_userid_generator()))

        # Calling it twice should give a different result, as every
        # call to the uuid generator should be unique.
        self.assertNotEqual(form.generate_user_id(data),
                            form.generate_user_id(data))
Ejemplo n.º 16
0
    def test_use_email_as_login_has_fullname(self):
        """"Test generating a user id if the use_email_as_login setting is
        enabled and full name is provided.
        """
        self.security_settings.use_email_as_login = True
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), '')
        self.assertEqual(data.get('user_id'), '')

        data = {'fullname': 'Joe User', 'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), 'joe-user')
        self.assertEqual(data.get('user_id'), 'joe-user')
Ejemplo n.º 17
0
    def form_fields(self):
        #my_fields = super(ExtendRegistrationForm, self).form_fields
        my_fields = BaseRegistrationForm(self, self.context).form_fields
        my_fields += form.Fields(ICaptchaSchema)

        #my_fields.append(form.Fields(ICaptchaSchema)) --> test
        my_fields['captcha'].custom_widget = CaptchaWidget

        #for fld in my_fields:
        #    if fld.__name__ == 'captcha':
        #
        #        fld.field.custom_widget = CaptchaWidget

        return my_fields.omit('password', 'password_ctl', 'mail_me')
Ejemplo n.º 18
0
    def test_use_email_as_login_no_fullname_uppercase_email(self):
        """"Test generating a user id if the use_email_as_login setting is
        enabled and full name is not provided, with an uppercase e-mail.
        """
        self.security_settings.use_email_as_login = True
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), '')
        self.assertEqual(data.get('user_id'), '')

        data = {'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), '*****@*****.**')
        self.assertEqual(data.get('user_id'), '*****@*****.**')
Ejemplo n.º 19
0
    def test_use_email_as_login_has_fullname(self):
        """"Test generating a user id if the use_email_as_login setting is
        enabled and full name is provided.
        """
        self.security_settings.use_email_as_login = True
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), '')
        self.assertEqual(data.get('user_id'), '')

        data = {'fullname': 'Joe User',
                'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), 'joe-user')
        self.assertEqual(data.get('user_id'), 'joe-user')
    def test_generate_user_id_simplistic(self):
        # Test a simplistic user id generator.
        def one_generator(data):
            return "one"

        sm = getSiteManager(context=self.portal)
        sm.registerUtility(one_generator, provided=IUserIdGenerator)
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), "one")
        self.assertEqual(data.get("user_id"), "one")

        data = {"username": "******", "fullname": "Joe User", "email": "*****@*****.**"}
        self.assertEqual(form.generate_user_id(data), "one")
        self.assertEqual(data.get("user_id"), "one")
Ejemplo n.º 21
0
 def __call__(self):
     storage = registration.RegistrationReviewStorage(self.context)
     if self.request.REQUEST_METHOD == 'POST':
         email = self.request.form.get('email')
         if self.request.form.get('approve'):
             data = storage.get(email).copy()
             data.pop('code')
             data.pop('created')
             reg_form = BaseRegistrationForm(self.context, self.request)
             reg_form.updateFields()
             reg_form.updateWidgets()
             reg_form.handle_join_success(data)
             if data.get('password'):
                 # won't get an email so sent them out something about getting approved
                 self.send_approve_mail(email, data)
             storage.remove(email)
         elif self.request.form.get('deny'):
             storage.remove(email)
         elif self.request.form.get('enable'):
             getUtility(IRegistry)['plone.review_registrations'] = True
         elif self.request.form.get('disable'):
             getUtility(IRegistry)['plone.review_registrations'] = False
     self.storage = storage
     self.data = storage._data
     return self.index()
    def test_generate_user_id_email(self):
        # It is easy to force the email as user id.
        def email_getter(data):
            return data.get("email")

        sm = getSiteManager(context=self.portal)
        sm.registerUtility(email_getter, provided=IUserIdGenerator)
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), "")
        self.assertEqual(data.get("user_id"), "")

        data = {"username": "******", "fullname": "Joe User", "email": "*****@*****.**"}
        self.assertEqual(form.generate_user_id(data), "*****@*****.**")
        self.assertEqual(data.get("user_id"), "*****@*****.**")
    def test_generate_user_id_simplistic(self):
        # Test a simplistic user id generator.
        def one_generator(data):
            return 'one'

        sm = getSiteManager(context=self.portal)
        sm.registerUtility(one_generator, provided=IUserIdGenerator)
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), 'one')
        self.assertEqual(data.get('user_id'), 'one')

        data = {'username': '******',
                'fullname': 'Joe User',
                'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), 'one')
        self.assertEqual(data.get('user_id'), 'one')
    def test_generate_user_id_email(self):
        # It is easy to force the email as user id.
        def email_getter(data):
            return data.get('email')

        sm = getSiteManager(context=self.portal)
        sm.registerUtility(email_getter, provided=IUserIdGenerator)
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), '')
        self.assertEqual(data.get('user_id'), '')

        data = {'username': '******',
                'fullname': 'Joe User',
                'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), '*****@*****.**')
        self.assertEqual(data.get('user_id'), '*****@*****.**')
    def test_generate_user_id_with_uuid(self):
        sm = getSiteManager(context=self.portal)
        sm.registerUtility(uuid_userid_generator, provided=IUserIdGenerator)
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        user_id = form.generate_user_id(data)
        self.assertEqual(data.get("user_id"), user_id)
        self.assertEqual(len(data.get("user_id")), len(uuid_userid_generator()))

        data = {"username": "******", "fullname": "Joe User", "email": "*****@*****.**"}
        user_id = form.generate_user_id(data)
        self.assertNotEqual(user_id, "joe")
        self.assertEqual(data.get("user_id"), user_id)
        self.assertEqual(len(user_id), len(uuid_userid_generator()))

        # Calling it twice should give a different result, as every
        # call to the uuid generator should be unique.
        self.assertNotEqual(form.generate_user_id(data), form.generate_user_id(data))
    def test_standard_generate_user_id(self):
        form = BaseRegistrationForm(self.portal, {})
        data = {}
        self.assertEqual(form.generate_user_id(data), "")
        self.assertEqual(data.get("user_id"), "")

        # An explicit username is taken by default.
        data = {"username": "******", "fullname": "Joe User", "email": "*****@*****.**"}
        self.assertEqual(form.generate_user_id(data), "joe")
        self.assertEqual(data.get("user_id"), "joe")

        # When no username is there, we try a normalized fullname.
        data = {"fullname": "Joe User", "email": "*****@*****.**"}
        self.assertEqual(form.generate_user_id(data), "joe-user")
        self.assertEqual(data.get("user_id"), "joe-user")

        # With no fullname, we take the email.
        data = {"email": "*****@*****.**"}
        self.assertEqual(form.generate_user_id(data), "*****@*****.**")
        self.assertEqual(data.get("user_id"), "*****@*****.**")
Ejemplo n.º 27
0
    def test_custom_generator(self):
        """Test if a custom user id generator overrides the default
        behavior.
        """

        def one_generator(data):
            return 'one'

        sm = getSiteManager(context=self.portal)
        sm.registerUtility(one_generator, provided=IUserIdGenerator)
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), 'one')
        self.assertEqual(data.get('user_id'), 'one')

        data = {'username': '******',
                'fullname': 'Joe User',
                'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), 'one')
        self.assertEqual(data.get('user_id'), 'one')
Ejemplo n.º 28
0
    def test_default(self):
        """Test generating user_id with no custom user id generator and
        the default security settings.
        """
        form = BaseRegistrationForm(self.portal, {})
        data = {}
        self.assertEqual(form.generate_user_id(data), '')
        self.assertEqual(data.get('user_id'), '')

        # An explicit username is taken by default.
        data = {
            'username': '******',
            'fullname': 'Joe User',
            'email': '*****@*****.**'
        }
        self.assertEqual(form.generate_user_id(data), 'joe')
        self.assertEqual(data.get('user_id'), 'joe')

        # When no username is there, we try a normalized fullname.
        data = {'fullname': 'Joe User', 'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), 'joe-user')
        self.assertEqual(data.get('user_id'), 'joe-user')

        # With no fullname, we take the email.
        data = {'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), '*****@*****.**')
        self.assertEqual(data.get('user_id'), '*****@*****.**')
Ejemplo n.º 29
0
    def test_custom_generator(self):
        """Test if a custom user id generator overrides the default
        behavior.
        """
        def one_generator(data):
            return 'one'

        sm = getSiteManager(context=self.portal)
        sm.registerUtility(one_generator, provided=IUserIdGenerator)
        form = BaseRegistrationForm(self.portal, {})

        data = {}
        self.assertEqual(form.generate_user_id(data), 'one')
        self.assertEqual(data.get('user_id'), 'one')

        data = {
            'username': '******',
            'fullname': 'Joe User',
            'email': '*****@*****.**'
        }
        self.assertEqual(form.generate_user_id(data), 'one')
        self.assertEqual(data.get('user_id'), 'one')
    def test_standard_generate_user_id(self):
        form = BaseRegistrationForm(self.portal, {})
        data = {}
        self.assertEqual(form.generate_user_id(data), '')
        self.assertEqual(data.get('user_id'), '')

        # An explicit username is taken by default.
        data = {'username': '******',
                'fullname': 'Joe User',
                'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), 'joe')
        self.assertEqual(data.get('user_id'), 'joe')

        # When no username is there, we try a normalized fullname.
        data = {'fullname': 'Joe User',
                'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), 'joe-user')
        self.assertEqual(data.get('user_id'), 'joe-user')

        # With no fullname, we take the email.
        data = {'email': '*****@*****.**'}
        self.assertEqual(form.generate_user_id(data), '*****@*****.**')
        self.assertEqual(data.get('user_id'), '*****@*****.**')
 def generateLoginName(self, data):
     """Generate login name, optionally registering function first"""
     form = BaseRegistrationForm(self.portal, {})
     return form.generate_login_name(data)