changeset 3470:649ca0cc8a08

fixes #762, LDAP and container created users are now activated based on the registration settings in permissions
author Marcin Kuzminski <marcin@python-works.com>
date Thu, 14 Feb 2013 23:34:59 +0100
parents 2cd0c8251aa2
children d1004dd51a66
files rhodecode/controllers/login.py rhodecode/lib/auth.py rhodecode/model/db.py
diffstat 3 files changed, 16 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/controllers/login.py	Tue Feb 12 23:15:55 2013 +0100
+++ b/rhodecode/controllers/login.py	Thu Feb 14 23:34:59 2013 +0100
@@ -126,20 +126,16 @@
     @HasPermissionAnyDecorator('hg.admin', 'hg.register.auto_activate',
                                'hg.register.manual_activate')
     def register(self):
-        c.auto_active = False
-        for perm in User.get_by_username('default').user_perms:
-            if perm.permission.permission_name == 'hg.register.auto_activate':
-                c.auto_active = True
-                break
+        c.auto_active = 'hg.register.auto_activate' in User.get_by_username('default')\
+            .AuthUser.permissions['global']
 
         if request.POST:
-
             register_form = RegisterForm()()
             try:
                 form_result = register_form.to_python(dict(request.POST))
                 form_result['active'] = c.auto_active
                 UserModel().create_registration(form_result)
-                h.flash(_('You have successfully registered into rhodecode'),
+                h.flash(_('You have successfully registered into RhodeCode'),
                             category='success')
                 Session().commit()
                 return redirect(url('login_home'))
--- a/rhodecode/lib/auth.py	Tue Feb 12 23:15:55 2013 +0100
+++ b/rhodecode/lib/auth.py	Thu Feb 14 23:34:59 2013 +0100
@@ -226,6 +226,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_by_username('default').AuthUser.permissions['global']
                 }
 
                 # don't store LDAP password since we don't need it. Override
@@ -254,6 +256,8 @@
             'name': username,
             'lastname': None,
             'email': None,
+            'active': 'hg.register.auto_activate' in User\
+               .get_by_username('default').AuthUser.permissions['global']
         }
         user = UserModel().create_for_container_auth(username, user_attrs)
         if not user:
--- a/rhodecode/model/db.py	Tue Feb 12 23:15:55 2013 +0100
+++ b/rhodecode/model/db.py	Thu Feb 14 23:34:59 2013 +0100
@@ -399,6 +399,15 @@
     def is_admin(self):
         return self.admin
 
+    @property
+    def AuthUser(self):
+        """
+        Returns instance of AuthUser for this user
+        """
+        from rhodecode.lib.auth import AuthUser
+        return AuthUser(user_id=self.user_id, api_key=self.api_key,
+                        username=self.username)
+
     def __unicode__(self):
         return u"<%s('id:%s:%s')>" % (self.__class__.__name__,
                                      self.user_id, self.username)