Mercurial > kallithea
changeset 1633:2c0d35e336b5 beta
refactoring of models names for repoGroup permissions
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 02 Nov 2011 03:08:33 +0200 |
parents | 5b2cf21b1947 |
children | 1d904d972c47 |
files | rhodecode/controllers/admin/ldap_settings.py rhodecode/controllers/admin/repos.py rhodecode/controllers/admin/repos_groups.py rhodecode/controllers/admin/settings.py rhodecode/controllers/admin/users.py rhodecode/controllers/api/api.py rhodecode/controllers/home.py rhodecode/controllers/settings.py rhodecode/lib/auth.py rhodecode/lib/db_manage.py rhodecode/lib/utils.py rhodecode/model/db.py rhodecode/model/forms.py rhodecode/model/permission.py rhodecode/model/repo.py rhodecode/model/repo_permission.py rhodecode/model/repos_group.py rhodecode/model/user.py rhodecode/templates/admin/repos_groups/repos_groups_show.html rhodecode/tests/functional/test_admin_ldap_settings.py rhodecode/tests/functional/test_admin_settings.py rhodecode/tests/test_models.py |
diffstat | 22 files changed, 134 insertions(+), 122 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/admin/ldap_settings.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/controllers/admin/ldap_settings.py Wed Nov 02 03:08:33 2011 +0200 @@ -39,7 +39,7 @@ from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator from rhodecode.lib.exceptions import LdapImportError from rhodecode.model.forms import LdapSettingsForm -from rhodecode.model.db import RhodeCodeSettings +from rhodecode.model.db import RhodeCodeSetting log = logging.getLogger(__name__) @@ -83,7 +83,7 @@ super(LdapSettingsController, self).__before__() def index(self): - defaults = RhodeCodeSettings.get_ldap_settings() + defaults = RhodeCodeSetting.get_ldap_settings() c.search_scope_cur = defaults.get('ldap_search_scope') c.tls_reqcert_cur = defaults.get('ldap_tls_reqcert') c.tls_kind_cur = defaults.get('ldap_tls_kind') @@ -107,7 +107,7 @@ for k, v in form_result.items(): if k.startswith('ldap_'): - setting = RhodeCodeSettings.get_by_name(k) + setting = RhodeCodeSetting.get_by_name(k) setting.app_settings_value = v self.sa.add(setting)
--- a/rhodecode/controllers/admin/repos.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/controllers/admin/repos.py Wed Nov 02 03:08:33 2011 +0200 @@ -39,7 +39,7 @@ from rhodecode.lib.base import BaseController, render from rhodecode.lib.utils import invalidate_cache, action_logger, repo_name_slug from rhodecode.lib.helpers import get_token -from rhodecode.model.db import User, Repository, UserFollowing, Group +from rhodecode.model.db import User, Repository, UserFollowing, RepoGroup from rhodecode.model.forms import RepoForm from rhodecode.model.scm import ScmModel from rhodecode.model.repo import RepoModel @@ -63,7 +63,7 @@ super(ReposController, self).__before__() def __load_defaults(self): - c.repo_groups = Group.groups_choices() + c.repo_groups = RepoGroup.groups_choices() c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) repo_model = RepoModel()
--- a/rhodecode/controllers/admin/repos_groups.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/controllers/admin/repos_groups.py Wed Nov 02 03:08:33 2011 +0200 @@ -14,7 +14,7 @@ from rhodecode.lib import helpers as h from rhodecode.lib.auth import LoginRequired, HasPermissionAnyDecorator from rhodecode.lib.base import BaseController, render -from rhodecode.model.db import Group +from rhodecode.model.db import RepoGroup from rhodecode.model.repos_group import ReposGroupModel from rhodecode.model.forms import ReposGroupForm @@ -32,7 +32,7 @@ super(ReposGroupsController, self).__before__() def __load_defaults(self): - c.repo_groups = Group.groups_choices() + c.repo_groups = RepoGroup.groups_choices() c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) def __load_data(self, group_id): @@ -43,7 +43,7 @@ """ self.__load_defaults() - repo_group = Group.get(group_id) + repo_group = RepoGroup.get(group_id) data = repo_group.get_dict() @@ -57,7 +57,7 @@ # url('repos_groups') sk = lambda g:g.parents[0].group_name if g.parents else g.group_name - c.groups = sorted(Group.query().all(), key=sk) + c.groups = sorted(RepoGroup.query().all(), key=sk) return render('admin/repos_groups/repos_groups_show.html') @HasPermissionAnyDecorator('hg.admin') @@ -108,7 +108,7 @@ # url('repos_group', id=ID) self.__load_defaults() - c.repos_group = Group.get(id) + c.repos_group = RepoGroup.get(id) repos_group_model = ReposGroupModel() repos_group_form = ReposGroupForm(edit=True, @@ -148,7 +148,7 @@ # url('repos_group', id=ID) repos_group_model = ReposGroupModel() - gr = Group.get(id) + gr = RepoGroup.get(id) repos = gr.repositories.all() if repos: h.flash(_('This group contains %s repositores and cannot be ' @@ -179,14 +179,14 @@ return redirect(url('repos_groups')) def show_by_name(self, group_name): - id_ = Group.get_by_group_name(group_name).group_id + id_ = RepoGroup.get_by_group_name(group_name).group_id return self.show(id_) def show(self, id, format='html'): """GET /repos_groups/id: Show a specific item""" # url('repos_group', id=ID) - c.group = Group.get(id) + c.group = RepoGroup.get(id) if c.group: c.group_repos = c.group.repositories.all() @@ -201,8 +201,8 @@ c.repo_cnt = 0 - c.groups = self.sa.query(Group).order_by(Group.group_name)\ - .filter(Group.group_parent_id == id).all() + c.groups = self.sa.query(RepoGroup).order_by(RepoGroup.group_name)\ + .filter(RepoGroup.group_parent_id == id).all() return render('admin/repos_groups/repos_groups.html') @@ -213,7 +213,7 @@ id_ = int(id) - c.repos_group = Group.get(id_) + c.repos_group = RepoGroup.get(id_) defaults = self.__load_data(id_) # we need to exclude this group from the group list for editing
--- a/rhodecode/controllers/admin/settings.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/controllers/admin/settings.py Wed Nov 02 03:08:33 2011 +0200 @@ -40,8 +40,8 @@ from rhodecode.lib.celerylib import tasks, run_task from rhodecode.lib.utils import repo2db_mapper, invalidate_cache, \ set_rhodecode_config, repo_name_slug -from rhodecode.model.db import RhodeCodeUi, Repository, Group, \ - RhodeCodeSettings +from rhodecode.model.db import RhodeCodeUi, Repository, RepoGroup, \ + RhodeCodeSetting from rhodecode.model.forms import UserForm, ApplicationSettingsForm, \ ApplicationUiSettingsForm from rhodecode.model.scm import ScmModel @@ -69,7 +69,7 @@ """GET /admin/settings: All items in the collection""" # url('admin_settings') - defaults = RhodeCodeSettings.get_app_settings() + defaults = RhodeCodeSetting.get_app_settings() defaults.update(self.get_hg_ui_settings()) return htmlfill.render( render('admin/settings/settings.html'), @@ -124,15 +124,15 @@ form_result = application_form.to_python(dict(request.POST)) try: - hgsettings1 = RhodeCodeSettings.get_by_name('title') + hgsettings1 = RhodeCodeSetting.get_by_name('title') hgsettings1.app_settings_value = \ form_result['rhodecode_title'] - hgsettings2 = RhodeCodeSettings.get_by_name('realm') + hgsettings2 = RhodeCodeSetting.get_by_name('realm') hgsettings2.app_settings_value = \ form_result['rhodecode_realm'] - hgsettings3 = RhodeCodeSettings.get_by_name('ga_code') + hgsettings3 = RhodeCodeSetting.get_by_name('ga_code') hgsettings3.app_settings_value = \ form_result['rhodecode_ga_code'] @@ -366,7 +366,7 @@ def create_repository(self): """GET /_admin/create_repository: Form to create a new item""" - c.repo_groups = Group.groups_choices() + c.repo_groups = RepoGroup.groups_choices() c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) new_repo = request.GET.get('repo', '')
--- a/rhodecode/controllers/admin/users.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/controllers/admin/users.py Wed Nov 02 03:08:33 2011 +0200 @@ -38,7 +38,7 @@ from rhodecode.lib.auth import LoginRequired, HasPermissionAllDecorator from rhodecode.lib.base import BaseController, render -from rhodecode.model.db import User, RepoToPerm, UserToPerm, Permission +from rhodecode.model.db import User, UserRepoToPerm, UserToPerm, Permission from rhodecode.model.forms import UserForm from rhodecode.model.user import UserModel
--- a/rhodecode/controllers/api/api.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/controllers/api/api.py Wed Nov 02 03:08:33 2011 +0200 @@ -6,7 +6,7 @@ HasPermissionAnyDecorator from rhodecode.model.scm import ScmModel -from rhodecode.model.db import User, UsersGroup, Group, Repository +from rhodecode.model.db import User, UsersGroup, RepoGroup, Repository from rhodecode.model.repo import RepoModel from rhodecode.model.user import UserModel from rhodecode.model.repo_permission import RepositoryPermissionModel @@ -325,7 +325,7 @@ groups = groups[:-1] parent_id = None for g in groups: - group = Group.get_by_group_name(g) + group = RepoGroup.get_by_group_name(g) if not group: group = ReposGroupModel().create(dict(group_name=g, group_description='',
--- a/rhodecode/controllers/home.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/controllers/home.py Wed Nov 02 03:08:33 2011 +0200 @@ -30,7 +30,7 @@ from rhodecode.lib.auth import LoginRequired from rhodecode.lib.base import BaseController, render -from rhodecode.model.db import Group, Repository +from rhodecode.model.db import RepoGroup, Repository log = logging.getLogger(__name__) @@ -45,7 +45,7 @@ c.repos_list = self.scm_model.get_repos() - c.groups = Group.query().filter(Group.group_parent_id == None).all() + c.groups = RepoGroup.query().filter(RepoGroup.group_parent_id == None).all() return render('/index.html')
--- a/rhodecode/controllers/settings.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/controllers/settings.py Wed Nov 02 03:08:33 2011 +0200 @@ -42,7 +42,7 @@ from rhodecode.model.forms import RepoSettingsForm, RepoForkForm from rhodecode.model.repo import RepoModel -from rhodecode.model.db import Group +from rhodecode.model.db import RepoGroup log = logging.getLogger(__name__) @@ -54,7 +54,7 @@ super(SettingsController, self).__before__() def __load_defaults(self): - c.repo_groups = Group.groups_choices() + c.repo_groups = RepoGroup.groups_choices() c.repo_groups_choices = map(lambda k: unicode(k[0]), c.repo_groups) repo_model = RepoModel()
--- a/rhodecode/lib/auth.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/lib/auth.py Wed Nov 02 03:08:33 2011 +0200 @@ -48,7 +48,7 @@ from rhodecode.model import meta from rhodecode.model.user import UserModel -from rhodecode.model.db import Permission, RhodeCodeSettings, User +from rhodecode.model.db import Permission, RhodeCodeSetting, User log = logging.getLogger(__name__) @@ -184,7 +184,7 @@ log.debug('this user already exists as non ldap') return False - ldap_settings = RhodeCodeSettings.get_ldap_settings() + ldap_settings = RhodeCodeSetting.get_ldap_settings() #====================================================================== # FALLBACK TO LDAP AUTH IF ENABLE #======================================================================
--- a/rhodecode/lib/db_manage.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/lib/db_manage.py Wed Nov 02 03:08:33 2011 +0200 @@ -37,7 +37,7 @@ from rhodecode.lib.utils import ask_ok from rhodecode.model import init_model from rhodecode.model.db import User, Permission, RhodeCodeUi, \ - RhodeCodeSettings, UserToPerm, DbMigrateVersion + RhodeCodeSetting, UserToPerm, DbMigrateVersion from sqlalchemy.engine import create_engine @@ -210,7 +210,7 @@ """Fixes rhodecode settings adds ga_code key for google analytics """ - hgsettings3 = RhodeCodeSettings('ga_code', '') + hgsettings3 = RhodeCodeSetting('ga_code', '') try: self.sa.add(hgsettings3) @@ -321,10 +321,10 @@ ('ldap_attr_login', ''), ('ldap_attr_firstname', ''), ('ldap_attr_lastname', ''), ('ldap_attr_email', '')]: - if skip_existing and RhodeCodeSettings.get_by_name(k) != None: + if skip_existing and RhodeCodeSetting.get_by_name(k) != None: log.debug('Skipping option %s' % k) continue - setting = RhodeCodeSettings(k, v) + setting = RhodeCodeSetting(k, v) self.sa.add(setting) self.sa.commit() except: @@ -391,9 +391,9 @@ paths.ui_key = '/' paths.ui_value = path - hgsettings1 = RhodeCodeSettings('realm', 'RhodeCode authentication') - hgsettings2 = RhodeCodeSettings('title', 'RhodeCode') - hgsettings3 = RhodeCodeSettings('ga_code', '') + hgsettings1 = RhodeCodeSetting('realm', 'RhodeCode authentication') + hgsettings2 = RhodeCodeSetting('title', 'RhodeCode') + hgsettings3 = RhodeCodeSetting('ga_code', '') try: self.sa.add(web1)
--- a/rhodecode/lib/utils.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/lib/utils.py Wed Nov 02 03:08:33 2011 +0200 @@ -45,8 +45,8 @@ from rhodecode.model import meta from rhodecode.model.caching_query import FromCache -from rhodecode.model.db import Repository, User, RhodeCodeUi, UserLog, Group, \ - RhodeCodeSettings +from rhodecode.model.db import Repository, User, RhodeCodeUi, UserLog, RepoGroup, \ + RhodeCodeSetting from rhodecode.model.repo import RepoModel log = logging.getLogger(__name__) @@ -290,7 +290,7 @@ :param config: """ - hgsettings = RhodeCodeSettings.get_app_settings() + hgsettings = RhodeCodeSetting.get_app_settings() for k, v in hgsettings.items(): config[k] = v @@ -366,10 +366,10 @@ for lvl, group_name in enumerate(groups): group_name = '/'.join(groups[:lvl] + [group_name]) - group = sa.query(Group).filter(Group.group_name == group_name).scalar() + group = sa.query(RepoGroup).filter(RepoGroup.group_name == group_name).scalar() if group is None: - group = Group(group_name, parent) + group = RepoGroup(group_name, parent) sa.add(group) sa.commit() parent = group @@ -391,7 +391,7 @@ added = [] # fixup groups paths to new format on the fly # TODO: remove this in future - for g in Group.query().all(): + for g in RepoGroup.query().all(): g.group_name = g.get_new_name(g.name) sa.add(g) for name, repo in initial_repo_list.items():
--- a/rhodecode/model/db.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/model/db.py Wed Nov 02 03:08:33 2011 +0200 @@ -139,7 +139,7 @@ Session.commit() -class RhodeCodeSettings(Base, BaseModel): +class RhodeCodeSetting(Base, BaseModel): __tablename__ = 'rhodecode_settings' __table_args__ = (UniqueConstraint('app_settings_name'), {'extend_existing':True}) app_settings_id = Column("app_settings_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) @@ -280,7 +280,7 @@ repositories = relationship('Repository') user_followers = relationship('UserFollowing', primaryjoin='UserFollowing.follows_user_id==User.user_id', cascade='all') - repo_to_perm = relationship('RepoToPerm', primaryjoin='RepoToPerm.user_id==User.user_id', cascade='all') + repo_to_perm = relationship('UserRepoToPerm', primaryjoin='UserRepoToPerm.user_id==User.user_id', cascade='all') group_member = relationship('UsersGroupMember', cascade='all') @@ -447,7 +447,7 @@ users_group_id).all() if assigned_groups: - raise UsersGroupsAssignedException('Group assigned to %s' % + raise UsersGroupsAssignedException('RepoGroup assigned to %s' % assigned_groups) users_group = cls.get(users_group_id, cache=False) @@ -503,8 +503,8 @@ user = relationship('User') fork = relationship('Repository', remote_side=repo_id) - group = relationship('Group') - repo_to_perm = relationship('RepoToPerm', cascade='all', order_by='RepoToPerm.repo_to_perm_id') + group = relationship('RepoGroup') + repo_to_perm = relationship('UserRepoToPerm', cascade='all', order_by='UserRepoToPerm.repo_to_perm_id') users_group_to_perm = relationship('UsersGroupRepoToPerm', cascade='all') stats = relationship('Statistics', cascade='all', uselist=False) @@ -717,7 +717,7 @@ return repo -class Group(Base, BaseModel): +class RepoGroup(Base, BaseModel): __tablename__ = 'groups' __table_args__ = (UniqueConstraint('group_name', 'group_parent_id'), CheckConstraint('group_id != group_parent_id'), {'extend_existing':True},) @@ -728,7 +728,7 @@ group_parent_id = Column("group_parent_id", Integer(), ForeignKey('groups.group_id'), nullable=True, unique=None, default=None) group_description = Column("group_description", String(length=10000, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) - parent_group = relationship('Group', remote_side=group_id) + parent_group = relationship('RepoGroup', remote_side=group_id) def __init__(self, group_name='', parent_group=None): @@ -795,11 +795,11 @@ @property def children(self): - return Group.query().filter(Group.parent_group == self) + return RepoGroup.query().filter(RepoGroup.parent_group == self) @property def name(self): - return self.group_name.split(Group.url_sep())[-1] + return self.group_name.split(RepoGroup.url_sep())[-1] @property def full_path(self): @@ -807,7 +807,7 @@ @property def full_path_splitted(self): - return self.group_name.split(Group.url_sep()) + return self.group_name.split(RepoGroup.url_sep()) @property def repositories(self): @@ -835,7 +835,7 @@ """ path_prefix = (self.parent_group.full_path_splitted if self.parent_group else []) - return Group.url_sep().join(path_prefix + [group_name]) + return RepoGroup.url_sep().join(path_prefix + [group_name]) class Permission(Base, BaseModel): @@ -853,7 +853,7 @@ def get_by_key(cls, key): return cls.query().filter(cls.permission_name == key).scalar() -class RepoToPerm(Base, BaseModel): +class UserRepoToPerm(Base, BaseModel): __tablename__ = 'repo_to_perm' __table_args__ = (UniqueConstraint('user_id', 'repository_id'), {'extend_existing':True}) repo_to_perm_id = Column("repo_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) @@ -973,7 +973,7 @@ Session.rollback() -class GroupToPerm(Base, BaseModel): +class UserRepoGroupToPerm(Base, BaseModel): __tablename__ = 'group_to_perm' __table_args__ = (UniqueConstraint('group_id', 'permission_id'), {'extend_existing':True}) @@ -984,7 +984,20 @@ user = relationship('User') permission = relationship('Permission') - group = relationship('Group') + group = relationship('RepoGroup') + +class UsersGroupRepoGroupToPerm(Base, BaseModel): + __tablename__ = 'users_group_repo_group_to_perm' + __table_args__ = (UniqueConstraint('group_id', 'permission_id'), {'extend_existing':True}) + + users_group_repo_group_to_perm_id = Column("users_group_repo_group_to_perm_id", Integer(), nullable=False, unique=True, default=None, primary_key=True) + users_group_id = Column("users_group_id", Integer(), ForeignKey('users_groups.users_group_id'), nullable=False, unique=None, default=None) + permission_id = Column("permission_id", Integer(), ForeignKey('permissions.permission_id'), nullable=False, unique=None, default=None) + group_id = Column("group_id", Integer(), ForeignKey('groups.group_id'), nullable=False, unique=None, default=None) + + users_group = relationship('UsersGroup') + permission = relationship('Permission') + group = relationship('RepoGroup') class Statistics(Base, BaseModel): __tablename__ = 'statistics'
--- a/rhodecode/model/forms.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/model/forms.py Wed Nov 02 03:08:33 2011 +0200 @@ -38,7 +38,7 @@ from rhodecode.lib.exceptions import LdapImportError from rhodecode.model.user import UserModel from rhodecode.model.repo import RepoModel -from rhodecode.model.db import User, UsersGroup, Group +from rhodecode.model.db import User, UsersGroup, RepoGroup from rhodecode import BACKENDS log = logging.getLogger(__name__) @@ -107,7 +107,7 @@ if re.match(r'^[a-zA-Z0-9]{1}[a-zA-Z0-9\-\_\.]+$', value) is None: - raise formencode.Invalid(_('Group name may only contain ' + raise formencode.Invalid(_('RepoGroup name may only contain ' 'alphanumeric characters ' 'underscores, periods or dashes ' 'and must begin with alphanumeric ' @@ -136,13 +136,13 @@ old_gname = None if edit: - old_gname = Group.get( + old_gname = RepoGroup.get( old_data.get('group_id')).group_name if old_gname != group_name or not edit: # check filesystem - gr = Group.query().filter(Group.group_name == slug)\ - .filter(Group.group_parent_id == group_parent_id).scalar() + gr = RepoGroup.query().filter(RepoGroup.group_name == slug)\ + .filter(RepoGroup.group_parent_id == group_parent_id).scalar() if gr: e_dict = {'group_name':_('This group already exists')} @@ -248,12 +248,12 @@ if value.get('repo_group'): - gr = Group.get(value.get('repo_group')) + gr = RepoGroup.get(value.get('repo_group')) group_path = gr.full_path # value needs to be aware of group name in order to check # db key This is an actual just the name to store in the # database - repo_name_full = group_path + Group.url_sep() + repo_name + repo_name_full = group_path + RepoGroup.url_sep() + repo_name else: group_path = '' @@ -272,7 +272,7 @@ gr.group_name} raise formencode.Invalid('', value, state, error_dict=e_dict) - elif Group.get_by_group_name(repo_name_full): + elif RepoGroup.get_by_group_name(repo_name_full): e_dict = {'repo_name':_('There is a group with this' ' name already "%s"') % repo_name_full}
--- a/rhodecode/model/permission.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/model/permission.py Wed Nov 02 03:08:33 2011 +0200 @@ -29,7 +29,7 @@ from sqlalchemy.exc import DatabaseError from rhodecode.model import BaseModel -from rhodecode.model.db import User, Permission, UserToPerm, RepoToPerm +from rhodecode.model.db import User, Permission, UserToPerm, UserRepoToPerm from rhodecode.model.caching_query import FromCache log = logging.getLogger(__name__) @@ -95,8 +95,8 @@ #stage 2 update all default permissions for repos if checked if form_result['overwrite_default'] == True: - for r2p in self.sa.query(RepoToPerm)\ - .filter(RepoToPerm.user == perm_user).all(): + for r2p in self.sa.query(UserRepoToPerm)\ + .filter(UserRepoToPerm.user == perm_user).all(): r2p.permission = self.get_permission_by_name( form_result['default_perm']) self.sa.add(r2p)
--- a/rhodecode/model/repo.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/model/repo.py Wed Nov 02 03:08:33 2011 +0200 @@ -37,8 +37,8 @@ from rhodecode.model import BaseModel from rhodecode.model.caching_query import FromCache -from rhodecode.model.db import Repository, RepoToPerm, User, Permission, \ - Statistics, UsersGroup, UsersGroupRepoToPerm, RhodeCodeUi, Group +from rhodecode.model.db import Repository, UserRepoToPerm, User, Permission, \ + Statistics, UsersGroup, UsersGroupRepoToPerm, RhodeCodeUi, RepoGroup from rhodecode.model.user import UserModel log = logging.getLogger(__name__) @@ -141,9 +141,9 @@ # update permissions for member, perm, member_type in form_data['perms_updates']: if member_type == 'user': - r2p = self.sa.query(RepoToPerm)\ - .filter(RepoToPerm.user == User.get_by_username(member))\ - .filter(RepoToPerm.repository == cur_repo)\ + r2p = self.sa.query(UserRepoToPerm)\ + .filter(UserRepoToPerm.user == User.get_by_username(member))\ + .filter(UserRepoToPerm.repository == cur_repo)\ .one() r2p.permission = self.sa.query(Permission)\ @@ -165,7 +165,7 @@ # set new permissions for member, perm, member_type in form_data['perms_new']: if member_type == 'user': - r2p = RepoToPerm() + r2p = UserRepoToPerm() r2p.repository = cur_repo r2p.user = User.get_by_username(member) @@ -191,7 +191,7 @@ elif k == 'repo_name': pass elif k == 'repo_group': - cur_repo.group = Group.get(v) + cur_repo.group = RepoGroup.get(v) else: setattr(cur_repo, k, v) @@ -249,7 +249,7 @@ self.sa.add(new_repo) #create default permission - repo_to_perm = RepoToPerm() + repo_to_perm = UserRepoToPerm() default = 'repository.read' for p in User.get_by_username('default').user_perms: if p.permission.permission_name.startswith('repository.'): @@ -300,10 +300,10 @@ def delete_perm_user(self, form_data, repo_name): try: - self.sa.query(RepoToPerm)\ - .filter(RepoToPerm.repository \ + self.sa.query(UserRepoToPerm)\ + .filter(UserRepoToPerm.repository \ == self.get_by_repo_name(repo_name))\ - .filter(RepoToPerm.user_id == form_data['user_id']).delete() + .filter(UserRepoToPerm.user_id == form_data['user_id']).delete() self.sa.commit() except: log.error(traceback.format_exc()) @@ -348,7 +348,7 @@ from rhodecode.lib.utils import is_valid_repo, is_valid_repos_group if new_parent_id: - paths = Group.get(new_parent_id).full_path.split(Group.url_sep()) + paths = RepoGroup.get(new_parent_id).full_path.split(RepoGroup.url_sep()) new_parent_path = os.sep.join(paths) else: new_parent_path = ''
--- a/rhodecode/model/repo_permission.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/model/repo_permission.py Wed Nov 02 03:08:33 2011 +0200 @@ -24,16 +24,16 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. import logging -from rhodecode.model.db import BaseModel, RepoToPerm, Permission +from rhodecode.model.db import BaseModel, UserRepoToPerm, Permission from rhodecode.model.meta import Session log = logging.getLogger(__name__) class RepositoryPermissionModel(BaseModel): def get_user_permission(self, repository, user): - return RepoToPerm.query() \ - .filter(RepoToPerm.user == user) \ - .filter(RepoToPerm.repository == repository) \ + return UserRepoToPerm.query() \ + .filter(UserRepoToPerm.user == user) \ + .filter(UserRepoToPerm.repository == repository) \ .scalar() def update_user_permission(self, repository, user, permission): @@ -43,7 +43,7 @@ if not current.permission is permission: current.permission = permission else: - p = RepoToPerm() + p = UserRepoToPerm() p.user = user p.repository = repository p.permission = permission
--- a/rhodecode/model/repos_group.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/model/repos_group.py Wed Nov 02 03:08:33 2011 +0200 @@ -33,8 +33,7 @@ from vcs.utils.lazy import LazyProperty from rhodecode.model import BaseModel -from rhodecode.model.caching_query import FromCache -from rhodecode.model.db import Group, RhodeCodeUi +from rhodecode.model.db import RepoGroup, RhodeCodeUi log = logging.getLogger(__name__) @@ -96,7 +95,7 @@ :param group: instance of group from database """ - paths = group.full_path.split(Group.url_sep()) + paths = group.full_path.split(RepoGroup.url_sep()) paths = os.sep.join(paths) rm_path = os.path.join(self.repos_path, paths) @@ -106,9 +105,9 @@ def create(self, form_data): try: - new_repos_group = Group() + new_repos_group = RepoGroup() new_repos_group.group_description = form_data['group_description'] - new_repos_group.parent_group = Group.get(form_data['group_parent_id']) + new_repos_group.parent_group = RepoGroup.get(form_data['group_parent_id']) new_repos_group.group_name = new_repos_group.get_new_name(form_data['group_name']) self.sa.add(new_repos_group) @@ -125,12 +124,12 @@ def update(self, repos_group_id, form_data): try: - repos_group = Group.get(repos_group_id) + repos_group = RepoGroup.get(repos_group_id) old_path = repos_group.full_path # change properties repos_group.group_description = form_data['group_description'] - repos_group.parent_group = Group.get(form_data['group_parent_id']) + repos_group.parent_group = RepoGroup.get(form_data['group_parent_id']) repos_group.group_name = repos_group.get_new_name(form_data['group_name']) new_path = repos_group.full_path @@ -154,7 +153,7 @@ def delete(self, users_group_id): try: - users_group = Group.get(users_group_id) + users_group = RepoGroup.get(users_group_id) self.sa.delete(users_group) self.__delete_group(users_group) self.sa.commit()
--- a/rhodecode/model/user.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/model/user.py Wed Nov 02 03:08:33 2011 +0200 @@ -31,7 +31,7 @@ from rhodecode.lib import safe_unicode from rhodecode.model import BaseModel from rhodecode.model.caching_query import FromCache -from rhodecode.model.db import User, RepoToPerm, Repository, Permission, \ +from rhodecode.model.db import User, UserRepoToPerm, Repository, Permission, \ UserToPerm, UsersGroupRepoToPerm, UsersGroupToPerm, UsersGroupMember from rhodecode.lib.exceptions import DefaultUserException, \ UserOwnsReposException @@ -303,12 +303,12 @@ #====================================================================== default_user = self.get_by_username('default', cache=True) - default_perms = self.sa.query(RepoToPerm, Repository, Permission)\ - .join((Repository, RepoToPerm.repository_id == + default_perms = self.sa.query(UserRepoToPerm, Repository, Permission)\ + .join((Repository, UserRepoToPerm.repository_id == Repository.repo_id))\ - .join((Permission, RepoToPerm.permission_id == + .join((Permission, UserRepoToPerm.permission_id == Permission.permission_id))\ - .filter(RepoToPerm.user == default_user).all() + .filter(UserRepoToPerm.user == default_user).all() if user.is_admin: #================================================================== @@ -318,7 +318,7 @@ for perm in default_perms: p = 'repository.admin' - user.permissions['repositories'][perm.RepoToPerm. + user.permissions['repositories'][perm.UserRepoToPerm. repository.repo_name] = p else: @@ -346,7 +346,7 @@ else: p = perm.Permission.permission_name - user.permissions['repositories'][perm.RepoToPerm. + user.permissions['repositories'][perm.UserRepoToPerm. repository.repo_name] = p #================================================================== @@ -363,13 +363,13 @@ permission_name) #user repositories - user_repo_perms = self.sa.query(RepoToPerm, Permission, + user_repo_perms = self.sa.query(UserRepoToPerm, Permission, Repository)\ - .join((Repository, RepoToPerm.repository_id == + .join((Repository, UserRepoToPerm.repository_id == Repository.repo_id))\ - .join((Permission, RepoToPerm.permission_id == + .join((Permission, UserRepoToPerm.permission_id == Permission.permission_id))\ - .filter(RepoToPerm.user_id == uid).all() + .filter(UserRepoToPerm.user_id == uid).all() for perm in user_repo_perms: # set admin if owner @@ -377,7 +377,7 @@ p = 'repository.admin' else: p = perm.Permission.permission_name - user.permissions['repositories'][perm.RepoToPerm. + user.permissions['repositories'][perm.UserRepoToPerm. repository.repo_name] = p #==================================================================
--- a/rhodecode/templates/admin/repos_groups/repos_groups_show.html Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/templates/admin/repos_groups/repos_groups_show.html Wed Nov 02 03:08:33 2011 +0200 @@ -32,7 +32,7 @@ <tr> <th class="left"><a href="#">${_('Group name')}</a></th> <th class="left"><a href="#">${_('Description')}</a></th> - <th class="left"><a href="#">${_('Number of repositories')}</a></th> + <th class="left"><a href="#">${_('Number of toplevel repositories')}</a></th> <th class="left">${_('action')}</th> </tr> </thead>
--- a/rhodecode/tests/functional/test_admin_ldap_settings.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/tests/functional/test_admin_ldap_settings.py Wed Nov 02 03:08:33 2011 +0200 @@ -1,5 +1,5 @@ from rhodecode.tests import * -from rhodecode.model.db import RhodeCodeSettings +from rhodecode.model.db import RhodeCodeSetting from nose.plugins.skip import SkipTest skip_ldap_test = False @@ -41,7 +41,7 @@ 'ldap_attr_lastname':'tester', 'ldap_attr_email':'test@example.com' }) - new_settings = RhodeCodeSettings.get_ldap_settings() + new_settings = RhodeCodeSetting.get_ldap_settings() self.assertEqual(new_settings['ldap_host'], u'dc.example.com', 'fail db write compare')
--- a/rhodecode/tests/functional/test_admin_settings.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/tests/functional/test_admin_settings.py Wed Nov 02 03:08:33 2011 +0200 @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- from rhodecode.lib.auth import get_crypt_password, check_password -from rhodecode.model.db import User, RhodeCodeSettings +from rhodecode.model.db import User, RhodeCodeSetting from rhodecode.tests import * class TestAdminSettingsController(TestController): @@ -63,7 +63,7 @@ self.checkSessionFlash(response, 'Updated application settings') - self.assertEqual(RhodeCodeSettings + self.assertEqual(RhodeCodeSetting .get_app_settings()['rhodecode_ga_code'], new_ga_code) response = response.follow() @@ -85,7 +85,7 @@ self.assertTrue('Updated application settings' in response.session['flash'][0][1]) - self.assertEqual(RhodeCodeSettings + self.assertEqual(RhodeCodeSetting .get_app_settings()['rhodecode_ga_code'], new_ga_code) response = response.follow() @@ -109,7 +109,7 @@ )) self.checkSessionFlash(response, 'Updated application settings') - self.assertEqual(RhodeCodeSettings + self.assertEqual(RhodeCodeSetting .get_app_settings()['rhodecode_title'], new_title.decode('utf-8'))
--- a/rhodecode/tests/test_models.py Wed Nov 02 03:04:54 2011 +0200 +++ b/rhodecode/tests/test_models.py Wed Nov 02 03:08:33 2011 +0200 @@ -4,7 +4,7 @@ from rhodecode.model.repos_group import ReposGroupModel from rhodecode.model.repo import RepoModel -from rhodecode.model.db import Group, User +from rhodecode.model.db import RepoGroup, User from sqlalchemy.exc import IntegrityError class TestReposGroups(unittest.TestCase): @@ -28,7 +28,7 @@ def __make_group(self, path, desc='desc', parent_id=None, skip_if_exists=False): - gr = Group.get_by_group_name(path) + gr = RepoGroup.get_by_group_name(path) if gr and skip_if_exists: return gr @@ -77,13 +77,13 @@ sg1 = self.__make_group('deleteme') self.__delete_group(sg1.group_id) - self.assertEqual(Group.get(sg1.group_id), None) + self.assertEqual(RepoGroup.get(sg1.group_id), None) self.assertFalse(self.__check_path('deteteme')) sg1 = self.__make_group('deleteme', parent_id=self.g1.group_id) self.__delete_group(sg1.group_id) - self.assertEqual(Group.get(sg1.group_id), None) + self.assertEqual(RepoGroup.get(sg1.group_id), None) self.assertFalse(self.__check_path('test1', 'deteteme')) @@ -92,7 +92,7 @@ new_sg1 = self.__update_group(sg1.group_id, 'after') self.assertTrue(self.__check_path('after')) - self.assertEqual(Group.get_by_group_name('initial'), None) + self.assertEqual(RepoGroup.get_by_group_name('initial'), None) def test_update_group_parent(self): @@ -101,18 +101,18 @@ new_sg1 = self.__update_group(sg1.group_id, 'after', parent_id=self.g1.group_id) self.assertTrue(self.__check_path('test1', 'after')) - self.assertEqual(Group.get_by_group_name('test1/initial'), None) + self.assertEqual(RepoGroup.get_by_group_name('test1/initial'), None) new_sg1 = self.__update_group(sg1.group_id, 'after', parent_id=self.g3.group_id) self.assertTrue(self.__check_path('test3', 'after')) - self.assertEqual(Group.get_by_group_name('test3/initial'), None) + self.assertEqual(RepoGroup.get_by_group_name('test3/initial'), None) new_sg1 = self.__update_group(sg1.group_id, 'hello') self.assertTrue(self.__check_path('hello')) - self.assertEqual(Group.get_by_group_name('hello'), new_sg1) + self.assertEqual(RepoGroup.get_by_group_name('hello'), new_sg1)