diff 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 diff
--- a/rhodecode/templates/admin/permissions/permissions.html	Thu Dec 20 20:05:54 2012 +0100
+++ b/rhodecode/templates/admin/permissions/permissions.html	Sun Dec 30 23:06:03 2012 +0100
@@ -16,7 +16,7 @@
 </%def>
 
 <%def name="main()">
-<div class="box">
+<div class="box box-left">
     <!-- box / title -->
     <div class="title">
         ${self.breadcrumbs()}
@@ -89,10 +89,127 @@
                 </div>
              </div>
 	        <div class="buttons">
-	        ${h.submit('set',_('set'),class_="ui-btn large")}
+              ${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>