changeset 6463:eb1a4c3cb76c

model: inline BaseModel._get_user calls
author Søren Løvborg <sorenl@unity3d.com>
date Wed, 18 Jan 2017 16:46:52 +0100
parents c8f34ad333a2
children d7d1e0a3850a
files kallithea/lib/celerylib/tasks.py kallithea/model/api_key.py kallithea/model/base.py kallithea/model/changeset_status.py kallithea/model/comment.py kallithea/model/gist.py kallithea/model/notification.py kallithea/model/permission.py kallithea/model/pull_request.py kallithea/model/repo.py kallithea/model/repo_group.py kallithea/model/repo_permission.py kallithea/model/scm.py kallithea/model/user.py kallithea/model/user_group.py
diffstat 15 files changed, 51 insertions(+), 62 deletions(-) [+]
line wrap: on
line diff
--- a/kallithea/lib/celerylib/tasks.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/lib/celerylib/tasks.py	Wed Jan 18 16:46:52 2017 +0100
@@ -327,12 +327,11 @@
 @celerylib.dbsession
 def create_repo(form_data, cur_user):
     from kallithea.model.repo import RepoModel
-    from kallithea.model.user import UserModel
     from kallithea.model.db import Setting
 
     DBS = celerylib.get_session()
 
-    cur_user = UserModel(DBS)._get_user(cur_user)
+    cur_user = User.guess_instance(cur_user)
 
     owner = cur_user
     repo_name = form_data['repo_name']
@@ -417,12 +416,11 @@
     :param cur_user:
     """
     from kallithea.model.repo import RepoModel
-    from kallithea.model.user import UserModel
 
     DBS = celerylib.get_session()
 
     base_path = Repository.base_path()
-    cur_user = UserModel(DBS)._get_user(cur_user)
+    cur_user = User.guess_instance(cur_user)
 
     repo_name = form_data['repo_name']  # fork in this case
     repo_name_full = form_data['repo_name_full']
--- a/kallithea/model/api_key.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/api_key.py	Wed Jan 18 16:46:52 2017 +0100
@@ -31,7 +31,7 @@
 
 from kallithea.lib.utils2 import generate_api_key
 from kallithea.model.base import BaseModel
-from kallithea.model.db import UserApiKeys
+from kallithea.model.db import User, UserApiKeys
 from kallithea.model.meta import Session
 
 log = logging.getLogger(__name__)
@@ -45,7 +45,7 @@
         :param description: description of ApiKey
         :param lifetime: expiration time in seconds
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         new_api_key = UserApiKeys()
         new_api_key.api_key = generate_api_key()
@@ -64,14 +64,14 @@
         api_key = UserApiKeys.query().filter(UserApiKeys.api_key == api_key)
 
         if user is not None:
-            user = self._get_user(user)
+            user = User.guess_instance(user)
             api_key = api_key.filter(UserApiKeys.user_id == user.user_id)
 
         api_key = api_key.scalar()
         Session().delete(api_key)
 
     def get_api_keys(self, user, show_expired=True):
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         user_api_keys = UserApiKeys.query() \
             .filter(UserApiKeys.user_id == user.user_id)
         if not show_expired:
--- a/kallithea/model/base.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/base.py	Wed Jan 18 16:46:52 2017 +0100
@@ -60,15 +60,6 @@
         else:
             self.sa = meta.Session()
 
-    def _get_user(self, user):
-        """
-        Helper method to get user by ID, or username fallback
-
-        :param user: UserID, username, or User instance
-        """
-        from kallithea.model.db import User
-        return User.guess_instance(user)
-
     def _get_repo(self, repository):
         """
         Helper method to get repository by ID, or repository name
--- a/kallithea/model/changeset_status.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/changeset_status.py	Wed Jan 18 16:46:52 2017 +0100
@@ -29,7 +29,7 @@
 from sqlalchemy.orm import joinedload
 
 from kallithea.model.base import BaseModel
-from kallithea.model.db import ChangesetStatus, PullRequest
+from kallithea.model.db import ChangesetStatus, PullRequest, User
 from kallithea.lib.exceptions import StatusChangeOnClosedPullRequestError
 
 log = logging.getLogger(__name__)
@@ -184,7 +184,7 @@
         for rev in revisions:
             new_status = ChangesetStatus()
             new_status.version = 0 # default
-            new_status.author = self._get_user(user)
+            new_status.author = User.guess_instance(user)
             new_status.repo = self._get_repo(repo)
             new_status.status = status
             new_status.comment = comment
--- a/kallithea/model/comment.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/comment.py	Wed Jan 18 16:46:52 2017 +0100
@@ -169,7 +169,7 @@
             return None
 
         repo = self._get_repo(repo)
-        author = self._get_user(author)
+        author = User.guess_instance(author)
         comment = ChangesetComment()
         comment.repo = repo
         comment.author = author
--- a/kallithea/model/gist.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/gist.py	Wed Jan 18 16:46:52 2017 +0100
@@ -35,7 +35,7 @@
     time_to_datetime, AttributeDict
 from kallithea.lib.compat import json
 from kallithea.model.base import BaseModel
-from kallithea.model.db import Gist
+from kallithea.model.db import Gist, User
 from kallithea.model.repo import RepoModel
 from kallithea.model.scm import ScmModel
 
@@ -107,7 +107,7 @@
         :param gist_type: type of gist private/public
         :param lifetime: in minutes, -1 == forever
         """
-        owner = self._get_user(owner)
+        owner = User.guess_instance(owner)
         gist_id = safe_unicode(unique_id(20))
         lifetime = safe_int(lifetime, -1)
         gist_expires = time.time() + (lifetime * 60) if lifetime != -1 else -1
--- a/kallithea/model/notification.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/notification.py	Wed Jan 18 16:46:52 2017 +0100
@@ -67,12 +67,12 @@
         if recipients and not getattr(recipients, '__iter__', False):
             raise Exception('recipients must be a list or iterable')
 
-        created_by_obj = self._get_user(created_by)
+        created_by_obj = User.guess_instance(created_by)
 
         recipients_objs = []
         if recipients:
             for u in recipients:
-                obj = self._get_user(u)
+                obj = User.guess_instance(u)
                 if obj is not None:
                     recipients_objs.append(obj)
                 else:
@@ -142,7 +142,7 @@
         # we don't want to remove actual notification just the assignment
         try:
             notification = Notification.guess_instance(notification)
-            user = self._get_user(user)
+            user = User.guess_instance(user)
             if notification and user:
                 obj = UserNotification.query() \
                         .filter(UserNotification.user == user) \
@@ -162,7 +162,7 @@
         :param user:
         :param filter:
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         q = UserNotification.query() \
             .filter(UserNotification.user == user) \
@@ -180,7 +180,7 @@
     def mark_read(self, user, notification):
         try:
             notification = Notification.guess_instance(notification)
-            user = self._get_user(user)
+            user = User.guess_instance(user)
             if notification and user:
                 obj = UserNotification.query() \
                         .filter(UserNotification.user == user) \
@@ -194,7 +194,7 @@
             raise
 
     def mark_all_read_for_user(self, user, filter_=None):
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         q = UserNotification.query() \
             .filter(UserNotification.user == user) \
             .filter(UserNotification.read == False) \
@@ -209,19 +209,19 @@
             obj.read = True
 
     def get_unread_cnt_for_user(self, user):
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         return UserNotification.query() \
                 .filter(UserNotification.read == False) \
                 .filter(UserNotification.user == user).count()
 
     def get_unread_for_user(self, user):
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         return [x.notification for x in UserNotification.query() \
                 .filter(UserNotification.read == False) \
                 .filter(UserNotification.user == user).all()]
 
     def get_user_notification(self, user, notification):
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         notification = Notification.guess_instance(notification)
 
         return UserNotification.query() \
--- a/kallithea/model/permission.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/permission.py	Wed Jan 18 16:46:52 2017 +0100
@@ -62,7 +62,7 @@
 
         :param user:
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         def _make_perm(perm):
             new_perm = UserToPerm()
--- a/kallithea/model/pull_request.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/pull_request.py	Wed Jan 18 16:46:52 2017 +0100
@@ -53,7 +53,7 @@
         specified, or if a given ID or username does not match any user.
         """
         for user_spec in seq:
