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)