##// END OF EJS Templates
caches: use individual namespaces per user to prevent beaker caching problems....
caches: use individual namespaces per user to prevent beaker caching problems. - especially for mysql in case large number of data in caches there could be critical errors storing cache, and thus preventing users from authentication. This is caused by the fact that we used single namespace for ALL users. It means it grew as number of users grew reaching mysql single column limit. This changes the behaviour and now we use namespace per-user it means that each user-id will have it's own cache namespace fragmenting maximum column data to a single user cache. Which we should never reach.

File last commit:

r2114:6e357177 default
r2572:5b07455a default
Show More
user_edit_advanced.mako
161 lines | 7.7 KiB | application/x-mako | MakoHtmlLexer
/ rhodecode / templates / admin / users / user_edit_advanced.mako
templating: use .mako as extensions for template files.
r1282 <%namespace name="base" file="/base/base.mako"/>
<%
elems = [
(_('Created on'), h.format_date(c.user.created_on), '', ''),
(_('Source of Record'), c.user.extern_type, '', ''),
(_('Last login'), c.user.last_login or '-', '', ''),
users: change last activity to re-use new column.
r1546 (_('Last activity'), c.user.last_activity, '', ''),
templating: use .mako as extensions for template files.
r1282
(_('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]),
dan
users: add additional information why user with pending reviews shouldn't be deleted.
r1923 (_('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]),
user/user-groups: show if users or user groups are a part of review rules....
r2054 (_('Assigned to review rules'), len(c.user_to_review_rules), '', [x for x in c.user_to_review_rules]),
templating: use .mako as extensions for template files.
r1282 (_('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">${_('User: %s') % c.user.username}</h3>
</div>
<div class="panel-body">
${base.dt_info_panel(elems)}
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h3 class="panel-title">${_('Force Password Reset')}</h3>
</div>
<div class="panel-body">
users: ported controllers from pylons into pyramid views.
r2114 ${h.secure_form(h.route_path('user_force_password_reset', user_id=c.user.user_id), request=request)}
templating: use .mako as extensions for template files.
r1282 <div class="field">
<button class="btn btn-default" type="submit">
<i class="icon-lock"></i>
%if c.user.user_data.get('force_password_change'):
${_('Disable forced password reset')}
%else:
${_('Enable forced password reset')}
%endif
</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">
users: ported controllers from pylons into pyramid views.
r2114 ${h.secure_form(h.route_path('user_create_personal_repo_group', user_id=c.user.user_id), request=request)}
templating: use .mako as extensions for template files.
r1282
%if c.personal_repo_group:
home: moved home and repo group views into pyramid....
r1774 <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>
templating: use .mako as extensions for template files.
r1282 %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-folder-close"></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">
users: ported controllers from pylons into pyramid views.
r2114 ${h.secure_form(h.route_path('user_delete', user_id=c.user.user_id), request=request)}
templating: use .mako as extensions for template files.
r1282
<table class="display">
<tr>
<td>
translation: unified usage of pluralize function ungettext....
r1945 ${_ungettext('This user owns %s repository.', 'This user owns %s repositories.', len(c.user.repositories)) % len(c.user.repositories)}
templating: use .mako as extensions for template files.
r1282 </td>
<td>
%if len(c.user.repositories) > 0:
<input type="radio" id="user_repos_1" name="user_repos" value="detach" checked="checked"/> <label for="user_repos_1">${_('Detach repositories')}</label>
%endif
</td>
<td>
%if len(c.user.repositories) > 0:
<input type="radio" id="user_repos_2" name="user_repos" value="delete" /> <label for="user_repos_2">${_('Delete repositories')}</label>
%endif
</td>
</tr>
<tr>
<td>
translation: unified usage of pluralize function ungettext....
r1945 ${_ungettext('This user owns %s repository group.', 'This user owns %s repository groups.', len(c.user.repository_groups)) % len(c.user.repository_groups)}
templating: use .mako as extensions for template files.
r1282 </td>
<td>
%if len(c.user.repository_groups) > 0:
<input type="radio" id="user_repo_groups_1" name="user_repo_groups" value="detach" checked="checked"/> <label for="user_repo_groups_1">${_('Detach repository groups')}</label>
%endif
</td>
<td>
%if len(c.user.repository_groups) > 0:
<input type="radio" id="user_repo_groups_2" name="user_repo_groups" value="delete" /> <label for="user_repo_groups_2">${_('Delete repositories')}</label>
%endif
</td>
</tr>
<tr>
<td>
translation: unified usage of pluralize function ungettext....
r1945 ${_ungettext('This user owns %s user group.', 'This user owns %s user groups.', len(c.user.user_groups)) % len(c.user.user_groups)}
templating: use .mako as extensions for template files.
r1282 </td>
<td>
%if len(c.user.user_groups) > 0:
<input type="radio" id="user_user_groups_1" name="user_user_groups" value="detach" checked="checked"/> <label for="user_user_groups_1">${_('Detach user groups')}</label>
%endif
</td>
<td>
%if len(c.user.user_groups) > 0:
<input type="radio" id="user_user_groups_2" name="user_user_groups" value="delete" /> <label for="user_user_groups_2">${_('Delete repositories')}</label>
%endif
</td>
</tr>
</table>
<div style="margin: 0 0 20px 0" class="fake-space"></div>
<div class="field">
<button class="btn btn-small btn-danger" type="submit"
onclick="return confirm('${_('Confirm to delete this user: %s') % c.user.username}');"
${"disabled" if not c.can_delete_user else ""}>
${_('Delete this user')}
</button>
</div>
% if c.can_delete_user_message:
dan
users: add additional information why user with pending reviews shouldn't be deleted.
r1923 <p class="help-block pre-formatting">${c.can_delete_user_message}</p>
templating: use .mako as extensions for template files.
r1282 % endif
<div class="field">
<span class="help-block">
%if len(c.user.repositories) > 0 or len(c.user.repository_groups) > 0 or len(c.user.user_groups) > 0:
<p class="help-block">${_("When selecting the detach option, the depending objects owned by this user will be assigned to the `%s` super admin in the system. The delete option will delete the user's repositories!") % (c.first_admin.full_name)}</p>
%endif
</span>
</div>
${h.end_form()}
</div>
</div>