-            user = self._get_user(user_spec)
+            user = User.guess_instance(user_spec)
             if user is None or user.username == User.DEFAULT_USER:
                 raise UserInvalidException(user_spec)
             yield user
--- a/kallithea/model/repo.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/repo.py	Wed Jan 18 16:46:52 2017 +0100
@@ -120,7 +120,7 @@
         :param user:
         """
         from kallithea.lib.auth import AuthUser
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         repos = AuthUser(dbuser=user).permissions['repositories']
         access_check = lambda r: r[1] in ['repository.read',
                                           'repository.write',
@@ -368,7 +368,7 @@
         """
         from kallithea.model.scm import ScmModel
 
-        owner = self._get_user(owner)
+        owner = User.guess_instance(owner)
         fork_of = self._get_repo(fork_of)
         repo_group = self._get_repo_group(repo_group)
         try:
@@ -557,7 +557,7 @@
         :param user: Instance of User, user_id or username
         :param perm: Instance of Permission, or permission_name
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         repo = self._get_repo(repo)
         permission = self._get_perm(perm)
 
@@ -584,7 +584,7 @@
         :param user: Instance of User, user_id or username
         """
 
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         repo = self._get_repo(repo)
 
         obj = self.sa.query(UserRepoToPerm) \
--- a/kallithea/model/repo_group.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/repo_group.py	Wed Jan 18 16:46:52 2017 +0100
@@ -141,7 +141,7 @@
     def create(self, group_name, group_description, owner, parent=None,
                just_db=False, copy_permissions=False):
         try:
-            owner = self._get_user(owner)
+            owner = User.guess_instance(owner)
             parent_group = self._get_repo_group(parent)
             new_repo_group = RepoGroup()
             new_repo_group.owner = owner
@@ -447,7 +447,7 @@
         """
 
         repo_group = self._get_repo_group(repo_group)
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         permission = self._get_perm(perm)
 
         # check if we have that permission already
@@ -475,7 +475,7 @@
         """
 
         repo_group = self._get_repo_group(repo_group)
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         obj = self.sa.query(UserRepoGroupToPerm) \
             .filter(UserRepoGroupToPerm.user == user) \
--- a/kallithea/model/repo_permission.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/repo_permission.py	Wed Jan 18 16:46:52 2017 +0100
@@ -25,7 +25,7 @@
 
 import logging
 from kallithea.model.base import BaseModel
-from kallithea.model.db import UserRepoToPerm, UserGroupRepoToPerm, \
+from kallithea.model.db import User, UserRepoToPerm, UserGroupRepoToPerm, \
     Permission
 
 log = logging.getLogger(__name__)
@@ -35,7 +35,7 @@
 
     def get_user_permission(self, repository, user):
         repository = self._get_repo(repository)
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         return UserRepoToPerm.query() \
                 .filter(UserRepoToPerm.user == user) \
--- a/kallithea/model/scm.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/scm.py	Wed Jan 18 16:46:52 2017 +0100
@@ -438,7 +438,7 @@
 
         :param repo: a db_repo.scm_instance
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         IMC = self._get_IMC_module(repo.alias)
 
         # decoding here will force that we have proper encoded values
@@ -519,7 +519,7 @@
         :returns: new committed changeset
         """
 
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         scm_instance = repo.scm_instance_no_cache()
 
         processed_nodes = []
@@ -577,7 +577,7 @@
         """
         Commits specified nodes to repo. Again.
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         scm_instance = repo.scm_instance_no_cache()
 
         message = safe_unicode(message)
@@ -647,7 +647,7 @@
         :returns: new committed changeset after deletion
         """
 
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         scm_instance = repo.scm_instance_no_cache()
 
         processed_nodes = []
