user/user-groups: show if users or user groups are a part of review rules.

- cascade delete when deleting those so we still can remove the user or user group
- fixes #5377
This commit is contained in:
Marcin Kuzminski 2017-08-24 21:01:22 +02:00
parent 57031945a3
commit a9f61590e0
5 changed files with 15 additions and 0 deletions

View file

@ -379,6 +379,10 @@ class UserGroupsController(BaseController):
(x.group for x in c.user_group.users_group_repo_group_to_perm),
key=lambda u: u.group_name.lower())
c.group_to_review_rules = sorted(
(x.users_group for x in c.user_group.user_group_review_rules),
key=lambda u: u.users_group_name.lower())
return render('admin/user_groups/user_group_edit.mako')
@HasUserGroupPermissionAnyDecorator('usergroup.admin')

View file

@ -385,6 +385,11 @@ class UsersController(BaseController):
c.personal_repo_group = RepoGroup.get_user_personal_repo_group(user_id)
c.personal_repo_group_name = RepoGroupModel()\
.get_personal_group_name(user)
c.user_to_review_rules = sorted(
(x.user for x in c.user.user_review_rules),
key=lambda u: u.username.lower())
c.first_admin = User.get_first_super_admin()
defaults = user.get_dict()

View file

@ -575,6 +575,8 @@ class User(Base, BaseModel):
'ExternalIdentity',
primaryjoin="User.user_id==ExternalIdentity.local_user_id",
cascade='all')
# review rules
user_review_rules = relationship('RepoReviewRuleUser', cascade='all')
def __unicode__(self):
return u"<%s('id:%s:%s')>" % (self.__class__.__name__,
@ -1269,6 +1271,7 @@ class UserGroup(Base, BaseModel):
user_user_group_to_perm = relationship('UserUserGroupToPerm', cascade='all')
user_group_user_group_to_perm = relationship('UserGroupUserGroupToPerm ', primaryjoin="UserGroupUserGroupToPerm.target_user_group_id==UserGroup.users_group_id", cascade='all')
user_group_review_rules = relationship('RepoReviewRuleUserGroup', cascade='all')
user = relationship('User', primaryjoin="User.user_id==UserGroup.user_id")
@classmethod

View file

@ -11,6 +11,7 @@
(_('Assigned to repositories'), len(c.group_to_repos),'', [x for x in c.group_to_repos]),
(_('Assigned to repo groups'), len(c.group_to_repo_groups), '', [x for x in c.group_to_repo_groups]),
(_('Assigned to review rules'), len(c.group_to_review_rules), '', [x for x in c.group_to_review_rules]),
]
%>

View file

@ -13,6 +13,8 @@
(_('User groups'), len(c.user.user_groups), '', [x.users_group_name for x in c.user.user_groups]),
(_('Reviewer of pull requests'), len(c.user.reviewer_pull_requests), '', ['Pull Request #{}'.format(x.pull_request.pull_request_id) for x in c.user.reviewer_pull_requests]),
(_('Assigned to review rules'), len(c.user_to_review_rules), '', [x for x in c.user_to_review_rules]),
(_('Member of User groups'), len(c.user.group_member), '', [x.users_group.users_group_name for x in c.user.group_member]),
(_('Force password change'), c.user.user_data.get('force_password_change', 'False'), '', ''),
]