view rhodecode/templates/admin/permissions/permissions.html @ 3125:9b92cf5a0cca beta

Added UserIpMap interface for allowed IP addresses and IP restriction access ref #264 IP restriction for users and user groups
author Marcin Kuzminski <marcin@python-works.com>
date Sun, 30 Dec 2012 23:06:03 +0100
parents 79c5967a1e5c
children cd50d1b5f35b b4f401524060
line wrap: on
line source

## -*- 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'))}
    &raquo;
    ${_('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',id=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>