--- a/kallithea/model/user.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/user.py	Wed Jan 18 16:46:52 2017 +0100
@@ -61,7 +61,7 @@
         return user.get(user_id)
 
     def get_user(self, user):
-        return self._get_user(user)
+        return User.guess_instance(user)
 
     def create(self, form_data, cur_user=None):
         if not cur_user:
@@ -231,7 +231,7 @@
     def update_user(self, user, **kwargs):
         from kallithea.lib.auth import get_crypt_password
 
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         if user.username == User.DEFAULT_USER:
             raise DefaultUserException(
                 _("You can't edit this user since it's"
@@ -249,7 +249,7 @@
     def delete(self, user, cur_user=None):
         if cur_user is None:
             cur_user = getattr(get_current_authuser(), 'username', None)
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         if user.username == User.DEFAULT_USER:
             raise DefaultUserException(
@@ -421,7 +421,7 @@
 
     def has_perm(self, user, perm):
         perm = self._get_perm(perm)
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         return UserToPerm.query().filter(UserToPerm.user == user) \
             .filter(UserToPerm.permission == perm).scalar() is not None
@@ -433,7 +433,7 @@
         :param user:
         :param perm:
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         perm = self._get_perm(perm)
         # if this permission is already granted skip it
         _perm = UserToPerm.query() \
@@ -455,7 +455,7 @@
         :param user:
         :param perm:
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         perm = self._get_perm(perm)
 
         UserToPerm.query().filter(
@@ -473,7 +473,7 @@
         from kallithea.model import forms
         form = forms.UserExtraEmailForm()()
         data = form.to_python(dict(email=email))
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         obj = UserEmailMap()
         obj.user = user
@@ -488,7 +488,7 @@
         :param user:
         :param email_id:
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         obj = UserEmailMap.query().get(email_id)
         if obj is not None:
             self.sa.delete(obj)
@@ -503,7 +503,7 @@
         from kallithea.model import forms
         form = forms.UserExtraIpForm()()
         data = form.to_python(dict(ip=ip))
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         obj = UserIpMap()
         obj.user = user
@@ -518,7 +518,7 @@
         :param user:
         :param ip_id:
         """
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         obj = UserIpMap.query().get(ip_id)
         if obj:
             self.sa.delete(obj)
--- a/kallithea/model/user_group.py	Wed Jan 18 16:30:13 2017 +0100
+++ b/kallithea/model/user_group.py	Wed Jan 18 16:46:52 2017 +0100
@@ -106,7 +106,7 @@
     def create(self, name, description, owner, active=True, group_data=None):
         try:
             new_user_group = UserGroup()
-            new_user_group.owner = self._get_user(owner)
+            new_user_group.owner = User.guess_instance(owner)
             new_user_group.users_group_name = name
             new_user_group.user_group_description = description
             new_user_group.users_group_active = active
@@ -174,7 +174,7 @@
 
     def add_user_to_group(self, user_group, user):
         user_group = self._get_user_group(user_group)
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         for m in user_group.members:
             u = m.user
@@ -198,7 +198,7 @@
 
     def remove_user_from_group(self, user_group, user):
         user_group = self._get_user_group(user_group)
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         user_group_member = None
         for m in user_group.members:
@@ -266,7 +266,7 @@
         """
 
         user_group = self._get_user_group(user_group)
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         permission = self._get_perm(perm)
 
         # check if we have that permission already
@@ -294,7 +294,7 @@
         """
 
         user_group = self._get_user_group(user_group)
-        user = self._get_user(user)
+        user = User.guess_instance(user)
 
         obj = self.sa.query(UserUserGroupToPerm) \
             .filter(UserUserGroupToPerm.user == user) \
@@ -354,7 +354,7 @@
             log.debug('Revoked perm on %s on %s', target_user_group, user_group)
 
     def enforce_groups(self, user, groups, extern_type=None):
-        user = self._get_user(user)
+        user = User.guess_instance(user)
         log.debug('Enforcing groups %s on user %s', user, groups)
         current_groups = user.group_member
         # find the external created groups