aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/model/user.py
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2012-12-30 23:06:03 +0100
committerMarcin Kuzminski <marcin@python-works.com>2012-12-30 23:06:03 +0100
commitb8e1df75b21aad11a161aa3930eb7f26c1c45770 (patch)
treefcc9b54514288e334d5cf135ecb0e28fb12053bb /rhodecode/model/user.py
parent41981be79eefe651870aab3138d143296a4205a2 (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.py32
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)