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