Mercurial > kallithea
comparison rhodecode/model/user.py @ 3125:9b92cf5a0cca beta
Added UserIpMap interface for allowed IP addresses and IP restriction access
ref #264 IP restriction for users and user groups
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Sun, 30 Dec 2012 23:06:03 +0100 |
parents | 69b25f1b0b45 |
children | c5169e445fb8 |
comparison
equal
deleted
inserted
replaced
3124:6659c5af04e7 | 3125:9b92cf5a0cca |
---|---|
38 from rhodecode.lib.caching_query import FromCache | 38 from rhodecode.lib.caching_query import FromCache |
39 from rhodecode.model import BaseModel | 39 from rhodecode.model import BaseModel |
40 from rhodecode.model.db import User, UserRepoToPerm, Repository, Permission, \ | 40 from rhodecode.model.db import User, UserRepoToPerm, Repository, Permission, \ |
41 UserToPerm, UsersGroupRepoToPerm, UsersGroupToPerm, UsersGroupMember, \ | 41 UserToPerm, UsersGroupRepoToPerm, UsersGroupToPerm, UsersGroupMember, \ |
42 Notification, RepoGroup, UserRepoGroupToPerm, UsersGroupRepoGroupToPerm, \ | 42 Notification, RepoGroup, UserRepoGroupToPerm, UsersGroupRepoGroupToPerm, \ |
43 UserEmailMap | 43 UserEmailMap, UserIpMap |
44 from rhodecode.lib.exceptions import DefaultUserException, \ | 44 from rhodecode.lib.exceptions import DefaultUserException, \ |
45 UserOwnsReposException | 45 UserOwnsReposException |
46 | 46 |
47 | 47 |
48 log = logging.getLogger(__name__) | 48 log = logging.getLogger(__name__) |
703 """ | 703 """ |
704 user = self._get_user(user) | 704 user = self._get_user(user) |
705 obj = UserEmailMap.query().get(email_id) | 705 obj = UserEmailMap.query().get(email_id) |
706 if obj: | 706 if obj: |
707 self.sa.delete(obj) | 707 self.sa.delete(obj) |
708 | |
709 def add_extra_ip(self, user, ip): | |
710 """ | |
711 Adds ip address to UserIpMap | |
712 | |
713 :param user: | |
714 :param ip: | |
715 """ | |
716 from rhodecode.model import forms | |
717 form = forms.UserExtraIpForm()() | |
718 data = form.to_python(dict(ip=ip)) | |
719 user = self._get_user(user) | |
720 | |
721 obj = UserIpMap() | |
722 obj.user = user | |
723 obj.ip_addr = data['ip'] | |
724 self.sa.add(obj) | |
725 return obj | |
726 | |
727 def delete_extra_ip(self, user, ip_id): | |
728 """ | |
729 Removes ip address from UserIpMap | |
730 | |
731 :param user: | |
732 :param ip_id: | |
733 """ | |
734 user = self._get_user(user) | |
735 obj = UserIpMap.query().get(ip_id) | |
736 if obj: | |
737 self.sa.delete(obj) |