diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2013-02-14 23:34:59 +0100 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2013-02-14 23:34:59 +0100 |
commit | 6eeb175132f510c91f36145e8cb4fc7aa01ebfb7 (patch) | |
tree | 3c2026f2ede64aba5b809a0617369cf233fbff6a | |
parent | 9f2b1fd8b2e3c51212ffd709032dd51602248c42 (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.py | 10 | ||||
-rw-r--r-- | rhodecode/lib/auth.py | 4 | ||||
-rwxr-xr-x | rhodecode/model/db.py | 9 |
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) |