##// END OF EJS Templates
follow Python conventions for boolean values...
follow Python conventions for boolean values True and False might be singletons and the "default" values for "boolean" expressions, but "all" values in Python has a boolean value and should be evaluated as such. Checking with 'is True' and 'is False' is thus confusing, error prone and unnessarily complex. If we anywhere rely and nullable boolean fields from the database layer and don't want the null value to be treated as False then we should check explicitly for null with 'is None'.

File last commit:

r3623:ce9a226e beta
r3625:260a7a01 beta
Show More
user_edit.html
343 lines | 12.7 KiB | text/html | HtmlLexer
## -*- coding: utf-8 -*-
<%inherit file="/base/base.html"/>
<%def name="title()">
${_('Edit user')} ${c.user.username} &middot; ${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>
##show current ip just if we show ourself
%if c.rhodecode_user.username == c.user.username:
<div class="field">
<div class="label">
<label>${_('Current IP')}:</label> ${c.perm_user.ip_addr or "?"}
</div>
</div>
%endif
<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 sorted(c.perm_user.permissions[section], key=lambda s: s.lower):
<%
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',group_name=k,anchor='permissions_manage')}">${_('edit')}</a>
%else:
--
%endif
</td>
</tr>
%endfor
</tbody>
</table>
</div>
%endif
%endfor
</div>
</div>
<div class="box box-left" style="clear: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="new_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>
<div class="box box-left" style="clear:left">
<!-- box / title -->
<div class="title">
<h5>${_('Allowed IP addresses')}</h5>
</div>
<div class="ips_wrap">
<table class="noborder">
%if c.user_ip_map:
%for ip in c.user_ip_map:
<tr>
<td><div class="ip">${ip.ip_addr}</div></td>
<td><div class="ip">${h.ip_range(ip.ip_addr)}</div></td>
<td>
${h.form(url('user_ips_delete', id=c.user.user_id),method='delete')}
${h.hidden('del_ip',ip.ip_id)}
${h.submit('remove_',_('delete'),id="remove_ip_%s" % ip.ip_id,
class_="delete_icon action_button", onclick="return confirm('"+_('Confirm to delete this ip: %s') % ip.ip_addr+"');")}
${h.end_form()}
</td>
</tr>
%endfor
%else:
<tr><td><div class="ip">${_('All IP addresses are allowed')}</div></td></tr>
%endif
</table>
</div>
${h.form(url('user_ips', id=c.user.user_id),method='put')}
<div class="form">
<!-- fields -->
<div class="fields">
<div class="field">
<div class="label">
<label for="new_ip">${_('New ip address')}:</label>
</div>
<div class="input">
${h.text('new_ip', 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>