|
|
## -*- coding: utf-8 -*-
|
|
|
<%inherit file="/base/base.html"/>
|
|
|
|
|
|
<%def name="title()">
|
|
|
${_('Permissions administration')} - ${c.rhodecode_name}
|
|
|
</%def>
|
|
|
|
|
|
<%def name="breadcrumbs_links()">
|
|
|
${h.link_to(_('Admin'),h.url('admin_home'))}
|
|
|
»
|
|
|
${_('permissions')}
|
|
|
</%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>
|
|
|
<h3>${_('Default permissions')}</h3>
|
|
|
${h.form(url('permission', id='default'),method='put')}
|
|
|
<div class="form">
|
|
|
<!-- fields -->
|
|
|
<div class="fields">
|
|
|
<div class="field">
|
|
|
<div class="label label-checkbox">
|
|
|
<label for="anonymous">${_('Anonymous access')}:</label>
|
|
|
</div>
|
|
|
<div class="checkboxes">
|
|
|
<div class="checkbox">
|
|
|
${h.checkbox('anonymous',True)}
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="default_repo_perm">${_('Repository')}:</label>
|
|
|
</div>
|
|
|
<div class="select">
|
|
|
${h.select('default_repo_perm','',c.repo_perms_choices)}
|
|
|
|
|
|
${h.checkbox('overwrite_default_repo','true')}
|
|
|
<label for="overwrite_default_repo">
|
|
|
<span class="tooltip"
|
|
|
title="${h.tooltip(_('All default permissions on each repository will be reset to choosen permission, note that all custom default permission on repositories will be lost'))}">
|
|
|
${_('overwrite existing settings')}</span> </label>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="default_group_perm">${_('Repository group')}:</label>
|
|
|
</div>
|
|
|
<div class="select">
|
|
|
${h.select('default_group_perm','',c.group_perms_choices)}
|
|
|
${h.checkbox('overwrite_default_group','true')}
|
|
|
<label for="overwrite_default_group">
|
|
|
<span class="tooltip"
|
|
|
title="${h.tooltip(_('All default permissions on each repository group will be reset to choosen permission, note that all custom default permission on repositories group will be lost'))}">
|
|
|
${_('overwrite existing settings')}</span> </label>
|
|
|
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="default_register">${_('Registration')}:</label>
|
|
|
</div>
|
|
|
<div class="select">
|
|
|
${h.select('default_register','',c.register_choices)}
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="default_create">${_('Repository creation')}:</label>
|
|
|
</div>
|
|
|
<div class="select">
|
|
|
${h.select('default_create','',c.create_choices)}
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="default_fork">${_('Repository forking')}:</label>
|
|
|
</div>
|
|
|
<div class="select">
|
|
|
${h.select('default_fork','',c.fork_choices)}
|
|
|
</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>${_('Default User Permissions')}</h5>
|
|
|
</div>
|
|
|
|
|
|
## 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',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>${_('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.hidden('default_user', 'True')}
|
|
|
${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.hidden('default_user', 'True')}
|
|
|
${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>
|
|
|
|