aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2013-02-14 23:34:59 +0100
committerMarcin Kuzminski <marcin@python-works.com>2013-02-14 23:34:59 +0100
commit6eeb175132f510c91f36145e8cb4fc7aa01ebfb7 (patch)
tree3c2026f2ede64aba5b809a0617369cf233fbff6a
parent9f2b1fd8b2e3c51212ffd709032dd51602248c42 (diff)
fixes #762, LDAP and container created users are now activated based on
the registration settings in permissions --HG-- extra : source : fdb0f59b21891c21c9b71d8d945d096a1f6a665d
-rw-r--r--rhodecode/controllers/login.py10
-rw-r--r--rhodecode/lib/auth.py4
-rwxr-xr-xrhodecode/model/db.py9
3 files changed, 16 insertions, 7 deletions
diff --git a/rhodecode/controllers/login.py b/rhodecode/controllers/login.py
index da9c07f8..583d3004 100644
--- a/rhodecode/controllers/login.py
+++ b/rhodecode/controllers/login.py
@@ -126,20 +126,16 @@ class LoginController(BaseController):
@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'))
diff --git a/rhodecode/lib/auth.py b/rhodecode/lib/auth.py
index 6e4c1ba9..e2cf7189 100644
--- a/rhodecode/lib/auth.py
+++ b/rhodecode/lib/auth.py
@@ -226,6 +226,8 @@ def authenticate(username, password):
'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 @@ def login_container_auth(username):
'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:
diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py
index 8219c3b9..7142068a 100755
--- a/rhodecode/model/db.py
+++ b/rhodecode/model/db.py
@@ -399,6 +399,15 @@ class User(Base, BaseModel):
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)