changeset 3786:222e6769e7b5 beta

Added separate default permission for external_auth account activation. This flag allows users to define separate option of how activation of external_accounts should be performed.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 23 Apr 2013 00:47:22 +0200
parents 7d8154837174
children a3b1016855f8
files rhodecode/controllers/admin/permissions.py rhodecode/lib/auth.py rhodecode/model/db.py rhodecode/model/forms.py rhodecode/model/permission.py rhodecode/templates/admin/permissions/permissions.html
diffstat 6 files changed, 34 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/admin/permissions.py	Mon Apr 22 18:25:29 2013 +0200
+++ b/rhodecode/controllers/admin/permissions.py	Tue Apr 23 00:47:22 2013 +0200
@@ -75,6 +75,11 @@
             ('hg.register.auto_activate',
                 _('Allowed with automatic account activation')), ]
 
+        c.extern_activate_choices = [
+            ('hg.extern_activate.manual', _('Manual activation of external account')),
+            ('hg.extern_activate.auto', _('Automatic activation of external account')),
+        ]
+
         c.repo_create_choices = [('hg.create.none', _('Disabled')),
                                  ('hg.create.repository', _('Enabled'))]
 
@@ -121,7 +126,9 @@
                     [x[0] for x in c.repo_group_create_choices],
                     [x[0] for x in c.user_group_create_choices],
                     [x[0] for x in c.fork_choices],
-                    [x[0] for x in c.register_choices])()
+                    [x[0] for x in c.register_choices],
+                    [x[0] for x in c.extern_activate_choices],
+            )()
 
             try:
                 form_result = _form.to_python(dict(request.POST))
@@ -194,6 +201,9 @@
                 if p.permission.permission_name.startswith('hg.register.'):
                     defaults['default_register'] = p.permission.permission_name
 
+                if p.permission.permission_name.startswith('hg.extern_activate.'):
+                    defaults['default_extern_activate'] = p.permission.permission_name
+
                 if p.permission.permission_name.startswith('hg.fork.'):
                     defaults['default_fork'] = p.permission.permission_name
 
--- a/rhodecode/lib/auth.py	Mon Apr 22 18:25:29 2013 +0200
+++ b/rhodecode/lib/auth.py	Tue Apr 23 00:47:22 2013 +0200
@@ -228,8 +228,8 @@
                  'name': safe_unicode(get_ldap_attr('ldap_attr_firstname')),
                  'lastname': safe_unicode(get_ldap_attr('ldap_attr_lastname')),
                  'email': get_ldap_attr('ldap_attr_email'),
-                 'active': 'hg.register.auto_activate' in User\
-                    .get_default_user().AuthUser.permissions['global']
+                 'active': 'hg.extern_activate.auto' in User.get_default_user()\
+                                                .AuthUser.permissions['global']
                 }
 
                 # don't store LDAP password since we don't need it. Override
@@ -258,8 +258,8 @@
             'name': username,
             'lastname': None,
             'email': None,
-            'active': 'hg.register.auto_activate' in User\
-               .get_default_user().AuthUser.permissions['global']
+            'active': 'hg.extern_activate.auto' in User.get_default_user()\
+                                            .AuthUser.permissions['global']
         }
         user = UserModel().create_for_container_auth(username, user_attrs)
         if not user:
--- a/rhodecode/model/db.py	Mon Apr 22 18:25:29 2013 +0200
+++ b/rhodecode/model/db.py	Tue Apr 23 00:47:22 2013 +0200
@@ -1424,12 +1424,13 @@
         ('hg.fork.none', _('Repository forking disabled')),
         ('hg.fork.repository', _('Repository forking enabled')),
 
-        ('hg.register.none', _('Register disabled')),
-        ('hg.register.manual_activate', _('Register new user with RhodeCode '
-                                          'with manual activation')),
+        ('hg.register.none', _('Registration disabled')),
+        ('hg.register.manual_activate', _('User Registration with manual account activation')),
+        ('hg.register.auto_activate', _('User Registration with automatic account activation')),
 
-        ('hg.register.auto_activate', _('Register new user with RhodeCode '
-                                        'with auto activation')),
+        ('hg.extern_activate.manual', _('Manual activation of external account')),
+        ('hg.extern_activate.auto', _('Automatic activation of external account')),
+
     ]
 
     #definition of system default permissions for DEFAULT user
@@ -1440,6 +1441,7 @@
         'hg.create.repository',
         'hg.fork.repository',
         'hg.register.manual_activate',
+        'hg.extern_activate.auto',
     ]
 
     # defines which permissions are more important higher the more important
--- a/rhodecode/model/forms.py	Mon Apr 22 18:25:29 2013 +0200
+++ b/rhodecode/model/forms.py	Tue Apr 23 00:47:22 2013 +0200
@@ -312,7 +312,7 @@
 def DefaultPermissionsForm(repo_perms_choices, group_perms_choices,
                            user_group_perms_choices, create_choices,
                            repo_group_create_choices, user_group_create_choices,
-                           fork_choices, register_choices):
+                           fork_choices, register_choices, extern_activate_choices):
     class _DefaultPermissionsForm(formencode.Schema):
         allow_extra_fields = True
         filter_extra_fields = True
@@ -330,6 +330,7 @@
         default_fork = v.OneOf(fork_choices)
 
         default_register = v.OneOf(register_choices)
+        default_extern_activate = v.OneOf(extern_activate_choices)
     return _DefaultPermissionsForm
 
 
--- a/rhodecode/model/permission.py	Mon Apr 22 18:25:29 2013 +0200
+++ b/rhodecode/model/permission.py	Tue Apr 23 00:47:22 2013 +0200
@@ -117,7 +117,8 @@
                                  'default_repo_create',
                                  #'default_repo_group_create', #not implemented yet
                                  'default_user_group_create',
-                                 'default_fork', 'default_register']:
+                                 'default_fork', 'default_register',
+                                 'default_extern_activate']:
                 p = _make_new(perm_user, form_result[def_perm_key])
                 self.sa.add(p)
 
--- a/rhodecode/templates/admin/permissions/permissions.html	Mon Apr 22 18:25:29 2013 +0200
+++ b/rhodecode/templates/admin/permissions/permissions.html	Tue Apr 23 00:47:22 2013 +0200
@@ -110,6 +110,14 @@
                     ${h.select('default_register','',c.register_choices)}
                 </div>
              </div>
+             <div class="field">
+                <div class="label">
+                    <label for="default_extern_activate">${_('External auth account activation')}:</label>
+                </div>
+                <div class="select">
+                    ${h.select('default_extern_activate','',c.extern_activate_choices)}
+                </div>
+             </div>
             <div class="buttons">
               ${h.submit('save',_('Save'),class_="ui-btn large")}
               ${h.reset('reset',_('Reset'),class_="ui-btn large")}