@@ -872,6 +872,18 @@ class UserRepoToPerm(Base, BaseModel):
permission = relationship('Permission')
repository = relationship('Repository')
@classmethod
def create(cls, user, repository, permission):
n = cls()
n.user = user
n.repository = repository
n.permission = permission
Session().add(n)
return n
def __repr__(self):
return '<user:%s => %s >' % (self.user, self.repository)
class UserToPerm(Base, BaseModel):
__tablename__ = 'user_to_perm'
__table_args__ = (UniqueConstraint('user_id', 'permission_id'), {'extend_existing':True})
@@ -930,6 +942,15 @@ class UsersGroupRepoToPerm(Base, BaseMod
def create(cls, users_group, repository, permission):
n.users_group = users_group
return '<userGroup:%s => %s >' % (self.users_group, self.repository)
@@ -244,6 +244,7 @@ class RepoModel(BaseModel):
new_repo.user_id = cur_user.user_id
self.sa.add(new_repo)
def _create_default_perms():
#create default permission
repo_to_perm = UserRepoToPerm()
default = 'repository.read'
@@ -263,6 +264,27 @@ class RepoModel(BaseModel):
self.sa.add(repo_to_perm)
if fork:
if form_data.get('copy_permissions'):
repo = Repository.get(fork_parent_id)
user_perms = UserRepoToPerm.query()\
.filter(UserRepoToPerm.repository == repo).all()
group_perms = UsersGroupRepoToPerm.query()\
.filter(UsersGroupRepoToPerm.repository == repo).all()
for perm in user_perms:
UserRepoToPerm.create(perm.user, new_repo,
perm.permission)
for perm in group_perms:
UsersGroupRepoToPerm.create(perm.users_group, new_repo,
else:
_create_default_perms()
if not just_db:
self.__create_repo(repo_name, form_data['repo_type'],
form_data['repo_group'],
@@ -408,8 +408,7 @@ class UserModel(BaseModel):
.filter(UserToPerm.user_id == uid).all()
user.permissions['global'].add(perm.permission.
permission_name)
user.permissions['global'].add(perm.permission.permission_name)
#user repositories
user_repo_perms = self.sa.query(UserRepoToPerm, Permission,
@@ -84,7 +84,7 @@
</td>
<td>
%if node.is_file():
<span class="tooltip" title="${node.last_changeset.raw_id}">
<span class="tooltip" title="${node.last_changeset.message}">
${'r%s:%s' % (node.last_changeset.revision,node.last_changeset.short_id)}</span>
%endif
Status change: