diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2012-12-30 23:06:03 +0100 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2012-12-30 23:06:03 +0100 |
commit | b8e1df75b21aad11a161aa3930eb7f26c1c45770 (patch) | |
tree | fcc9b54514288e334d5cf135ecb0e28fb12053bb /rhodecode/model/user.py | |
parent | 41981be79eefe651870aab3138d143296a4205a2 (diff) |
Added UserIpMap interface for allowed IP addresses and IP restriction access
ref #264 IP restriction for users and user groups
--HG--
branch : beta
extra : amend_source : b1cad1d9ff6ef50b570689dacec7902a8909895b
Diffstat (limited to 'rhodecode/model/user.py')
-rw-r--r-- | rhodecode/model/user.py | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/rhodecode/model/user.py b/rhodecode/model/user.py index 89657793..51cc28e4 100644 --- a/rhodecode/model/user.py +++ b/rhodecode/model/user.py @@ -40,7 +40,7 @@ from rhodecode.model import BaseModel from rhodecode.model.db import User, UserRepoToPerm, Repository, Permission, \ UserToPerm, UsersGroupRepoToPerm, UsersGroupToPerm, UsersGroupMember, \ Notification, RepoGroup, UserRepoGroupToPerm, UsersGroupRepoGroupToPerm, \ - UserEmailMap + UserEmailMap, UserIpMap from rhodecode.lib.exceptions import DefaultUserException, \ UserOwnsReposException @@ -705,3 +705,33 @@ class UserModel(BaseModel): obj = UserEmailMap.query().get(email_id) if obj: self.sa.delete(obj) + + def add_extra_ip(self, user, ip): + """ + Adds ip address to UserIpMap + + :param user: + :param ip: + """ + from rhodecode.model import forms + form = forms.UserExtraIpForm()() + data = form.to_python(dict(ip=ip)) + user = self._get_user(user) + + obj = UserIpMap() + obj.user = user + obj.ip_addr = data['ip'] + self.sa.add(obj) + return obj + + def delete_extra_ip(self, user, ip_id): + """ + Removes ip address from UserIpMap + + :param user: + :param ip_id: + """ + user = self._get_user(user) + obj = UserIpMap.query().get(ip_id) + if obj: + self.sa.delete(obj) |