Changeset - dff9658bdd98
[Not reviewed]
default
0 7 0
Mads Kiilerich - 5 years ago 2020-10-12 01:44:10
mads@kiilerich.com
Grafted from: d119767f2748
model: don't import Session from db - import meta and get it from the real source
7 files changed with 61 insertions and 55 deletions:
0 comments (0 inline, 0 general)
kallithea/model/changeset_status.py
Show inline comments
 
@@ -29,7 +29,8 @@ import logging
 

	
 
from sqlalchemy.orm import joinedload
 

	
 
from kallithea.model.db import ChangesetStatus, PullRequest, Repository, Session, User
 
from kallithea.model import meta
 
from kallithea.model.db import ChangesetStatus, PullRequest, Repository, User
 

	
 

	
 
log = logging.getLogger(__name__)
 
@@ -178,5 +179,5 @@ class ChangesetStatusModel(object):
 
            new_status.revision = rev
 
            new_status.pull_request = pull_request
 
            new_statuses.append(new_status)
 
            Session().add(new_status)
 
            meta.Session().add(new_status)
 
        return new_statuses
kallithea/model/gist.py
Show inline comments
 
@@ -34,7 +34,8 @@ import traceback
 

	
 
from kallithea.lib import ext_json
 
from kallithea.lib.utils2 import AttributeDict, ascii_bytes, safe_int, time_to_datetime
 
from kallithea.model.db import Gist, Session, User
 
from kallithea.model import meta
 
from kallithea.model.db import Gist, User
 
from kallithea.model.repo import RepoModel
 
from kallithea.model.scm import ScmModel
 

	
 
@@ -121,8 +122,8 @@ class GistModel(object):
 
        gist.owner_id = owner.user_id
 
        gist.gist_expires = gist_expires
 
        gist.gist_type = gist_type
 
        Session().add(gist)
 
        Session().flush() # make database assign gist.gist_id
 
        meta.Session().add(gist)
 
        meta.Session().flush() # make database assign gist.gist_id
 
        if gist_type == Gist.GIST_PUBLIC:
 
            # use DB ID for easy to use GIST ID
 
            gist.gist_access_id = str(gist.gist_id)
 
@@ -172,7 +173,7 @@ class GistModel(object):
 
    def delete(self, gist, fs_remove=True):
 
        gist = Gist.guess_instance(gist)
 
        try:
 
            Session().delete(gist)
 
            meta.Session().delete(gist)
 
            if fs_remove:
 
                self.__delete_gist(gist)
 
            else:
kallithea/model/permission.py
Show inline comments
 
@@ -32,7 +32,8 @@ import traceback
 
from sqlalchemy.exc import DatabaseError
 

	
 
from kallithea.lib.utils2 import asbool
 
from kallithea.model.db import Permission, Session, User, UserRepoGroupToPerm, UserRepoToPerm, UserToPerm, UserUserGroupToPerm
 
from kallithea.model import meta
 
from kallithea.model.db import Permission, User, UserRepoGroupToPerm, UserRepoToPerm, UserToPerm, UserUserGroupToPerm
 

	
 

	
 
log = logging.getLogger(__name__)
 
