aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/model/user.py
diff options
context:
space:
mode:
Diffstat (limited to 'rhodecode/model/user.py')
-rw-r--r--rhodecode/model/user.py57
1 files changed, 31 insertions, 26 deletions
diff --git a/rhodecode/model/user.py b/rhodecode/model/user.py
index 89657793..453c6472 100644
--- a/rhodecode/model/user.py
+++ b/rhodecode/model/user.py
@@ -27,7 +27,6 @@ import logging
import traceback
import itertools
import collections
-import functools
from pylons import url
from pylons.i18n.translation import _
@@ -40,7 +39,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
@@ -294,30 +293,6 @@ class UserModel(BaseModel):
log.error(traceback.format_exc())
raise
- def update_my_account(self, user_id, form_data):
- from rhodecode.lib.auth import get_crypt_password
- try:
- user = self.get(user_id, cache=False)
- if user.username == 'default':
- raise DefaultUserException(
- _("You can't Edit this user since it's"
- " crucial for entire application")
- )
- for k, v in form_data.items():
- if k == 'new_password' and v:
- user.password = get_crypt_password(v)
- user.api_key = generate_api_key(user.username)
- else:
- if k == 'firstname':
- k = 'name'
- if k not in ['admin', 'active']:
- setattr(user, k, v)
-
- self.sa.add(user)
- except:
- log.error(traceback.format_exc())
- raise
-
def delete(self, user):
user = self._get_user(user)
@@ -705,3 +680,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)