Mercurial > kallithea
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 """ |