Mercurial > kallithea
diff 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 |
line wrap: on
line diff
--- a/rhodecode/model/user.py Thu Dec 20 20:05:54 2012 +0100 +++ b/rhodecode/model/user.py Sun Dec 30 23:06:03 2012 +0100 @@ -40,7 +40,7 @@ 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 @@ 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)