Mercurial > kallithea
comparison rhodecode/lib/auth.py @ 1614:59ae82850e76 beta
Merge with upstream
author | Liad Shani <liadff@gmail.com> |
---|---|
date | Sun, 09 Oct 2011 23:49:00 +0200 |
parents | 6cab36e31f09 2afe9320d5e6 |
children | cf128ced8c85 |
comparison
equal
deleted
inserted
replaced
1613:6cab36e31f09 | 1614:59ae82850e76 |
---|---|
4 ~~~~~~~~~~~~~~~~~~ | 4 ~~~~~~~~~~~~~~~~~~ |
5 | 5 |
6 authentication and permission libraries | 6 authentication and permission libraries |
7 | 7 |
8 :created_on: Apr 4, 2010 | 8 :created_on: Apr 4, 2010 |
9 :copyright: (c) 2010 by marcink. | 9 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com> |
10 :license: LICENSE_NAME, see LICENSE_FILE for more details. | 10 :license: GPLv3, see COPYING for more details. |
11 """ | 11 """ |
12 # This program is free software: you can redistribute it and/or modify | 12 # This program is free software: you can redistribute it and/or modify |
13 # it under the terms of the GNU General Public License as published by | 13 # it under the terms of the GNU General Public License as published by |
14 # the Free Software Foundation, either version 3 of the License, or | 14 # the Free Software Foundation, either version 3 of the License, or |
15 # (at your option) any later version. | 15 # (at your option) any later version. |
46 from rhodecode.lib.utils import get_repo_slug | 46 from rhodecode.lib.utils import get_repo_slug |
47 from rhodecode.lib.auth_ldap import AuthLdap | 47 from rhodecode.lib.auth_ldap import AuthLdap |
48 | 48 |
49 from rhodecode.model import meta | 49 from rhodecode.model import meta |
50 from rhodecode.model.user import UserModel | 50 from rhodecode.model.user import UserModel |
51 from rhodecode.model.db import Permission, RhodeCodeSettings | 51 from rhodecode.model.db import Permission, RhodeCodeSettings, User |
52 | 52 |
53 log = logging.getLogger(__name__) | 53 log = logging.getLogger(__name__) |
54 | 54 |
55 | 55 |
56 class PasswordGenerator(object): | 56 class PasswordGenerator(object): |
149 :param username: username | 149 :param username: username |
150 :param password: password | 150 :param password: password |
151 """ | 151 """ |
152 | 152 |
153 user_model = UserModel() | 153 user_model = UserModel() |
154 user = user_model.get_by_username(username, cache=False) | 154 user = User.get_by_username(username) |
155 | 155 |
156 log.debug('Authenticating user using RhodeCode account') | 156 log.debug('Authenticating user using RhodeCode account') |
157 if user is not None and not user.ldap_dn: | 157 if user is not None and not user.ldap_dn: |
158 if user.active: | 158 if user.active: |
159 if user.username == 'default' and user.active: | 159 if user.username == 'default' and user.active: |
168 else: | 168 else: |
169 log.warning('user %s is disabled', username) | 169 log.warning('user %s is disabled', username) |
170 | 170 |
171 else: | 171 else: |
172 log.debug('Regular authentication failed') | 172 log.debug('Regular authentication failed') |
173 user_obj = user_model.get_by_username(username, cache=False, | 173 user_obj = User.get_by_username(username, case_insensitive=True) |
174 case_insensitive=True) | |
175 | 174 |
176 if user_obj is not None and not user_obj.ldap_dn: | 175 if user_obj is not None and not user_obj.ldap_dn: |
177 log.debug('this user already exists as non ldap') | 176 log.debug('this user already exists as non ldap') |
178 return False | 177 return False |
179 | 178 |
250 self._api_key = api_key | 249 self._api_key = api_key |
251 self.propagate_data() | 250 self.propagate_data() |
252 | 251 |
253 def propagate_data(self): | 252 def propagate_data(self): |
254 user_model = UserModel() | 253 user_model = UserModel() |
255 self.anonymous_user = user_model.get_by_username('default', cache=True) | 254 self.anonymous_user = User.get_by_username('default') |
256 is_user_loaded = False | 255 is_user_loaded = False |
257 if self._api_key and self._api_key != self.anonymous_user.api_key: | 256 if self._api_key and self._api_key != self.anonymous_user.api_key: |
258 #try go get user by api key | 257 #try go get user by api key |
259 log.debug('Auth User lookup by API KEY %s', self._api_key) | 258 log.debug('Auth User lookup by API KEY %s', self._api_key) |
260 user_model.fill_data(self, api_key=self._api_key) | 259 user_model.fill_data(self, api_key=self._api_key) |
267 elif self.username != 'None': | 266 elif self.username != 'None': |
268 #Removing realm from username | 267 #Removing realm from username |
269 self.username = self.username.partition('@')[0] | 268 self.username = self.username.partition('@')[0] |
270 | 269 |
271 log.debug('Auth User lookup by USER NAME %s', self.username) | 270 log.debug('Auth User lookup by USER NAME %s', self.username) |
272 dbuser = user_model.get_by_username(self.username) | 271 dbuser = User.get_by_username(self.username) |
273 if dbuser is not None and dbuser.active: | 272 if dbuser is not None and dbuser.active: |
274 for k, v in dbuser.get_dict().items(): | 273 for k, v in dbuser.get_dict().items(): |
275 setattr(self, k, v) | 274 setattr(self, k, v) |
276 self.set_authenticated() | 275 self.set_authenticated() |
277 is_user_loaded = True | 276 is_user_loaded = True |