comparison rhodecode/model/user.py @ 4075:92da990f9eaf

Removed redundant Exception catching
author Marcin Kuzminski <marcin@python-works.com>
date Mon, 01 Jul 2013 16:14:46 +0200
parents 3b136af34329
children ffd45b185016
comparison
equal deleted inserted replaced
4074:3b136af34329 4075:92da990f9eaf
84 if not cur_user: 84 if not cur_user:
85 cur_user = getattr(get_current_rhodecode_user(), 'username', None) 85 cur_user = getattr(get_current_rhodecode_user(), 'username', None)
86 86
87 from rhodecode.lib.hooks import log_create_user, check_allowed_create_user 87 from rhodecode.lib.hooks import log_create_user, check_allowed_create_user
88 _fd = form_data 88 _fd = form_data
89 form_data = { 89 user_data = {
90 'username': _fd['username'], 'password': _fd['password'], 90 'username': _fd['username'], 'password': _fd['password'],
91 'email': _fd['email'], 'firstname': _fd['firstname'], 'lastname': _fd['lastname'], 91 'email': _fd['email'], 'firstname': _fd['firstname'], 'lastname': _fd['lastname'],
92 'active': _fd['active'], 'admin': False 92 'active': _fd['active'], 'admin': False
93 } 93 }
94 # raises UserCreationError if it's not allowed 94 # raises UserCreationError if it's not allowed
95 check_allowed_create_user(form_data, cur_user) 95 check_allowed_create_user(user_data, cur_user)
96 96
97 from rhodecode.lib.auth import get_crypt_password 97 from rhodecode.lib.auth import get_crypt_password
98 try: 98 try:
99 new_user = User() 99 new_user = User()
100 for k, v in form_data.items(): 100 for k, v in form_data.items():
133 if not cur_user: 133 if not cur_user:
134 cur_user = getattr(get_current_rhodecode_user(), 'username', None) 134 cur_user = getattr(get_current_rhodecode_user(), 'username', None)
135 135
136 from rhodecode.lib.auth import get_crypt_password 136 from rhodecode.lib.auth import get_crypt_password
137 from rhodecode.lib.hooks import log_create_user, check_allowed_create_user 137 from rhodecode.lib.hooks import log_create_user, check_allowed_create_user
138 form_data = { 138 user_data = {
139 'username': username, 'password': password, 139 'username': username, 'password': password,
140 'email': email, 'firstname': firstname, 'lastname': lastname, 140 'email': email, 'firstname': firstname, 'lastname': lastname,
141 'active': active, 'admin': admin 141 'active': active, 'admin': admin
142 } 142 }
143 # raises UserCreationError if it's not allowed 143 # raises UserCreationError if it's not allowed
144 check_allowed_create_user(form_data, cur_user) 144 check_allowed_create_user(user_data, cur_user)
145 145
146 log.debug('Checking for %s account in RhodeCode database' % username) 146 log.debug('Checking for %s account in RhodeCode database' % username)
147 user = User.get_by_username(username, case_insensitive=True) 147 user = User.get_by_username(username, case_insensitive=True)
148 if user is None: 148 if user is None:
149 log.debug('creating new user %s' % username) 149 log.debug('creating new user %s' % username)
192 lastname = attrs['lastname'] 192 lastname = attrs['lastname']
193 active = attrs.get('active', True) 193 active = attrs.get('active', True)
194 email = attrs['email'] or generate_email(username) 194 email = attrs['email'] or generate_email(username)
195 195
196 from rhodecode.lib.hooks import log_create_user, check_allowed_create_user 196 from rhodecode.lib.hooks import log_create_user, check_allowed_create_user
197 form_data = { 197 user_data = {
198 'username': username, 'password': None, 198 'username': username, 'password': None,
199 'email': email, 'firstname': firstname, 'lastname': lastname, 199 'email': email, 'firstname': firstname, 'lastname': lastname,
200 'active': attrs.get('active', True), 'admin': False 200 'active': attrs.get('active', True), 'admin': False
201 } 201 }
202 # raises UserCreationError if it's not allowed 202 # raises UserCreationError if it's not allowed
203 check_allowed_create_user(form_data, cur_user) 203 check_allowed_create_user(user_data, cur_user)
204 204
205 try: 205 try:
206 new_user = User() 206 new_user = User()
207 new_user.username = username 207 new_user.username = username
208 new_user.password = None 208 new_user.password = None
246 lastname = attrs['lastname'] 246 lastname = attrs['lastname']
247 active = attrs.get('active', True) 247 active = attrs.get('active', True)
248 email = attrs['email'] or generate_email(username) 248 email = attrs['email'] or generate_email(username)
249 249
250 from rhodecode.lib.hooks import log_create_user, check_allowed_create_user 250 from rhodecode.lib.hooks import log_create_user, check_allowed_create_user
251 form_data = { 251 user_data = {
252 'username': username, 'password': password, 252 'username': username, 'password': password,
253 'email': email, 'firstname': firstname, 'lastname': lastname, 253 'email': email, 'firstname': firstname, 'lastname': lastname,
254 'active': attrs.get('active', True), 'admin': False 254 'active': attrs.get('active', True), 'admin': False
255 } 255 }
256 # raises UserCreationError if it's not allowed 256 # raises UserCreationError if it's not allowed
257 check_allowed_create_user(form_data, cur_user) 257 check_allowed_create_user(user_data, cur_user)
258 258
259 try: 259 try:
260 new_user = User() 260 new_user = User()
261 username = username.lower() 261 username = username.lower()
262 # add ldap account always lowercase 262 # add ldap account always lowercase
409 409
410 def reset_password(self, data): 410 def reset_password(self, data):
411 from rhodecode.lib.celerylib import tasks, run_task 411 from rhodecode.lib.celerylib import tasks, run_task
412 from rhodecode.lib import auth 412 from rhodecode.lib import auth
413 user_email = data['email'] 413 user_email = data['email']
414 pre_db = True
414 try: 415 try:
415 try: 416 user = User.get_by_email(user_email)
416 user = User.get_by_email(user_email) 417 new_passwd = auth.PasswordGenerator().gen_password(8,
417 new_passwd = auth.PasswordGenerator().gen_password(8, 418 auth.PasswordGenerator.ALPHABETS_BIG_SMALL)
418 auth.PasswordGenerator.ALPHABETS_BIG_SMALL) 419 if user:
419 if user: 420 user.password = auth.get_crypt_password(new_passwd)
420 user.password = auth.get_crypt_password(new_passwd) 421 user.api_key = auth.generate_api_key(user.username)
421 user.api_key = auth.generate_api_key(user.username) 422 Session().add(user)
422 Session().add(user) 423 Session().commit()
423 Session().commit() 424 log.info('change password for %s' % user_email)
424 log.info('change password for %s' % user_email) 425 if new_passwd is None:
425 if new_passwd is None: 426 raise Exception('unable to generate new password')
426 raise Exception('unable to generate new password') 427
427 except Exception: 428 pre_db = False
428 log.error(traceback.format_exc())
429 Session().rollback()
430
431 run_task(tasks.send_email, user_email, 429 run_task(tasks.send_email, user_email,
432 _('Your new password'), 430 _('Your new password'),
433 _('Your new RhodeCode password:%s') % (new_passwd,)) 431 _('Your new RhodeCode password:%s') % (new_passwd,))
434 log.info('send new password mail to %s' % user_email) 432 log.info('send new password mail to %s' % user_email)
435 433
436 except Exception: 434 except Exception:
437 log.error('Failed to update user password') 435 log.error('Failed to update user password')
438 log.error(traceback.format_exc()) 436 log.error(traceback.format_exc())
437 if pre_db:
438 # we rollback only if local db stuff fails. If it goes into
439 # run_task, we're pass rollback state this wouldn't work then
440 Session().rollback()
439 441
440 return True 442 return True
441 443
442 def fill_data(self, auth_user, user_id=None, api_key=None): 444 def fill_data(self, auth_user, user_id=None, api_key=None):
443 """ 445 """