@@ -138,22 +138,21 @@ def fill_perms(user):
user.permissions['repositories'] = {}
user.permissions['global'] = set()
#===========================================================================
# fetch default permissions
default_perms = sa.query(RepoToPerm, UserToPerm, Repository, Permission)\
.outerjoin((UserToPerm, RepoToPerm.user_id == UserToPerm.user_id))\
default_perms = sa.query(RepoToPerm, Repository, Permission)\
.join((Repository, RepoToPerm.repository_id == Repository.repo_id))\
.join((Permission, RepoToPerm.permission_id == Permission.permission_id))\
.filter(RepoToPerm.user_id == sa.query(User).filter(User.username ==
'default').one().user_id).all()
.filter(RepoToPerm.user == sa.query(User).filter(User.username ==
'default').scalar()).all()
if user.is_admin:
#=======================================================================
# #admin have all rights set to admin
# #admin have all default rights set to admin
user.permissions['global'].add('hg.admin')
for perm in default_perms:
p = 'repository.admin'
user.permissions['repositories'][perm.RepoToPerm.repository.repo_name] = p
@@ -161,14 +160,18 @@ def fill_perms(user):
else:
# set default permissions
#default global
user.permissions['global'].add(perm.UserToPerm.permission.permission_name)
default_global_perms = sa.query(UserToPerm)\
.filter(UserToPerm.user == sa.query(User).filter(User.username ==
'default').one())
for perm in default_global_perms:
user.permissions['global'].add(perm.permission.permission_name)
#default repositories
if perm.Repository.private and not perm.Repository.user_id == user.user_id:
#disable defaults for private repos,
p = 'repository.none'
@@ -180,14 +183,13 @@ def fill_perms(user):
# #overwrite default with user permissions if any
user_perms = sa.query(RepoToPerm, UserToPerm, Permission, Repository)\
user_perms = sa.query(RepoToPerm, Permission, Repository)\
.filter(RepoToPerm.user_id == user.user_id).all()
for perm in user_perms:
if perm.Repository.user_id == user.user_id:#set admin if owner
Status change: