aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rhodecode/model/__init__.py32
-rw-r--r--rhodecode/model/changeset_status.py21
-rw-r--r--rhodecode/model/notification.py19
-rw-r--r--rhodecode/model/repo.py31
-rw-r--r--rhodecode/model/repo_permission.py19
-rw-r--r--rhodecode/model/repos_group.py15
-rw-r--r--rhodecode/model/user.py29
-rw-r--r--rhodecode/model/users_group.py15
8 files changed, 77 insertions, 104 deletions
diff --git a/rhodecode/model/__init__.py b/rhodecode/model/__init__.py
index 9452e8e9..bce442cb 100644
--- a/rhodecode/model/__init__.py
+++ b/rhodecode/model/__init__.py
@@ -42,7 +42,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging
-
+from rhodecode.model.db import User, Repository, Permission
from rhodecode.model import meta
log = logging.getLogger(__name__)
@@ -96,3 +96,33 @@ class BaseModel(object):
)
else:
return callback(instance)
+
+ def _get_user(self, user):
+ """
+ Helper method to get user by ID, or username fallback
+
+ :param user:
+ :type user: UserID, username, or User instance
+ """
+ return self._get_instance(User, user,
+ callback=User.get_by_username)
+
+ def _get_repo(self, repository):
+ """
+ Helper method to get repository by ID, or repository name
+
+ :param repository:
+ :type repository: RepoID, repository name or Repository Instance
+ """
+ return self._get_instance(Repository, repository,
+ callback=Repository.get_by_repo_name)
+
+ def _get_perm(self, permission):
+ """
+ Helper method to get permission by ID, or permission name
+
+ :param permission:
+ :type permission: PermissionID, permission_name or Permission instance
+ """
+ return self._get_instance(Permission, permission,
+ callback=Permission.get_by_key)
diff --git a/rhodecode/model/changeset_status.py b/rhodecode/model/changeset_status.py
index 9a01066c..77ad0ab1 100644
--- a/rhodecode/model/changeset_status.py
+++ b/rhodecode/model/changeset_status.py
@@ -24,13 +24,9 @@
import logging
-import traceback
-from pylons.i18n.translation import _
-
-from rhodecode.lib.utils2 import safe_unicode
from rhodecode.model import BaseModel
-from rhodecode.model.db import ChangesetStatus, Repository, User
+from rhodecode.model.db import ChangesetStatus
log = logging.getLogger(__name__)
@@ -40,13 +36,6 @@ class ChangesetStatusModel(BaseModel):
def __get_changeset_status(self, changeset_status):
return self._get_instance(ChangesetStatus, changeset_status)
- def __get_repo(self, repository):
- return self._get_instance(Repository, repository,
- callback=Repository.get_by_repo_name)
-
- def __get_user(self, user):
- return self._get_instance(User, user, callback=User.get_by_username)
-
def get_status(self, repo, revision):
"""
Returns status of changeset for given revision and version 0
@@ -58,7 +47,7 @@ class ChangesetStatusModel(BaseModel):
:param revision: 40char hash
:type revision: str
"""
- repo = self.__get_repo(repo)
+ repo = self._get_repo(repo)
status = ChangesetStatus.query()\
.filter(ChangesetStatus.repo == repo)\
@@ -84,7 +73,7 @@ class ChangesetStatusModel(BaseModel):
:param comment:
:type comment:
"""
- repo = self.__get_repo(repo)
+ repo = self._get_repo(repo)
cur_statuses = ChangesetStatus.query()\
.filter(ChangesetStatus.repo == repo)\
@@ -95,8 +84,8 @@ class ChangesetStatusModel(BaseModel):
st.version += 1
self.sa.add(st)
new_status = ChangesetStatus()
- new_status.author = self.__get_user(user)
- new_status.repo = self.__get_repo(repo)
+ new_status.author = self._get_user(user)
+ new_status.repo = self._get_repo(repo)
new_status.status = status
new_status.revision = revision
new_status.comment = comment
diff --git a/rhodecode/model/notification.py b/rhodecode/model/notification.py
index dec1b406..b7eb61c9 100644
--- a/rhodecode/model/notification.py
+++ b/rhodecode/model/notification.py
@@ -42,9 +42,6 @@ log = logging.getLogger(__name__)
class NotificationModel(BaseModel):
- def __get_user(self, user):
- return self._get_instance(User, user, callback=User.get_by_username)
-
def __get_notification(self, notification):
if isinstance(notification, Notification):
return notification
@@ -77,12 +74,12 @@ class NotificationModel(BaseModel):
if recipients and not getattr(recipients, '__iter__', False):
raise Exception('recipients must be a list of iterable')
- created_by_obj = self.__get_user(created_by)
+ created_by_obj = self._get_user(created_by)
if recipients:
recipients_objs = []
for u in recipients:
- obj = self.__get_user(u)
+ obj = self._get_user(u)
if obj:
recipients_objs.append(obj)
recipients_objs = set(recipients_objs)
@@ -126,7 +123,7 @@ class NotificationModel(BaseModel):
# we don't want to remove actual notification just the assignment
try:
notification = self.__get_notification(notification)
- user = self.__get_user(user)
+ user = self._get_user(user)
if notification and user:
obj = UserNotification.query()\
.filter(UserNotification.user == user)\
@@ -140,29 +137,29 @@ class NotificationModel(BaseModel):
raise
def get_for_user(self, user):
- user = self.__get_user(user)
+ user = self._get_user(user)
return user.notifications
def mark_all_read_for_user(self, user):
- user = self.__get_user(user)
+ user = self._get_user(user)
UserNotification.query()\
.filter(UserNotification.read == False)\
.update({'read': True})
def get_unread_cnt_for_user(self, user):
- user = self.__get_user(user)
+ user = self._get_user(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 = self._get_user(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 = self._get_user(user)
notification = self.__get_notification(notification)
return UserNotification.query()\
diff --git a/rhodecode/model/repo.py b/rhodecode/model/repo.py
index 45677393..3fa5da1f 100644
--- a/rhodecode/model/repo.py
+++ b/rhodecode/model/repo.py
@@ -48,9 +48,6 @@ log = logging.getLogger(__name__)
class RepoModel(BaseModel):
- def __get_user(self, user):
- return self._get_instance(User, user, callback=User.get_by_username)
-
def __get_users_group(self, users_group):
return self._get_instance(UsersGroup, users_group,
callback=UsersGroup.get_by_group_name)
@@ -59,14 +56,6 @@ class RepoModel(BaseModel):
return self._get_instance(RepoGroup, repos_group,
callback=RepoGroup.get_by_group_name)
- def __get_repo(self, repository):
- return self._get_instance(Repository, repository,
- callback=Repository.get_by_repo_name)
-
- def __get_perm(self, permission):
- return self._get_instance(Permission, permission,
- callback=Permission.get_by_key)
-
@LazyProperty
def repos_path(self):
"""
@@ -86,7 +75,7 @@ class RepoModel(BaseModel):
return repo.scalar()
def get_repo(self, repository):
- return self.__get_repo(repository)
+ return self._get_repo(repository)
def get_by_repo_name(self, repo_name, cache=False):
repo = self.sa.query(Repository)\
@@ -311,7 +300,7 @@ class RepoModel(BaseModel):
run_task(tasks.create_repo_fork, form_data, cur_user)
def delete(self, repo):
- repo = self.__get_repo(repo)
+ repo = self._get_repo(repo)
try:
self.sa.delete(repo)
self.__delete_repo(repo)
@@ -328,9 +317,9 @@ class RepoModel(BaseModel):
:param user: Instance of User, user_id or username
:param perm: Instance of Permission, or permission_name
"""
- user = self.__get_user(user)
- repo = self.__get_repo(repo)
- permission = self.__get_perm(perm)
+ user = self._get_user(user)
+ repo = self._get_repo(repo)
+ permission = self._get_perm(perm)
# check if we have that permission already
obj = self.sa.query(UserRepoToPerm)\
@@ -353,8 +342,8 @@ class RepoModel(BaseModel):
:param user: Instance of User, user_id or username
"""
- user = self.__get_user(user)
- repo = self.__get_repo(repo)
+ user = self._get_user(user)
+ repo = self._get_repo(repo)
obj = self.sa.query(UserRepoToPerm)\
.filter(UserRepoToPerm.repository == repo)\
@@ -372,9 +361,9 @@ class RepoModel(BaseModel):
or users group name
:param perm: Instance of Permission, or permission_name
"""
- repo = self.__get_repo(repo)
+ repo = self._get_repo(repo)
group_name = self.__get_users_group(group_name)
- permission = self.__get_perm(perm)
+ permission = self._get_perm(perm)
# check if we have that permission already
obj = self.sa.query(UsersGroupRepoToPerm)\
@@ -399,7 +388,7 @@ class RepoModel(BaseModel):
:param group_name: Instance of UserGroup, users_group_id,
or users group name
"""
- repo = self.__get_repo(repo)
+ repo = self._get_repo(repo)
group_name = self.__get_users_group(group_name)
obj = self.sa.query(UsersGroupRepoToPerm)\
diff --git a/rhodecode/model/repo_permission.py b/rhodecode/model/repo_permission.py
index 0f19ef56..4424429c 100644
--- a/rhodecode/model/repo_permission.py
+++ b/rhodecode/model/repo_permission.py
@@ -26,28 +26,17 @@
import logging
from rhodecode.model import BaseModel
-from rhodecode.model.db import UserRepoToPerm, UsersGroupRepoToPerm, Permission,\
- User, Repository
+from rhodecode.model.db import UserRepoToPerm, UsersGroupRepoToPerm, \
+ Permission
log = logging.getLogger(__name__)
class RepositoryPermissionModel(BaseModel):
- def __get_user(self, user):
- return self._get_instance(User, user, callback=User.get_by_username)
-
- def __get_repo(self, repository):
- return self._get_instance(Repository, repository,
- callback=Repository.get_by_repo_name)
-
- def __get_perm(self, permission):
- return self._get_instance(Permission, permission,
- callback=Permission.get_by_key)
-
def get_user_permission(self, repository, user):
- repository = self.__get_repo(repository)
- user = self.__get_user(user)
+ repository = self._get_repo(repository)
+ user = self._get_user(user)
return UserRepoToPerm.query() \
.filter(UserRepoToPerm.user == user) \
diff --git a/rhodecode/model/repos_group.py b/rhodecode/model/repos_group.py
index 8791b21b..a8434736 100644
--- a/rhodecode/model/repos_group.py
+++ b/rhodecode/model/repos_group.py
@@ -39,9 +39,6 @@ log = logging.getLogger(__name__)
class ReposGroupModel(BaseModel):
- def __get_user(self, user):
- return self._get_instance(User, user, callback=User.get_by_username)
-
def __get_users_group(self, users_group):
return self._get_instance(UsersGroup, users_group,
callback=UsersGroup.get_by_group_name)
@@ -50,10 +47,6 @@ class ReposGroupModel(BaseModel):
return self._get_instance(RepoGroup, repos_group,
callback=RepoGroup.get_by_group_name)
- def __get_perm(self, permission):
- return self._get_instance(Permission, permission,
- callback=Permission.get_by_key)
-
@LazyProperty
def repos_path(self):
"""
@@ -227,8 +220,8 @@ class ReposGroupModel(BaseModel):
"""
repos_group = self.__get_repos_group(repos_group)
- user = self.__get_user(user)
- permission = self.__get_perm(perm)
+ user = self._get_user(user)
+ permission = self._get_perm(perm)
# check if we have that permission already
obj = self.sa.query(UserRepoGroupToPerm)\
@@ -253,7 +246,7 @@ class ReposGroupModel(BaseModel):
"""
repos_group = self.__get_repos_group(repos_group)
- user = self.__get_user(user)
+ user = self._get_user(user)
obj = self.sa.query(UserRepoGroupToPerm)\
.filter(UserRepoGroupToPerm.user == user)\
@@ -274,7 +267,7 @@ class ReposGroupModel(BaseModel):
"""
repos_group = self.__get_repos_group(repos_group)
group_name = self.__get_users_group(group_name)
- permission = self.__get_perm(perm)
+ permission = self._get_perm(perm)
# check if we have that permission already
obj = self.sa.query(UsersGroupRepoGroupToPerm)\
diff --git a/rhodecode/model/user.py b/rhodecode/model/user.py
index 0f633e42..441eceaf 100644
--- a/rhodecode/model/user.py
+++ b/rhodecode/model/user.py
@@ -35,8 +35,8 @@ from rhodecode.lib.caching_query import FromCache
from rhodecode.model import BaseModel
from rhodecode.model.db import User, UserRepoToPerm, Repository, Permission, \
UserToPerm, UsersGroupRepoToPerm, UsersGroupToPerm, UsersGroupMember, \
- Notification, RepoGroup, UserRepoGroupToPerm, UsersGroup,\
- UsersGroupRepoGroupToPerm, UserEmailMap
+ Notification, RepoGroup, UserRepoGroupToPerm, UsersGroupRepoGroupToPerm, \
+ UserEmailMap
from rhodecode.lib.exceptions import DefaultUserException, \
UserOwnsReposException
@@ -61,13 +61,6 @@ PERM_WEIGHTS = {
class UserModel(BaseModel):
- def __get_user(self, user):
- return self._get_instance(User, user, callback=User.get_by_username)
-
- def __get_perm(self, permission):
- return self._get_instance(Permission, permission,
- callback=Permission.get_by_key)
-
def get(self, user_id, cache=False):
user = self.sa.query(User)
if cache:
@@ -76,7 +69,7 @@ class UserModel(BaseModel):
return user.get(user_id)
def get_user(self, user):
- return self.__get_user(user)
+ return self._get_user(user)
def get_by_username(self, username, cache=False, case_insensitive=False):
@@ -292,7 +285,7 @@ class UserModel(BaseModel):
raise
def delete(self, user):
- user = self.__get_user(user)
+ user = self._get_user(user)
try:
if user.username == 'default':
@@ -545,7 +538,7 @@ class UserModel(BaseModel):
raise Exception('perm needs to be an instance of Permission class '
'got %s instead' % type(perm))
- user = self.__get_user(user)
+ user = self._get_user(user)
return UserToPerm.query().filter(UserToPerm.user == user)\
.filter(UserToPerm.permission == perm).scalar() is not None
@@ -557,8 +550,8 @@ class UserModel(BaseModel):
:param user:
:param perm:
"""
- user = self.__get_user(user)
- perm = self.__get_perm(perm)
+ user = self._get_user(user)
+ perm = self._get_perm(perm)
# if this permission is already granted skip it
_perm = UserToPerm.query()\
.filter(UserToPerm.user == user)\
@@ -578,8 +571,8 @@ class UserModel(BaseModel):
:param user:
:param perm:
"""
- user = self.__get_user(user)
- perm = self.__get_perm(perm)
+ user = self._get_user(user)
+ perm = self._get_perm(perm)
obj = UserToPerm.query()\
.filter(UserToPerm.user == user)\
@@ -595,7 +588,7 @@ class UserModel(BaseModel):
:param user:
:param email:
"""
- user = self.__get_user(user)
+ user = self._get_user(user)
obj = UserEmailMap()
obj.user = user
obj.email = email
@@ -609,7 +602,7 @@ class UserModel(BaseModel):
:param user:
:param email_id:
"""
- user = self.__get_user(user)
+ user = self._get_user(user)
obj = UserEmailMap.query().get(email_id)
if obj:
self.sa.delete(obj) \ No newline at end of file
diff --git a/rhodecode/model/users_group.py b/rhodecode/model/users_group.py
index 378edea5..998662b3 100644
--- a/rhodecode/model/users_group.py
+++ b/rhodecode/model/users_group.py
@@ -37,17 +37,10 @@ log = logging.getLogger(__name__)
class UsersGroupModel(BaseModel):
- def __get_user(self, user):
- return self._get_instance(User, user, callback=User.get_by_username)
-
def __get_users_group(self, users_group):
return self._get_instance(UsersGroup, users_group,
callback=UsersGroup.get_by_group_name)
- def __get_perm(self, permission):
- return self._get_instance(Permission, permission,
- callback=Permission.get_by_key)
-
def get(self, users_group_id, cache=False):
return UsersGroup.get(users_group_id)
@@ -115,7 +108,7 @@ class UsersGroupModel(BaseModel):
def add_user_to_group(self, users_group, user):
users_group = self.__get_users_group(users_group)
- user = self.__get_user(user)
+ user = self._get_user(user)
for m in users_group.members:
u = m.user
@@ -138,7 +131,7 @@ class UsersGroupModel(BaseModel):
def remove_user_from_group(self, users_group, user):
users_group = self.__get_users_group(users_group)
- user = self.__get_user(user)
+ user = self._get_user(user)
users_group_member = None
for m in users_group.members:
@@ -160,7 +153,7 @@ class UsersGroupModel(BaseModel):
def has_perm(self, users_group, perm):
users_group = self.__get_users_group(users_group)
- perm = self.__get_perm(perm)
+ perm = self._get_perm(perm)
return UsersGroupToPerm.query()\
.filter(UsersGroupToPerm.users_group == users_group)\
@@ -187,7 +180,7 @@ class UsersGroupModel(BaseModel):
def revoke_perm(self, users_group, perm):
users_group = self.__get_users_group(users_group)
- perm = self.__get_perm(perm)
+ perm = self._get_perm(perm)
obj = UsersGroupToPerm.query()\
.filter(UsersGroupToPerm.users_group == users_group)\