##// END OF EJS Templates
moved permission management into separate entity....
moved permission management into separate entity. - this solves issues when whole form submision could influence permission management particular case is that when repo group permission is revoked and user is no longer able to update repository settings

File last commit:

r3417:fa6ba672 beta
r3628:c734686b beta
Show More
004_version_1_3_0.py
74 lines | 3.1 KiB | text/x-python | PythonLexer
import logging
import datetime
from sqlalchemy import *
from sqlalchemy.exc import DatabaseError
from sqlalchemy.orm import relation, backref, class_mapper
from sqlalchemy.orm.session import Session
from rhodecode.lib.dbmigrate.migrate import *
from rhodecode.lib.dbmigrate.migrate.changeset import *
from rhodecode.model.meta import Base
log = logging.getLogger(__name__)
def upgrade(migrate_engine):
""" Upgrade operations go here.
Don't create your own engine; bind migrate_engine to your metadata
"""
#==========================================================================
# Add table `users_group_repo_group_to_perm`
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import UserGroupRepoGroupToPerm
UserGroupRepoGroupToPerm().__table__.create()
#==========================================================================
# Add table `changeset_comments`
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import ChangesetComment
ChangesetComment().__table__.create()
#==========================================================================
# Add table `notifications`
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import Notification
Notification().__table__.create()
#==========================================================================
# Add table `user_to_notification`
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import UserNotification
UserNotification().__table__.create()
#==========================================================================
# Add unique to table `users_group_to_perm`
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import UserGroupToPerm
tbl = UserGroupToPerm().__table__
cons = UniqueConstraint('users_group_id', 'permission_id', table=tbl)
cons.create()
#==========================================================================
# Fix unique constrain on table `user_logs`
#==========================================================================
from rhodecode.lib.dbmigrate.schema.db_1_3_0 import UserLog
tbl = UserLog().__table__
col = Column("repository_id", Integer(), ForeignKey('repositories.repo_id'),
nullable=False, unique=None, default=None)
col.alter(nullable=True, table=tbl)
#==========================================================================
# Rename table `group_to_perm` to `user_repo_group_to_perm`
#==========================================================================
tbl = Table('group_to_perm', MetaData(bind=migrate_engine), autoload=True,
autoload_with=migrate_engine)
tbl.rename('user_repo_group_to_perm')
return
def downgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine