Mercurial > kallithea
comparison 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 |
comparison
equal
deleted
inserted
replaced
3124:6659c5af04e7 | 3125:9b92cf5a0cca |
---|---|
14 <%def name="page_nav()"> | 14 <%def name="page_nav()"> |
15 ${self.menu('admin')} | 15 ${self.menu('admin')} |
16 </%def> | 16 </%def> |
17 | 17 |
18 <%def name="main()"> | 18 <%def name="main()"> |
19 <div class="box"> | 19 <div class="box box-left"> |
20 <!-- box / title --> | 20 <!-- box / title --> |
21 <div class="title"> | 21 <div class="title"> |
22 ${self.breadcrumbs()} | 22 ${self.breadcrumbs()} |
23 </div> | 23 </div> |
24 <h3>${_('Default permissions')}</h3> | 24 <h3>${_('Default permissions')}</h3> |
87 <div class="select"> | 87 <div class="select"> |
88 ${h.select('default_fork','',c.fork_choices)} | 88 ${h.select('default_fork','',c.fork_choices)} |
89 </div> | 89 </div> |
90 </div> | 90 </div> |
91 <div class="buttons"> | 91 <div class="buttons"> |
92 ${h.submit('set',_('set'),class_="ui-btn large")} | 92 ${h.submit('save',_('Save'),class_="ui-btn large")} |
93 ${h.reset('reset',_('Reset'),class_="ui-btn large")} | |
93 </div> | 94 </div> |
94 </div> | 95 </div> |
95 </div> | 96 </div> |
96 ${h.end_form()} | 97 ${h.end_form()} |
97 </div> | 98 </div> |
98 </%def> | 99 |
100 <div style="min-height:780px" class="box box-right"> | |
101 <!-- box / title --> | |
102 <div class="title"> | |
103 <h5>${_('Default User Permissions')}</h5> | |
104 </div> | |
105 | |
106 ## permissions overview | |
107 <div id="perms" class="table"> | |
108 %for section in sorted(c.perm_user.permissions.keys()): | |
109 <div class="perms_section_head">${section.replace("_"," ").capitalize()}</div> | |
110 %if not c.perm_user.permissions[section]: | |
111 <span class="empty_data">${_('Nothing here yet')}</span> | |
112 %else: | |
113 <div id='tbl_list_wrap_${section}' class="yui-skin-sam"> | |
114 <table id="tbl_list_${section}"> | |
115 <thead> | |
116 <tr> | |
117 <th class="left">${_('Name')}</th> | |
118 <th class="left">${_('Permission')}</th> | |
119 <th class="left">${_('Edit Permission')}</th> | |
120 </thead> | |
121 <tbody> | |
122 %for k in c.perm_user.permissions[section]: | |
123 <% | |
124 if section != 'global': | |
125 section_perm = c.perm_user.permissions[section].get(k) | |
126 _perm = section_perm.split('.')[-1] | |
127 else: | |
128 _perm = section_perm = None | |
129 %> | |
130 <tr> | |
131 <td> | |
132 %if section == 'repositories': | |
133 <a href="${h.url('summary_home',repo_name=k)}">${k}</a> | |
134 %elif section == 'repositories_groups': | |
135 <a href="${h.url('repos_group_home',group_name=k)}">${k}</a> | |
136 %else: | |
137 ${h.get_permission_name(k)} | |
138 %endif | |
139 </td> | |
140 <td> | |
141 %if section == 'global': | |
142 ${h.bool2icon(k.split('.')[-1] != 'none')} | |
143 %else: | |
144 <span class="perm_tag ${_perm}">${section_perm}</span> | |
145 %endif | |
146 </td> | |
147 <td> | |
148 %if section == 'repositories': | |
149 <a href="${h.url('edit_repo',repo_name=k,anchor='permissions_manage')}">${_('edit')}</a> | |
150 %elif section == 'repositories_groups': | |
151 <a href="${h.url('edit_repos_group',id=k,anchor='permissions_manage')}">${_('edit')}</a> | |
152 %else: | |
153 -- | |
154 %endif | |
155 </td> | |
156 </tr> | |
157 %endfor | |
158 </tbody> | |
159 </table> | |
160 </div> | |
161 %endif | |
162 %endfor | |
163 </div> | |
164 </div> | |
165 <div class="box box-left" style="clear:left"> | |
166 <!-- box / title --> | |
167 <div class="title"> | |
168 <h5>${_('Allowed IP addresses')}</h5> | |
169 </div> | |
170 | |
171 <div class="ips_wrap"> | |
172 <table class="noborder"> | |
173 %if c.user_ip_map: | |
174 %for ip in c.user_ip_map: | |
175 <tr> | |
176 <td><div class="ip">${ip.ip_addr}</div></td> | |
177 <td><div class="ip">${h.ip_range(ip.ip_addr)}</div></td> | |
178 <td> | |
179 ${h.form(url('user_ips_delete', id=c.user.user_id),method='delete')} | |
180 ${h.hidden('del_ip',ip.ip_id)} | |
181 ${h.hidden('default_user', 'True')} | |
182 ${h.submit('remove_',_('delete'),id="remove_ip_%s" % ip.ip_id, | |
183 class_="delete_icon action_button", onclick="return confirm('"+_('Confirm to delete this ip: %s') % ip.ip_addr+"');")} | |
184 ${h.end_form()} | |
185 </td> | |
186 </tr> | |
187 %endfor | |
188 %else: | |
189 <tr><td><div class="ip">${_('All IP addresses are allowed')}</div></td></tr> | |
190 %endif | |
191 </table> | |
192 </div> | |
193 | |
194 ${h.form(url('user_ips', id=c.user.user_id),method='put')} | |
195 <div class="form"> | |
196 <!-- fields --> | |
197 <div class="fields"> | |
198 <div class="field"> | |
199 <div class="label"> | |
200 <label for="new_ip">${_('New ip address')}:</label> | |
201 </div> | |
202 <div class="input"> | |
203 ${h.hidden('default_user', 'True')} | |
204 ${h.text('new_ip', class_='medium')} | |
205 </div> | |
206 </div> | |
207 <div class="buttons"> | |
208 ${h.submit('save',_('Add'),class_="ui-btn large")} | |
209 ${h.reset('reset',_('Reset'),class_="ui-btn large")} | |
210 </div> | |
211 </div> | |
212 </div> | |
213 ${h.end_form()} | |
214 </div> | |
215 </%def> |