@@ -51,7 +52,7 @@ class PermissionModel(object):
 
            if not Permission.get_by_key(p[0]):
 
                new_perm = Permission()
 
                new_perm.permission_name = p[0]
 
                Session().add(new_perm)
 
                meta.Session().add(new_perm)
 

	
 
    def create_default_permissions(self, user, force=False):
 
        """
 
@@ -78,8 +79,8 @@ class PermissionModel(object):
 

	
 
        if force:
 
            for perm in perms:
 
                Session().delete(perm)
 
            Session().commit()
 
                meta.Session().delete(perm)
 
            meta.Session().commit()
 
            defined_perms_groups = []
 
        # For every default permission that needs to be created, we check if
 
        # its group is already defined. If it's not, we create default permission.
 
@@ -89,7 +90,7 @@ class PermissionModel(object):
 
                log.debug('GR:%s not found, creating permission %s',
 
                          gr, perm_name)
 
                new_perm = _make_perm(perm_name)
 
                Session().add(new_perm)
 
                meta.Session().add(new_perm)
 

	
 
    def update(self, form_result):
 
        perm_user = User.get_by_username(username=form_result['perm_user_name'])
 
@@ -113,7 +114,7 @@ class PermissionModel(object):
 
                .filter(UserToPerm.user == perm_user) \
 
                .all()
 
            for p in u2p:
 
                Session().delete(p)
 
                meta.Session().delete(p)
 
            # create fresh set of permissions
 
            for def_perm_key in ['default_repo_perm',
 
                                 'default_group_perm',
 
@@ -124,7 +125,7 @@ class PermissionModel(object):
 
                                 'default_register',
 
                                 'default_extern_activate']:
 
                p = _make_new(perm_user, form_result[def_perm_key])
 
                Session().add(p)
 
                meta.Session().add(p)
 

	
 
            # stage 3 update all default permissions for repos if checked
 
            if form_result['overwrite_default_repo']:
 
@@ -157,8 +158,8 @@ class PermissionModel(object):
 
                               .all():
 
                    g2p.permission = _def
 

	
 
            Session().commit()
 
            meta.Session().commit()
 
        except (DatabaseError,):
 
            log.error(traceback.format_exc())
 
            Session().rollback()
 
            meta.Session().rollback()
 
            raise
kallithea/model/repo.py
Show inline comments
 
@@ -40,7 +40,8 @@ from kallithea.lib.hooks import log_dele
 
from kallithea.lib.utils import is_valid_repo_uri, make_ui
 
from kallithea.lib.utils2 import LazyProperty, get_current_authuser, obfuscate_url_pw, remove_prefix
 
from kallithea.lib.vcs.backends import get_backend
 
from kallithea.model.db import (Permission, RepoGroup, Repository, RepositoryField, Session, Statistics, Ui, User, UserGroup, UserGroupRepoGroupToPerm,
 
from kallithea.model import meta
 
from kallithea.model.db import (Permission, RepoGroup, Repository, RepositoryField, Statistics, Ui, User, UserGroup, UserGroupRepoGroupToPerm,
 
                                UserGroupRepoToPerm, UserRepoGroupToPerm, UserRepoToPerm)
 

	
 

	
 
@@ -65,7 +66,7 @@ class RepoModel(object):
 

	
 
        repo_to_perm.repository = repository
 
        repo_to_perm.user_id = def_user.user_id
 
        Session().add(repo_to_perm)
 
        meta.Session().add(repo_to_perm)
 

	
 
        return repo_to_perm
 

	
 
@@ -368,7 +369,7 @@ class RepoModel(object):
 
                parent_repo = fork_of
 
                new_repo.fork = parent_repo
 

	
 
            Session().add(new_repo)
 
            meta.Session().add(new_repo)
 

	
 
            if fork_of and copy_fork_permissions:
 
                repo = fork_of
 
@@ -409,7 +410,7 @@ class RepoModel(object):
 
            ScmModel().toggle_following_repo(new_repo.repo_id, owner.user_id)
 
            # we need to flush here, in order to check if database won't
 
            # throw any exceptions, create filesystem dirs at the very end
 
            Session().flush()
 
            meta.Session().flush()
 
            return new_repo
 
        except Exception:
 
            log.error(traceback.format_exc())
 
@@ -493,7 +494,7 @@ class RepoModel(object):
 

	
 
            old_repo_dict = repo.get_dict()
 
            try:
 
                Session().delete(repo)
 
                meta.Session().delete(repo)
 
                if fs_remove:
 
                    self._delete_filesystem_repo(repo)
 
                else:
 
@@ -525,7 +526,7 @@ class RepoModel(object):
 
        if obj is None:
 
            # create new !
 
            obj = UserRepoToPerm()
 
            Session().add(obj)
 
            meta.Session().add(obj)
 
        obj.repository = repo
 
        obj.user = user
 
        obj.permission = permission
 
@@ -548,7 +549,7 @@ class RepoModel(object):
 
            .filter(UserRepoToPerm.user == user) \
 
            .scalar()
 
        if obj is not None:
 
            Session().delete(obj)
 
            meta.Session().delete(obj)
 
            log.debug('Revoked perm on %s on %s', repo, user)
 

	
 
    def grant_user_group_permission(self, repo, group_name, perm):
 
@@ -574,7 +575,7 @@ class RepoModel(object):
 
        if obj is None:
 
            # create new
 
            obj = UserGroupRepoToPerm()
 
            Session().add(obj)
 
            meta.Session().add(obj)
 

	
 
        obj.repository = repo
 
        obj.users_group = group_name
 
@@ -598,7 +599,7 @@ class RepoModel(object):
 
            .filter(UserGroupRepoToPerm.users_group == group_name) \
 
            .scalar()
 
        if obj is not None:
 
            Session().delete(obj)
 
            meta.Session().delete(obj)
 
            log.debug('Revoked perm to %s on %s', repo, group_name)
 

	
 
    def delete_stats(self, repo_name):
 
@@ -612,7 +613,7 @@ class RepoModel(object):
 
            obj = Statistics.query() \
 
                .filter(Statistics.repository == repo).scalar()
 
            if obj is not None:
 
                Session().delete(obj)
 
                meta.Session().delete(obj)
 
        except Exception:
 
            log.error(traceback.format_exc())
 
            raise
kallithea/model/repo_group.py
Show inline comments
 
@@ -34,7 +34,8 @@ import traceback
 

	
 
import kallithea.lib.utils2
 
from kallithea.lib.utils2 import LazyProperty
 
from kallithea.model.db import Permission, RepoGroup, Repository, Session, Ui, User, UserGroup, UserGroupRepoGroupToPerm, UserRepoGroupToPerm
 
from kallithea.model import meta
 
from kallithea.model.db import Permission, RepoGroup, Repository, Ui, User, UserGroup, UserGroupRepoGroupToPerm, UserRepoGroupToPerm
 

	
 

	
 
log = logging.getLogger(__name__)
 
@@ -65,7 +66,7 @@ class RepoGroupModel(object):
 

	
 
        repo_group_to_perm.group = new_group
 
        repo_group_to_perm.user_id = def_user.user_id
 
        Session().add(repo_group_to_perm)
 
        meta.Session().add(repo_group_to_perm)
 
        return repo_group_to_perm
 

	
 
    def _create_group(self, group_name):
 
@@ -146,7 +147,7 @@ class RepoGroupModel(object):
 
            new_repo_group.parent_group = parent_group
 
            new_repo_group.group_name = new_repo_group.get_new_name(group_name)
 

	
 
            Session().add(new_repo_group)
 
            meta.Session().add(new_repo_group)
 

	
 
            # create an ADMIN permission for owner except if we're super admin,
 
            # later owner should go into the owner field of groups
 
@@ -177,7 +178,7 @@ class RepoGroupModel(object):
 
            if not just_db:
 
                # we need to flush here, in order to check if database won't
 
                # throw any exceptions, create filesystem dirs at the very end
 
                Session().flush()
 
                meta.Session().flush()
 
                self._create_group(new_repo_group.group_name)
 

	
 
            return new_repo_group
 
@@ -296,7 +297,7 @@ class RepoGroupModel(object):
 
                    raise Exception('invalid repo group name %s' % group_name)
 
                repo_group.group_name = repo_group.get_new_name(group_name)
 
            new_path = repo_group.full_path
 
            Session().add(repo_group)
 
            meta.Session().add(repo_group)
 

	
 
            # iterate over all members of this groups and do fixes
 
            # if obj is a repoGroup also fix the name of the group according
 
@@ -328,7 +329,7 @@ class RepoGroupModel(object):
 
    def delete(self, repo_group, force_delete=False):
 
        repo_group = RepoGroup.guess_instance(repo_group)
 
        try:
 
            Session().delete(repo_group)
 
            meta.Session().delete(repo_group)
 
            self._delete_group(repo_group, force_delete)
 
        except Exception:
 
            log.error('Error removing repo_group %s', repo_group)
 
@@ -457,7 +458,7 @@ class RepoGroupModel(object):
 
        if obj is None:
 
            # create new !
 
            obj = UserRepoGroupToPerm()
 
            Session().add(obj)
 
            meta.Session().add(obj)
 
        obj.group = repo_group
 
        obj.user = user
 
        obj.permission = permission
 
@@ -481,7 +482,7 @@ class RepoGroupModel(object):
 
            .filter(UserRepoGroupToPerm.group == repo_group) \
 
            .scalar()
 
        if obj is not None:
 
            Session().delete(obj)
 
            meta.Session().delete(obj)
 
            log.debug('Revoked perm on %s on %s', repo_group, user)
 

	
 
    def grant_user_group_permission(self, repo_group, group_name, perm):
 
@@ -508,7 +509,7 @@ class RepoGroupModel(object):
 
        if obj is None:
 
            # create new
 
            obj = UserGroupRepoGroupToPerm()
 
            Session().add(obj)
 
            meta.Session().add(obj)
 

	
 
        obj.group = repo_group
 
        obj.users_group = group_name
 
@@ -533,5 +534,5 @@ class RepoGroupModel(object):
 
            .filter(UserGroupRepoGroupToPerm.users_group == group_name) \
 
            .scalar()
 
        if obj is not None:
 
            Session().delete(obj)
 
            meta.Session().delete(obj)
 
            log.debug('Revoked perm to %s on %s', repo_group, group_name)
kallithea/model/scm.py
Show inline comments
 
@@ -46,7 +46,8 @@ from kallithea.lib.vcs.backends.base imp
 
from kallithea.lib.vcs.exceptions import RepositoryError
 
from kallithea.lib.vcs.nodes import FileNode
 
from kallithea.lib.vcs.utils.lazy import LazyProperty
 
from kallithea.model.db import PullRequest, RepoGroup, Repository, Session, Ui, User, UserFollowing, UserLog
 
from kallithea.model import meta
 
from kallithea.model.db import PullRequest, RepoGroup, Repository, Ui, User, UserFollowing, UserLog
 

	
 

	
 
log = logging.getLogger(__name__)
 
@@ -230,7 +231,7 @@ class ScmModel(object):
 

	
 
        if f is not None:
 
            try:
 
                Session().delete(f)
 
                meta.Session().delete(f)
 
                action_logger(UserTemp(user_id),
 
                              'stopped_following_repo',
 
                              RepoTemp(follow_repo_id))
 
@@ -243,7 +244,7 @@ class ScmModel(object):
 
            f = UserFollowing()
 
            f.user_id = user_id
 
            f.follows_repository_id = follow_repo_id
 
            Session().add(f)
 
            meta.Session().add(f)
 

	
 
            action_logger(UserTemp(user_id),
 
                          'started_following_repo',
 
@@ -259,7 +260,7 @@ class ScmModel(object):
 

	
 
        if f is not None:
 
            try:
 
                Session().delete(f)
 
                meta.Session().delete(f)
 
                return
 
            except Exception:
 
                log.error(traceback.format_exc())
 
@@ -269,7 +270,7 @@ class ScmModel(object):
 
            f = UserFollowing()
 
            f.user_id = user_id
 
            f.follows_user_id = follow_user_id
 
            Session().add(f)
 
            meta.Session().add(f)
 
        except Exception:
 
            log.error(traceback.format_exc())
 
            raise
kallithea/model/user_group.py
Show inline comments
 
@@ -28,8 +28,8 @@ import logging
 
import traceback
 

	
 
from kallithea.lib.exceptions import RepoGroupAssignmentError, UserGroupsAssignedException
 
from kallithea.model.db import (Permission, Session, User, UserGroup, UserGroupMember, UserGroupRepoToPerm, UserGroupToPerm, UserGroupUserGroupToPerm,
 
                                UserUserGroupToPerm)
 
from kallithea.model import meta
 
from kallithea.model.db import Permission, User, UserGroup, UserGroupMember, UserGroupRepoToPerm, UserGroupToPerm, UserGroupUserGroupToPerm, UserUserGroupToPerm
 

	
 

	
 
log = logging.getLogger(__name__)
 
@@ -51,7 +51,7 @@ class UserGroupModel(object):
 

	
 
        user_group_to_perm.user_group = user_group
 
        user_group_to_perm.user_id = def_user.user_id
 
        Session().add(user_group_to_perm)
 
        meta.Session().add(user_group_to_perm)
 
        return user_group_to_perm
 

	
 
    def _update_permissions(self, user_group, perms_new=None,
 
@@ -106,7 +106,7 @@ class UserGroupModel(object):
 
            new_user_group.users_group_active = active
 
            if group_data:
 
                new_user_group.group_data = group_data
 
            Session().add(new_user_group)
 
            meta.Session().add(new_user_group)
 
            self._create_default_perms(new_user_group)
 

	
 
            self.grant_user_permission(user_group=new_user_group,
 
@@ -130,13 +130,13 @@ class UserGroupModel(object):
 
                        for u_id in set(v):
 
                            member = UserGroupMember(user_group.users_group_id, u_id)
 
                            members_list.append(member)
 
                            Session().add(member)
 
                            meta.Session().add(member)
 
                    user_group.members = members_list
 
                setattr(user_group, k, v)
 

	
 
            # Flush to make db assign users_group_member_id to newly
 
            # created UserGroupMembers.
 
            Session().flush()
 
            meta.Session().flush()
 
        except Exception:
 
            log.error(traceback.format_exc())
 
            raise
 
@@ -160,7 +160,7 @@ class UserGroupModel(object):
 
            if assigned_groups and not force:
 
                raise UserGroupsAssignedException(
 
                    'User Group assigned to %s' % ", ".join(assigned_groups))
 
            Session().delete(user_group)
 
            meta.Session().delete(user_group)
 
        except Exception:
 
            log.error(traceback.format_exc())
 
            raise
 
@@ -184,7 +184,7 @@ class UserGroupModel(object):
 
            user_group.members.append(user_group_member)
 
            user.group_member.append(user_group_member)
 

	
 
            Session().add(user_group_member)
 
            meta.Session().add(user_group_member)
 
            return user_group_member
 
        except Exception:
 
            log.error(traceback.format_exc())
 
@@ -203,7 +203,7 @@ class UserGroupModel(object):
 

	
 
        if user_group_member:
 
            try:
 
                Session().delete(user_group_member)
 
                meta.Session().delete(user_group_member)
 
                return True
 
            except Exception:
 
                log.error(traceback.format_exc())
 
@@ -235,7 +235,7 @@ class UserGroupModel(object):
 
        new = UserGroupToPerm()
 
        new.users_group = user_group
 
        new.permission = perm
 
        Session().add(new)
 
        meta.Session().add(new)
 
        return new
 

	
 
    def revoke_perm(self, user_group, perm):
 
@@ -246,7 +246,7 @@ class UserGroupModel(object):
 
            .filter(UserGroupToPerm.users_group == user_group) \
 
            .filter(UserGroupToPerm.permission == perm).scalar()
 
        if obj is not None:
 
            Session().delete(obj)
 
            meta.Session().delete(obj)
 

	
 
    def grant_user_permission(self, user_group, user, perm):
 
        """
 
