|
|
## -*- coding: utf-8 -*-
|
|
|
<%inherit file="/base/base.html"/>
|
|
|
|
|
|
<%def name="title()">
|
|
|
${_('Edit user group')} ${c.users_group.users_group_name} · ${c.rhodecode_name}
|
|
|
</%def>
|
|
|
|
|
|
<%def name="breadcrumbs_links()">
|
|
|
${h.link_to(_('Admin'),h.url('admin_home'))}
|
|
|
»
|
|
|
${h.link_to(_('UserGroups'),h.url('users_groups'))}
|
|
|
»
|
|
|
${_('edit')} "${c.users_group.users_group_name}"
|
|
|
</%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('users_group', id=c.users_group.users_group_id),method='put', id='edit_users_group')}
|
|
|
<div class="form">
|
|
|
<!-- fields -->
|
|
|
<div class="fields">
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="users_group_name">${_('Group name')}:</label>
|
|
|
</div>
|
|
|
<div class="input">
|
|
|
${h.text('users_group_name',class_='small')}
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="field">
|
|
|
<div class="label label-checkbox">
|
|
|
<label for="users_group_active">${_('Active')}:</label>
|
|
|
</div>
|
|
|
<div class="checkboxes">
|
|
|
${h.checkbox('users_group_active',value=True)}
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="field">
|
|
|
<div class="label">
|
|
|
<label for="users_group_active">${_('Members')}:</label>
|
|
|
</div>
|
|
|
<div class="select">
|
|
|
<table>
|
|
|
<tr>
|
|
|
<td>
|
|
|
<div>
|
|
|
<div style="float:left">
|
|
|
<div class="text" style="padding: 0px 0px 6px;">${_('Chosen group members')}</div>
|
|
|
${h.select('users_group_members',[x[0] for x in c.group_members],c.group_members,multiple=True,size=8,style="min-width:210px")}
|
|
|
<div id="remove_all_elements" style="cursor:pointer;text-align:center">
|
|
|
${_('Remove all elements')}
|
|
|
<img alt="remove" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_right.png')}"/>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div style="float:left;width:20px;padding-top:50px">
|
|
|
<img alt="add" id="add_element"
|
|
|
style="padding:2px;cursor:pointer"
|
|
|
src="${h.url('/images/icons/arrow_left.png')}"/>
|
|
|
<br />
|
|
|
<img alt="remove" id="remove_element"
|
|
|
style="padding:2px;cursor:pointer"
|
|
|
src="${h.url('/images/icons/arrow_right.png')}"/>
|
|
|
</div>
|
|
|
<div style="float:left">
|
|
|
<div class="text" style="padding: 0px 0px 6px;">${_('Available members')}</div>
|
|
|
${h.select('available_members',[],c.available_members,multiple=True,size=8,style="min-width:210px")}
|
|
|
<div id="add_all_elements" style="cursor:pointer;text-align:center">
|
|
|
<img alt="add" style="vertical-align:text-bottom" src="${h.url('/images/icons/arrow_left.png')}"/>
|
|
|
${_('Add all elements')}
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</td>
|
|
|
</tr>
|
|
|
</table>
|
|
|
</div>
|
|
|
|
|
|
</div>
|
|
|
<div class="buttons">
|
|
|
${h.submit('Save',_('save'),class_="ui-btn large")}
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
${h.end_form()}
|
|
|
</div>
|
|
|
|
|
|
<div class="box box-right">
|
|
|
<!-- box / title -->
|
|
|
<div class="title">
|
|
|
<h5>${_('Permissions')}</h5>
|
|
|
</div>
|
|
|
${h.form(url('users_group_perm', id=c.users_group.users_group_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.users_group.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()}
|
|
|
</div>
|
|
|
|
|
|
<div class="box box-right">
|
|
|
<!-- box / title -->
|
|
|
<div class="title">
|
|
|
<h5>${_('Group members')}</h5>
|
|
|
</div>
|
|
|
|
|
|
<div class="group_members_wrap">
|
|
|
% if c.group_members_obj:
|
|
|
<ul class="group_members">
|
|
|
%for user in c.group_members_obj:
|
|
|
<li>
|
|
|
<div class="group_member">
|
|
|
<div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(user.email,24)}"/> </div>
|
|
|
<div>${h.link_to(user.username, h.url('edit_user',id=user.user_id))}</div>
|
|
|
<div>${user.full_name}</div>
|
|
|
</div>
|
|
|
</li>
|
|
|
%endfor
|
|
|
</ul>
|
|
|
%else:
|
|
|
<span class="empty_data">${_('No members yet')}</span>
|
|
|
%endif
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="box box-left">
|
|
|
<!-- box / title -->
|
|
|
<div class="title">
|
|
|
<h5>${_('Permissions defined for this group')}</h5>
|
|
|
</div>
|
|
|
## permissions overview
|
|
|
<div id="perms" class="table">
|
|
|
%for section in sorted(c.users_group.permissions.keys()):
|
|
|
<div class="perms_section_head">${section.replace("_"," ").capitalize()}</div>
|
|
|
%if not c.users_group.permissions:
|
|
|
<span class="empty_data">${_('No permissions set yet')}</span>
|
|
|
%else:
|
|
|
<div id='tbl_list_wrap_${section}' class="yui-skin-sam">
|
|
|
<table id="tbl_list_repository">
|
|
|
<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.users_group.permissions[section], key=lambda s: s.lower):
|
|
|
<%
|
|
|
section_perm = c.users_group.permissions[section].get(k)
|
|
|
_perm = section_perm.split('.')[-1]
|
|
|
%>
|
|
|
<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>
|
|
|
%endif
|
|
|
</td>
|
|
|
<td>
|
|
|
<span class="perm_tag ${_perm}">${section_perm}</span>
|
|
|
</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>
|
|
|
|
|
|
|
|
|
<script type="text/javascript">
|
|
|
MultiSelectWidget('users_group_members','available_members','edit_users_group');
|
|
|
</script>
|
|
|
</%def>
|
|
|
|