##// END OF EJS Templates
repositories: allow updating repository settings for users without store-in-root permissions...
repositories: allow updating repository settings for users without store-in-root permissions in case repository name didn't change. - when an user owns repository in root location, and isn't allow to create repositories in root before we failed to allow this user to update such repository settings due to this validation. We'll now check if name didn't change and in this case allow to update since this doesn't store any new data in root location.

File last commit:

r4351:2d86851b default
r4415:fc1f6c1b default
Show More
user_edit_advanced.mako
211 lines | 10.5 KiB | application/x-mako | MakoHtmlLexer
<%namespace name="base" file="/base/base.mako"/>
<%
elems = [
(_('User ID'), c.user.user_id, '', ''),
(_('Created on'), h.format_date(c.user.created_on), '', ''),
(_('Source of Record'), c.user.extern_type, '', ''),
(_('Last login'), c.user.last_login or '-', '', ''),
(_('Last activity'), c.user.last_activity, '', ''),
(_('Repositories'), len(c.user.repositories), '', [x.repo_name for x in c.user.repositories]),
(_('Repository groups'), len(c.user.repository_groups), '', [x.group_name for x in c.user.repository_groups]),
(_('User groups'), len(c.user.user_groups), '', [x.users_group_name for x in c.user.user_groups]),
(_('Owned Artifacts'), len(c.user.artifacts), '', [x.file_uid for x in c.user.artifacts]),
(_('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'), '', ''),
]
%>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">
${base.gravatar_with_user(c.user.username, 16, tooltip=False, _class='pull-left')}
&nbsp;- ${_('Access Permissions')}
</h3>
</div>
<div class="panel-body">
<table class="rctable">
<tr>
<th>Name</th>
<th>Value</th>
<th>Action</th>
</tr>
% for elem in elems:
${base.tr_info_entry(elem)}
% endfor
</table>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">${_('Force Password Reset')}</h3>
</div>
<div class="panel-body">
${h.secure_form(h.route_path('user_disable_force_password_reset', user_id=c.user.user_id), request=request)}
<div class="field">
<button class="btn btn-default" type="submit">
<i class="icon-unlock"></i> ${_('Disable forced password reset')}
</button>
</div>
<div class="field">
<span class="help-block">
${_("Clear the forced password change flag.")}
</span>
</div>
${h.end_form()}
${h.secure_form(h.route_path('user_enable_force_password_reset', user_id=c.user.user_id), request=request)}
<div class="field">
<button class="btn btn-default" type="submit" onclick="return confirm('${_('Confirm to enable forced password change')}');">
<i class="icon-lock"></i> ${_('Enable forced password reset')}
</button>
</div>
<div class="field">
<span class="help-block">
${_("When this is enabled user will have to change they password when they next use RhodeCode system. This will also forbid vcs operations until someone makes a password change in the web interface")}
</span>
</div>
${h.end_form()}
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">${_('Personal Repository Group')}</h3>
</div>
<div class="panel-body">
${h.secure_form(h.route_path('user_create_personal_repo_group', user_id=c.user.user_id), request=request)}
%if c.personal_repo_group:
<div class="panel-body-title-text">${_('Users personal repository group')} : ${h.link_to(c.personal_repo_group.group_name, h.route_path('repo_group_home', repo_group_name=c.personal_repo_group.group_name))}</div>
%else:
<div class="panel-body-title-text">
${_('This user currently does not have a personal repository group')}
<br/>
${_('New group will be created at: `/%(path)s`') % {'path': c.personal_repo_group_name}}
</div>
%endif
<button class="btn btn-default" type="submit" ${'disabled="disabled"' if c.personal_repo_group else ''}>
<i class="icon-repo-group"></i>
${_('Create personal repository group')}
</button>
${h.end_form()}
</div>
</div>
<div class="panel panel-danger">
<div class="panel-heading">
<h3 class="panel-title">${_('Delete User')}</h3>
</div>
<div class="panel-body">
${h.secure_form(h.route_path('user_delete', user_id=c.user.user_id), request=request)}
<table class="display rctable">
<tr>
<td>
${_ungettext('This user owns %s repository.', 'This user owns %s repositories.', len(c.user.repositories)) % len(c.user.repositories)}
</td>
<td>
<input type="radio" id="user_repos_1" name="user_repos" value="detach" checked="checked" ${'disabled=1' if len(c.user.repositories) == 0 else ''} /> <label for="user_repos_1">${_('Detach repositories')}</label>
</td>
<td>
<input type="radio" id="user_repos_2" name="user_repos" value="delete" ${'disabled=1' if len(c.user.repositories) == 0 else ''} /> <label for="user_repos_2">${_('Delete repositories')}</label>
</td>
</tr>
<tr>
<td>
${_ungettext('This user owns %s repository group.', 'This user owns %s repository groups.', len(c.user.repository_groups)) % len(c.user.repository_groups)}
</td>
<td>
<input type="radio" id="user_repo_groups_1" name="user_repo_groups" value="detach" checked="checked" ${'disabled=1' if len(c.user.repository_groups) == 0 else ''} /> <label for="user_repo_groups_1">${_('Detach repository groups')}</label>
</td>
<td>
<input type="radio" id="user_repo_groups_2" name="user_repo_groups" value="delete" ${'disabled=1' if len(c.user.repository_groups) == 0 else ''}/> <label for="user_repo_groups_2">${_('Delete repositories')}</label>
</td>
</tr>
<tr>
<td>
${_ungettext('This user owns %s user group.', 'This user owns %s user groups.', len(c.user.user_groups)) % len(c.user.user_groups)}
</td>
<td>
<input type="radio" id="user_user_groups_1" name="user_user_groups" value="detach" checked="checked" ${'disabled=1' if len(c.user.user_groups) == 0 else ''}/> <label for="user_user_groups_1">${_('Detach user groups')}</label>
</td>
<td>
<input type="radio" id="user_user_groups_2" name="user_user_groups" value="delete" ${'disabled=1' if len(c.user.user_groups) == 0 else ''}/> <label for="user_user_groups_2">${_('Delete repositories')}</label>
</td>
</tr>
<tr>
<td>
${_ungettext('This user owns %s pull request.', 'This user owns %s pull requests.', len(c.user.user_pull_requests)) % len(c.user.user_pull_requests)}
</td>
<td>
<input type="radio" id="user_pull_requests_1" name="user_pull_requests" value="detach" checked="checked" ${'disabled=1' if len(c.user.user_pull_requests) == 0 else ''}/> <label for="user_pull_requests_1">${_('Detach pull requests')}</label>
</td>
<td>
<input type="radio" id="user_pull_requests_2" name="user_pull_requests" value="delete" ${'disabled=1' if len(c.user.user_pull_requests) == 0 else ''}/> <label for="user_pull_requests_2">${_('Delete pull requests')}</label>
</td>
</tr>
<tr>
<td>
${_ungettext('This user owns %s artifact.', 'This user owns %s artifacts.', len(c.user.artifacts)) % len(c.user.artifacts)}
</td>
<td>
<input type="radio" id="user_artifacts_1" name="user_artifacts" value="detach" checked="checked" ${'disabled=1' if len(c.user.artifacts) == 0 else ''}/> <label for="user_artifacts_1">${_('Detach Artifacts')}</label>
</td>
<td>
<input type="radio" id="user_artifacts_2" name="user_artifacts" value="delete" ${'disabled=1' if len(c.user.artifacts) == 0 else ''}/> <label for="user_artifacts_2">${_('Delete Artifacts')}</label>
</td>
</tr>
</table>
<div style="margin: 0 0 20px 0" class="fake-space"></div>
<div class="pull-left">
% if len(c.user.repositories) > 0 or len(c.user.repository_groups) > 0 or len(c.user.user_groups) > 0:
% endif
<span style="padding: 0 5px 0 0">${_('New owner for detached objects')}:</span>
<div class="pull-right">${base.gravatar_with_user(c.detach_user.email, 16, tooltip=True)}</div>
<input type="hidden" name="detach_user_id" value="${c.detach_user.user_id}">
</div>
<div style="clear: both">
<div>
<p class="help-block">
${_("When selecting the detach option, the depending objects owned by this user will be assigned to the above user.")}
<br/>
${_("The delete option will delete the user and all his owned objects!")}
</p>
</div>
% if c.can_delete_user_message:
<p class="pre-formatting">${c.can_delete_user_message}</p>
% endif
</div>
<div style="margin: 0 0 20px 0" class="fake-space"></div>
<div class="field">
<input class="btn btn-small btn-danger" id="remove_user" name="remove_user"
onclick="submitConfirm(event, this, _gettext('Confirm to delete this user'), _gettext('Confirm Delete'), '${c.user.username}')"
${("disabled=1" if not c.can_delete_user else "")}
type="submit" value="${_('Delete this user')}"
>
</div>
${h.end_form()}
</div>
</div>