@@ -271,7 +271,7 @@ class UserGroupModel(object):
 
        if obj is None:
 
            # create new !
 
            obj = UserUserGroupToPerm()
 
            Session().add(obj)
 
            meta.Session().add(obj)
 
        obj.user_group = user_group
 
        obj.user = user
 
        obj.permission = permission
 
@@ -295,7 +295,7 @@ class UserGroupModel(object):
 
            .filter(UserUserGroupToPerm.user_group == user_group) \
 
            .scalar()
 
        if obj is not None:
 
            Session().delete(obj)
 
            meta.Session().delete(obj)
 
            log.debug('Revoked perm on %s on %s', user_group, user)
 

	
 
    def grant_user_group_permission(self, target_user_group, user_group, perm):
 
@@ -322,7 +322,7 @@ class UserGroupModel(object):
 
        if obj is None:
 
            # create new !
 
            obj = UserGroupUserGroupToPerm()
 
            Session().add(obj)
 
            meta.Session().add(obj)
 
        obj.user_group = user_group
 
        obj.target_user_group = target_user_group
 
        obj.permission = permission
 
@@ -344,7 +344,7 @@ class UserGroupModel(object):
 
            .filter(UserGroupUserGroupToPerm.user_group == user_group) \
 
            .scalar()
 
        if obj is not None:
 
            Session().delete(obj)
 
            meta.Session().delete(obj)
 
            log.debug('Revoked perm on %s on %s', target_user_group, user_group)
 

	
 
    def enforce_groups(self, user, groups, extern_type=None):
0 comments (0 inline, 0 general)