##// END OF EJS Templates
Use ThreadLocal storage for dulwich cached repos, finally fixes issues on concurent opening git pack files via dulwich
Use ThreadLocal storage for dulwich cached repos, finally fixes issues on concurent opening git pack files via dulwich

File last commit:

r3021:b2b93614 beta
r3050:7ae99394 beta
Show More
user_edit.html
288 lines | 10.6 KiB | text/html | HtmlLexer
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
${_('Edit user')} ${c.user.username} - ${c.rhodecode_name}
</%def>
<%def name="breadcrumbs_links()">
${h.link_to(_('Admin'),h.url('admin_home'))}
&raquo;
${h.link_to(_('Users'),h.url('users'))}
&raquo;
${_('edit')} "${c.user.username}"
</%def>
<%def name="page_nav()">
${self.menu('admin')}
</%def>
<%def name="main()">
<div class="box box-left">
<!-- box / title -->
<div class="title">
${self.breadcrumbs()}
</div>
<!-- end box / title -->
${h.form(url('update_user', id=c.user.user_id),method='put')}
<div class="form">
<div class="field">
<div class="gravatar_box">
<div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(c.user.email)}"/></div>
<p>
%if c.use_gravatar:
<strong>${_('Change your avatar at')} <a href="http://gravatar.com">gravatar.com</a></strong>
<br/>${_('Using')} ${c.user.email}
%else:
<br/>${c.user.email}
%endif
</div>
</div>
<div class="field">
<div class="label">
<label>${_('API key')}</label> ${c.user.api_key}
</div>
</div>
<div class="fields">
<div class="field">
<div class="label">
<label for="username">${_('Username')}:</label>
</div>
<div class="input">
%if c.ldap_dn:
${h.text('username',class_='medium disabled', readonly="readonly")}
%else:
${h.text('username',class_='medium')}
%endif:
</div>
</div>
<div class="field">
<div class="label">
<label for="ldap_dn">${_('LDAP DN')}:</label>
</div>
<div class="input">
${h.text('ldap_dn',class_='medium disabled',readonly="readonly")}
</div>
</div>
<div class="field">
<div class="label">
<label for="new_password">${_('New password')}:</label>
</div>
<div class="input">
${h.password('new_password',class_='medium',autocomplete="off")}
</div>
</div>
<div class="field">
<div class="label">
<label for="password_confirmation">${_('New password confirmation')}:</label>
</div>
<div class="input">
${h.password('password_confirmation',class_="medium",autocomplete="off")}
</div>
</div>
<div class="field">
<div class="label">
<label for="firstname">${_('First Name')}:</label>
</div>
<div class="input">
${h.text('firstname',class_='medium')}
</div>
</div>
<div class="field">
<div class="label">
<label for="lastname">${_('Last Name')}:</label>
</div>
<div class="input">
${h.text('lastname',class_='medium')}
</div>
</div>
<div class="field">
<div class="label">
<label for="email">${_('Email')}:</label>
</div>
<div class="input">
${h.text('email',class_='medium')}
</div>
</div>
<div class="field">
<div class="label label-checkbox">
<label for="active">${_('Active')}:</label>
</div>
<div class="checkboxes">
${h.checkbox('active',value=True)}
</div>
</div>
<div class="field">
<div class="label label-checkbox">
<label for="admin">${_('Admin')}:</label>
</div>
<div class="checkboxes">
${h.checkbox('admin',value=True)}
</div>
</div>
<div class="buttons">
${h.submit('save',_('Save'),class_="ui-btn large")}
${h.reset('reset',_('Reset'),class_="ui-btn large")}
</div>
</div>
</div>
${h.end_form()}
</div>
<div style="min-height:780px" class="box box-right">
<!-- box / title -->
<div class="title">
<h5>${_('Permissions')}</h5>
</div>
${h.form(url('user_perm', id=c.user.user_id),method='put')}
<div class="form">
<!-- fields -->
<div class="fields">
<div class="field">
<div class="label label-checkbox">
<label for="inherit_permissions">${_('Inherit default permissions')}:</label>
</div>
<div class="checkboxes">
${h.checkbox('inherit_default_permissions',value=True)}
</div>
<span class="help-block">${h.literal(_('Select to inherit permissions from %s settings. '
'With this selected below options does not have any action') % h.link_to('default', url('edit_permission', id='default')))}</span>
</div>
<div id="inherit_overlay" style="${'opacity:0.3' if c.user.inherit_default_permissions else ''}" >
<div class="field">
<div class="label label-checkbox">
<label for="create_repo_perm">${_('Create repositories')}:</label>
</div>
<div class="checkboxes">
${h.checkbox('create_repo_perm',value=True)}
</div>
</div>
<div class="field">
<div class="label label-checkbox">
<label for="fork_repo_perm">${_('Fork repositories')}:</label>
</div>
<div class="checkboxes">
${h.checkbox('fork_repo_perm',value=True)}
</div>
</div>
</div>
<div class="buttons">
${h.submit('save',_('Save'),class_="ui-btn large")}
${h.reset('reset',_('Reset'),class_="ui-btn large")}
</div>
</div>
</div>
${h.end_form()}
## permissions overview
<div id="perms" class="table">
%for section in sorted(c.perm_user.permissions.keys()):
<div class="perms_section_head">${section.replace("_"," ").capitalize()}</div>
%if not c.perm_user.permissions[section]:
<span class="empty_data">${_('Nothing here yet')}</span>
%else:
<div id='tbl_list_wrap_${section}' class="yui-skin-sam">
<table id="tbl_list_${section}">
<thead>
<tr>
<th class="left">${_('Name')}</th>
<th class="left">${_('Permission')}</th>
<th class="left">${_('Edit Permission')}</th>
</thead>
<tbody>
%for k in c.perm_user.permissions[section]:
<%
if section != 'global':
section_perm = c.perm_user.permissions[section].get(k)
_perm = section_perm.split('.')[-1]
else:
_perm = section_perm = None
%>
<tr>
<td>
%if section == 'repositories':
<a href="${h.url('summary_home',repo_name=k)}">${k}</a>
%elif section == 'repositories_groups':
<a href="${h.url('repos_group_home',group_name=k)}">${k}</a>
%else:
${h.get_permission_name(k)}
%endif
</td>
<td>
%if section == 'global':
${h.bool2icon(k.split('.')[-1] != 'none')}
%else:
<span class="perm_tag ${_perm}">${section_perm}</span>
%endif
</td>
<td>
%if section == 'repositories':
<a href="${h.url('edit_repo',repo_name=k,anchor='permissions_manage')}">${_('edit')}</a>
%elif section == 'repositories_groups':
<a href="${h.url('edit_repos_group',id=k,anchor='permissions_manage')}">${_('edit')}</a>
%else:
--
%endif
</td>
</tr>
%endfor
</tbody>
</table>
</div>
%endif
%endfor
</div>
</div>
<div class="box box-left">
<!-- box / title -->
<div class="title">
<h5>${_('Email addresses')}</h5>
</div>
<div class="emails_wrap">
<table class="noborder">
%for em in c.user_email_map:
<tr>
<td><div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(em.user.email,16)}"/> </div></td>
<td><div class="email">${em.email}</div></td>
<td>
${h.form(url('user_emails_delete', id=c.user.user_id),method='delete')}
${h.hidden('del_email',em.email_id)}
${h.submit('remove_',_('delete'),id="remove_email_%s" % em.email_id,
class_="delete_icon action_button", onclick="return confirm('"+_('Confirm to delete this email: %s') % em.email+"');")}
${h.end_form()}
</td>
</tr>
%endfor
</table>
</div>
${h.form(url('user_emails', id=c.user.user_id),method='put')}
<div class="form">
<!-- fields -->
<div class="fields">
<div class="field">
<div class="label">
<label for="email">${_('New email address')}:</label>
</div>
<div class="input">
${h.text('new_email', class_='medium')}
</div>
</div>
<div class="buttons">
${h.submit('save',_('Add'),class_="ui-btn large")}
${h.reset('reset',_('Reset'),class_="ui-btn large")}
</div>
</div>
</div>
${h.end_form()}
</div>
</%def>