Mercurial > kallithea
comparison rhodecode/model/user.py @ 3179:cd50d1b5f35b
merged with beta
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 21 Jan 2013 00:03:44 +0100 |
parents | a5f0bc867edc 4910b2607a29 |
children | bbd72d82060a |
comparison
equal
deleted
inserted
replaced
3113:a0737406ce26 | 3179:cd50d1b5f35b |
---|---|
25 | 25 |
26 import logging | 26 import logging |
27 import traceback | 27 import traceback |
28 import itertools | 28 import itertools |
29 import collections | 29 import collections |
30 import functools | |
31 from pylons import url | 30 from pylons import url |
32 from pylons.i18n.translation import _ | 31 from pylons.i18n.translation import _ |
33 | 32 |
34 from sqlalchemy.exc import DatabaseError | 33 from sqlalchemy.exc import DatabaseError |
35 from sqlalchemy.orm import joinedload | 34 from sqlalchemy.orm import joinedload |
38 from rhodecode.lib.caching_query import FromCache | 37 from rhodecode.lib.caching_query import FromCache |
39 from rhodecode.model import BaseModel | 38 from rhodecode.model import BaseModel |
40 from rhodecode.model.db import User, UserRepoToPerm, Repository, Permission, \ | 39 from rhodecode.model.db import User, UserRepoToPerm, Repository, Permission, \ |
41 UserToPerm, UsersGroupRepoToPerm, UsersGroupToPerm, UsersGroupMember, \ | 40 UserToPerm, UsersGroupRepoToPerm, UsersGroupToPerm, UsersGroupMember, \ |
42 Notification, RepoGroup, UserRepoGroupToPerm, UsersGroupRepoGroupToPerm, \ | 41 Notification, RepoGroup, UserRepoGroupToPerm, UsersGroupRepoGroupToPerm, \ |
43 UserEmailMap | 42 UserEmailMap, UserIpMap |
44 from rhodecode.lib.exceptions import DefaultUserException, \ | 43 from rhodecode.lib.exceptions import DefaultUserException, \ |
45 UserOwnsReposException | 44 UserOwnsReposException |
46 | 45 |
47 | 46 |
48 log = logging.getLogger(__name__) | 47 log = logging.getLogger(__name__) |
288 user.api_key = generate_api_key(user.username) | 287 user.api_key = generate_api_key(user.username) |
289 | 288 |
290 setattr(user, k, v) | 289 setattr(user, k, v) |
291 self.sa.add(user) | 290 self.sa.add(user) |
292 return user | 291 return user |
293 except: | |
294 log.error(traceback.format_exc()) | |
295 raise | |
296 | |
297 def update_my_account(self, user_id, form_data): | |
298 from rhodecode.lib.auth import get_crypt_password | |
299 try: | |
300 user = self.get(user_id, cache=False) | |
301 if user.username == 'default': | |
302 raise DefaultUserException( | |
303 _("You can't Edit this user since it's" | |
304 " crucial for entire application") | |
305 ) | |
306 for k, v in form_data.items(): | |
307 if k == 'new_password' and v: | |
308 user.password = get_crypt_password(v) | |
309 user.api_key = generate_api_key(user.username) | |
310 else: | |
311 if k == 'firstname': | |
312 k = 'name' | |
313 if k not in ['admin', 'active']: | |
314 setattr(user, k, v) | |
315 | |
316 self.sa.add(user) | |
317 except: | 292 except: |
318 log.error(traceback.format_exc()) | 293 log.error(traceback.format_exc()) |
319 raise | 294 raise |
320 | 295 |
321 def delete(self, user): | 296 def delete(self, user): |
703 """ | 678 """ |
704 user = self._get_user(user) | 679 user = self._get_user(user) |
705 obj = UserEmailMap.query().get(email_id) | 680 obj = UserEmailMap.query().get(email_id) |
706 if obj: | 681 if obj: |
707 self.sa.delete(obj) | 682 self.sa.delete(obj) |
683 | |
684 def add_extra_ip(self, user, ip): | |
685 """ | |
686 Adds ip address to UserIpMap | |
687 | |
688 :param user: | |
689 :param ip: | |
690 """ | |
691 from rhodecode.model import forms | |
692 form = forms.UserExtraIpForm()() | |
693 data = form.to_python(dict(ip=ip)) | |
694 user = self._get_user(user) | |
695 | |
696 obj = UserIpMap() | |
697 obj.user = user | |
698 obj.ip_addr = data['ip'] | |
699 self.sa.add(obj) | |
700 return obj | |
701 | |
702 def delete_extra_ip(self, user, ip_id): | |
703 """ | |
704 Removes ip address from UserIpMap | |
705 | |
706 :param user: | |
707 :param ip_id: | |
708 """ | |
709 user = self._get_user(user) | |
710 obj = UserIpMap.query().get(ip_id) | |
711 if obj: | |
712 self.sa.delete(obj) |