##// END OF EJS Templates
Don't show empty permissions for users, only for admins
marcink -
r3901:6cc17e42 beta
parent child Browse files
Show More
@@ -1,191 +1,191 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('Permissions administration')} &middot; ${c.rhodecode_name}
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 9 ${h.link_to(_('Admin'),h.url('admin_home'))}
10 10 &raquo;
11 11 ${_('Permissions')}
12 12 </%def>
13 13
14 14 <%def name="page_nav()">
15 15 ${self.menu('admin')}
16 16 </%def>
17 17
18 18 <%def name="main()">
19 19 <div class="box box-left">
20 20 <!-- box / title -->
21 21 <div class="title">
22 22 ${self.breadcrumbs()}
23 23 </div>
24 24 <h3>${_('Default permissions')}</h3>
25 25 ${h.form(url('permission', id='default'),method='put')}
26 26 <div class="form">
27 27 <!-- fields -->
28 28 <div class="fields">
29 29 <div class="field">
30 30 <div class="label label-checkbox">
31 31 <label for="anonymous">${_('Anonymous access')}:</label>
32 32 </div>
33 33 <div class="checkboxes">
34 34 <div class="checkbox">
35 35 ${h.checkbox('anonymous',True)}
36 36 </div>
37 37 </div>
38 38 </div>
39 39 <div class="field">
40 40 <div class="label">
41 41 <label for="default_repo_perm">${_('Repository')}:</label>
42 42 </div>
43 43 <div class="select">
44 44 ${h.select('default_repo_perm','',c.repo_perms_choices)}
45 45
46 46 ${h.checkbox('overwrite_default_repo','true')}
47 47 <label for="overwrite_default_repo">
48 48 <span class="tooltip"
49 49 title="${h.tooltip(_('All default permissions on each repository will be reset to chosen permission, note that all custom default permission on repositories will be lost'))}">
50 50 ${_('Overwrite existing settings')}</span> </label>
51 51 </div>
52 52 </div>
53 53 <div class="field">
54 54 <div class="label">
55 55 <label for="default_group_perm">${_('Repository group')}:</label>
56 56 </div>
57 57 <div class="select">
58 58 ${h.select('default_group_perm','',c.group_perms_choices)}
59 59 ${h.checkbox('overwrite_default_group','true')}
60 60 <label for="overwrite_default_group">
61 61 <span class="tooltip"
62 62 title="${h.tooltip(_('All default permissions on each repository group will be reset to chosen permission, note that all custom default permission on repository groups will be lost'))}">
63 63 ${_('Overwrite existing settings')}</span> </label>
64 64
65 65 </div>
66 66 </div>
67 67 <div class="field">
68 68 <div class="label">
69 69 <label for="default_group_perm">${_('User group')}:</label>
70 70 </div>
71 71 <div class="select">
72 72 ${h.select('default_user_group_perm','',c.user_group_perms_choices)}
73 73 ${h.checkbox('overwrite_default_user_group','true')}
74 74 <label for="overwrite_default_user_group">
75 75 <span class="tooltip"
76 76 title="${h.tooltip(_('All default permissions on each user group will be reset to chosen permission, note that all custom default permission on repository groups will be lost'))}">
77 77 ${_('Overwrite existing settings')}</span> </label>
78 78
79 79 </div>
80 80 </div>
81 81 <div class="field">
82 82 <div class="label">
83 83 <label for="default_repo_create">${_('Repository creation')}:</label>
84 84 </div>
85 85 <div class="select">
86 86 ${h.select('default_repo_create','',c.repo_create_choices)}
87 87 </div>
88 88 </div>
89 89 <div class="field">
90 90 <div class="label">
91 91 <label for="default_user_group_create">${_('User group creation')}:</label>
92 92 </div>
93 93 <div class="select">
94 94 ${h.select('default_user_group_create','',c.user_group_create_choices)}
95 95 </div>
96 96 </div>
97 97 <div class="field">
98 98 <div class="label">
99 99 <label for="default_fork">${_('Repository forking')}:</label>
100 100 </div>
101 101 <div class="select">
102 102 ${h.select('default_fork','',c.fork_choices)}
103 103 </div>
104 104 </div>
105 105 <div class="field">
106 106 <div class="label">
107 107 <label for="default_register">${_('Registration')}:</label>
108 108 </div>
109 109 <div class="select">
110 110 ${h.select('default_register','',c.register_choices)}
111 111 </div>
112 112 </div>
113 113 <div class="field">
114 114 <div class="label">
115 115 <label for="default_extern_activate">${_('External auth account activation')}:</label>
116 116 </div>
117 117 <div class="select">
118 118 ${h.select('default_extern_activate','',c.extern_activate_choices)}
119 119 </div>
120 120 </div>
121 121 <div class="buttons">
122 122 ${h.submit('save',_('Save'),class_="ui-btn large")}
123 123 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
124 124 </div>
125 125 </div>
126 126 </div>
127 127 ${h.end_form()}
128 128 </div>
129 129
130 130 <div style="min-height:780px" class="box box-right">
131 131 <!-- box / title -->
132 132 <div class="title">
133 133 <h5>${_('Default User Permissions')}</h5>
134 134 </div>
135 135
136 136 ## permissions overview
137 137 <%namespace name="p" file="/base/perms_summary.html"/>
138 ${p.perms_summary(c.perm_user.permissions)}
138 ${p.perms_summary(c.perm_user.permissions, show_all=True)}
139 139
140 140 </div>
141 141 <div class="box box-left" style="clear:left">
142 142 <!-- box / title -->
143 143 <div class="title">
144 144 <h5>${_('Allowed IP addresses')}</h5>
145 145 </div>
146 146
147 147 <div class="ips_wrap">
148 148 <table class="noborder">
149 149 %if c.user_ip_map:
150 150 %for ip in c.user_ip_map:
151 151 <tr>
152 152 <td><div class="ip">${ip.ip_addr}</div></td>
153 153 <td><div class="ip">${h.ip_range(ip.ip_addr)}</div></td>
154 154 <td>
155 155 ${h.form(url('user_ips_delete', id=c.user.user_id),method='delete')}
156 156 ${h.hidden('del_ip',ip.ip_id)}
157 157 ${h.hidden('default_user', 'True')}
158 158 ${h.submit('remove_',_('delete'),id="remove_ip_%s" % ip.ip_id,
159 159 class_="delete_icon action_button", onclick="return confirm('"+_('Confirm to delete this ip: %s') % ip.ip_addr+"');")}
160 160 ${h.end_form()}
161 161 </td>
162 162 </tr>
163 163 %endfor
164 164 %else:
165 165 <tr><td><div class="ip">${_('All IP addresses are allowed')}</div></td></tr>
166 166 %endif
167 167 </table>
168 168 </div>
169 169
170 170 ${h.form(url('user_ips', id=c.user.user_id),method='put')}
171 171 <div class="form">
172 172 <!-- fields -->
173 173 <div class="fields">
174 174 <div class="field">
175 175 <div class="label">
176 176 <label for="new_ip">${_('New ip address')}:</label>
177 177 </div>
178 178 <div class="input">
179 179 ${h.hidden('default_user', 'True')}
180 180 ${h.text('new_ip', class_='medium')}
181 181 </div>
182 182 </div>
183 183 <div class="buttons">
184 184 ${h.submit('save',_('Add'),class_="ui-btn large")}
185 185 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
186 186 </div>
187 187 </div>
188 188 </div>
189 189 ${h.end_form()}
190 190 </div>
191 191 </%def>
@@ -1,252 +1,252 b''
1 1 ## -*- coding: utf-8 -*-
2 2 <%inherit file="/base/base.html"/>
3 3
4 4 <%def name="title()">
5 5 ${_('Edit user')} ${c.user.username} &middot; ${c.rhodecode_name}
6 6 </%def>
7 7
8 8 <%def name="breadcrumbs_links()">
9 9 ${h.link_to(_('Admin'),h.url('admin_home'))}
10 10 &raquo;
11 11 ${h.link_to(_('Users'),h.url('users'))}
12 12 &raquo;
13 13 ${_('Edit %s') % c.user.username}
14 14 </%def>
15 15
16 16 <%def name="page_nav()">
17 17 ${self.menu('admin')}
18 18 </%def>
19 19
20 20 <%def name="main()">
21 21 <div class="box box-left">
22 22 <!-- box / title -->
23 23 <div class="title">
24 24 ${self.breadcrumbs()}
25 25 </div>
26 26 <!-- end box / title -->
27 27 ${h.form(url('update_user', id=c.user.user_id),method='put')}
28 28 <div class="form">
29 29 <div class="field">
30 30 <div class="gravatar_box">
31 31 <div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(c.user.email)}"/></div>
32 32 <p>
33 33 %if c.use_gravatar:
34 34 <strong>${_('Change your avatar at')} <a href="http://gravatar.com">gravatar.com</a></strong>
35 35 <br/>${_('Using')} ${c.user.email}
36 36 %else:
37 37 <br/>${c.user.email}
38 38 %endif
39 39 </div>
40 40 </div>
41 41 <div class="field">
42 42 <div class="label">
43 43 <label>${_('API key')}:</label> ${c.user.api_key}
44 44 </div>
45 45 </div>
46 46 ##show current ip just if we show ourself
47 47 %if c.rhodecode_user.username == c.user.username:
48 48 <div class="field">
49 49 <div class="label">
50 50 <label>${_('Current IP')}:</label> ${c.perm_user.ip_addr or "?"}
51 51 </div>
52 52 </div>
53 53 %endif
54 54 <div class="fields">
55 55 <div class="field">
56 56 <div class="label">
57 57 <label for="username">${_('Username')}:</label>
58 58 </div>
59 59 <div class="input">
60 60 %if c.ldap_dn:
61 61 ${h.text('username',class_='medium disabled', readonly="readonly")}
62 62 %else:
63 63 ${h.text('username',class_='medium')}
64 64 %endif:
65 65 </div>
66 66 </div>
67 67
68 68 <div class="field">
69 69 <div class="label">
70 70 <label for="ldap_dn">${_('LDAP DN')}:</label>
71 71 </div>
72 72 <div class="input">
73 73 ${h.text('ldap_dn',class_='medium disabled',readonly="readonly")}
74 74 </div>
75 75 </div>
76 76
77 77 <div class="field">
78 78 <div class="label">
79 79 <label for="new_password">${_('New password')}:</label>
80 80 </div>
81 81 <div class="input">
82 82 ${h.password('new_password',class_='medium',autocomplete="off")}
83 83 </div>
84 84 </div>
85 85
86 86 <div class="field">
87 87 <div class="label">
88 88 <label for="password_confirmation">${_('New password confirmation')}:</label>
89 89 </div>
90 90 <div class="input">
91 91 ${h.password('password_confirmation',class_="medium",autocomplete="off")}
92 92 </div>
93 93 </div>
94 94
95 95 <div class="field">
96 96 <div class="label">
97 97 <label for="firstname">${_('First Name')}:</label>
98 98 </div>
99 99 <div class="input">
100 100 ${h.text('firstname',class_='medium')}
101 101 </div>
102 102 </div>
103 103
104 104 <div class="field">
105 105 <div class="label">
106 106 <label for="lastname">${_('Last Name')}:</label>
107 107 </div>
108 108 <div class="input">
109 109 ${h.text('lastname',class_='medium')}
110 110 </div>
111 111 </div>
112 112
113 113 <div class="field">
114 114 <div class="label">
115 115 <label for="email">${_('Email')}:</label>
116 116 </div>
117 117 <div class="input">
118 118 ${h.text('email',class_='medium')}
119 119 </div>
120 120 </div>
121 121
122 122 <div class="field">
123 123 <div class="label label-checkbox">
124 124 <label for="active">${_('Active')}:</label>
125 125 </div>
126 126 <div class="checkboxes">
127 127 ${h.checkbox('active',value=True)}
128 128 </div>
129 129 </div>
130 130
131 131 <div class="field">
132 132 <div class="label label-checkbox">
133 133 <label for="admin">${_('Admin')}:</label>
134 134 </div>
135 135 <div class="checkboxes">
136 136 ${h.checkbox('admin',value=True)}
137 137 </div>
138 138 </div>
139 139 <div class="buttons">
140 140 ${h.submit('save',_('Save'),class_="ui-btn large")}
141 141 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
142 142 </div>
143 143 </div>
144 144 </div>
145 145 ${h.end_form()}
146 146 </div>
147 147 <div style="min-height:780px" class="box box-right">
148 148 <!-- box / title -->
149 149 <div class="title">
150 150 <h5>${_('Permissions')}</h5>
151 151 </div>
152 152 <%namespace name="dpb" file="/base/default_perms_box.html"/>
153 153 ${dpb.default_perms_box(url('user_perm', id=c.user.user_id))}
154 154
155 155 ## permissions overview
156 156 <%namespace name="p" file="/base/perms_summary.html"/>
157 ${p.perms_summary(c.perm_user.permissions)}
157 ${p.perms_summary(c.perm_user.permissions, show_all=True)}
158 158
159 159 </div>
160 160 <div class="box box-left" style="clear:left">
161 161 <!-- box / title -->
162 162 <div class="title">
163 163 <h5>${_('Email addresses')}</h5>
164 164 </div>
165 165
166 166 <div class="emails_wrap">
167 167 <table class="noborder">
168 168 %for em in c.user_email_map:
169 169 <tr>
170 170 <td><div class="gravatar"><img alt="gravatar" src="${h.gravatar_url(em.user.email,16)}"/> </div></td>
171 171 <td><div class="email">${em.email}</div></td>
172 172 <td>
173 173 ${h.form(url('user_emails_delete', id=c.user.user_id),method='delete')}
174 174 ${h.hidden('del_email',em.email_id)}
175 175 ${h.submit('remove_',_('delete'),id="remove_email_%s" % em.email_id,
176 176 class_="delete_icon action_button", onclick="return confirm('"+_('Confirm to delete this email: %s') % em.email+"');")}
177 177 ${h.end_form()}
178 178 </td>
179 179 </tr>
180 180 %endfor
181 181 </table>
182 182 </div>
183 183
184 184 ${h.form(url('user_emails', id=c.user.user_id),method='put')}
185 185 <div class="form">
186 186 <!-- fields -->
187 187 <div class="fields">
188 188 <div class="field">
189 189 <div class="label">
190 190 <label for="new_email">${_('New email address')}:</label>
191 191 </div>
192 192 <div class="input">
193 193 ${h.text('new_email', class_='medium')}
194 194 </div>
195 195 </div>
196 196 <div class="buttons">
197 197 ${h.submit('save',_('Add'),class_="ui-btn large")}
198 198 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
199 199 </div>
200 200 </div>
201 201 </div>
202 202 ${h.end_form()}
203 203 </div>
204 204 <div class="box box-left" style="clear:left">
205 205 <!-- box / title -->
206 206 <div class="title">
207 207 <h5>${_('Allowed IP addresses')}</h5>
208 208 </div>
209 209
210 210 <div class="ips_wrap">
211 211 <table class="noborder">
212 212 %if c.user_ip_map:
213 213 %for ip in c.user_ip_map:
214 214 <tr>
215 215 <td><div class="ip">${ip.ip_addr}</div></td>
216 216 <td><div class="ip">${h.ip_range(ip.ip_addr)}</div></td>
217 217 <td>
218 218 ${h.form(url('user_ips_delete', id=c.user.user_id),method='delete')}
219 219 ${h.hidden('del_ip',ip.ip_id)}
220 220 ${h.submit('remove_',_('delete'),id="remove_ip_%s" % ip.ip_id,
221 221 class_="delete_icon action_button", onclick="return confirm('"+_('Confirm to delete this ip: %s') % ip.ip_addr+"');")}
222 222 ${h.end_form()}
223 223 </td>
224 224 </tr>
225 225 %endfor
226 226 %else:
227 227 <tr><td><div class="ip">${_('All IP addresses are allowed')}</div></td></tr>
228 228 %endif
229 229 </table>
230 230 </div>
231 231
232 232 ${h.form(url('user_ips', id=c.user.user_id),method='put')}
233 233 <div class="form">
234 234 <!-- fields -->
235 235 <div class="fields">
236 236 <div class="field">
237 237 <div class="label">
238 238 <label for="new_ip">${_('New ip address')}:</label>
239 239 </div>
240 240 <div class="input">
241 241 ${h.text('new_ip', class_='medium')}
242 242 </div>
243 243 </div>
244 244 <div class="buttons">
245 245 ${h.submit('save',_('Add'),class_="ui-btn large")}
246 246 ${h.reset('reset',_('Reset'),class_="ui-btn large")}
247 247 </div>
248 248 </div>
249 249 </div>
250 250 ${h.end_form()}
251 251 </div>
252 252 </%def>
@@ -1,74 +1,77 b''
1 1 ## snippet for displaying permissions overview for users
2 2 ## usage:
3 3 ## <%namespace name="p" file="/base/perms_summary.html"/>
4 4 ## ${p.perms_summary(c.perm_user.permissions)}
5 5
6 <%def name="perms_summary(permissions)">
6 <%def name="perms_summary(permissions, show_all=False)">
7 7 <div id="perms" class="table">
8 8 %for section in sorted(permissions.keys()):
9 9 <div class="perms_section_head">${section.replace("_"," ").capitalize()}</div>
10 10 %if not permissions[section]:
11 11 <span class="empty_data">${_('No permissions defined yet')}</span>
12 12 %else:
13 13 <div id='tbl_list_wrap_${section}' class="yui-skin-sam">
14 14 <table id="tbl_list_${section}">
15 ## global permission box
15 16 %if section == 'global':
16 17 <thead>
17 18 <tr>
18 19 <th colspan="2" class="left">${_('Permission')}</th>
19 20 <th class="left">${_('Edit Permission')}</th>
20 21 </thead>
21 22 <tbody>
22 23 %for k in permissions[section]:
23 24 <tr>
24 25 <td colspan="2">
25 26 ${h.get_permission_name(k)}
26 27 </td>
27 28 <td>
28 29 <a href="${h.url('edit_permission', id='default')}">${_('edit')}</a>
29 30 </td>
30 31 </tr>
31 32 %endfor
32 33 </tbody>
33 34 %else:
34 35 <thead>
35 36 <tr>
36 37 <th class="left">${_('Name')}</th>
37 38 <th class="left">${_('Permission')}</th>
38 39 <th class="left">${_('Edit Permission')}</th>
39 40 </thead>
40 41 <tbody>
41 42 %for k, section_perm in sorted(permissions[section].items(), key=lambda s: s[1]+s[0].lower()):
43 %if section_perm.split('.')[-1] != 'none' or show_all:
42 44 <tr>
43 45 <td>
44 46 %if section == 'repositories':
45 47 <a href="${h.url('summary_home',repo_name=k)}">${k}</a>
46 48 %elif section == 'repositories_groups':
47 49 <a href="${h.url('repos_group_home',group_name=k)}">${k}</a>
48 50 %elif section == 'user_groups':
49 51 ##<a href="${h.url('edit_users_group',id=k)}">${k}</a>
50 52 ${k}
51 53 %endif
52 54 </td>
53 55 <td>
54 56 <span class="perm_tag ${section_perm.split('.')[-1]}">${section_perm}</span>
55 57 </td>
56 58 <td>
57 59 %if section == 'repositories':
58 60 <a href="${h.url('edit_repo',repo_name=k,anchor='permissions_manage')}">${_('edit')}</a>
59 61 %elif section == 'repositories_groups':
60 62 <a href="${h.url('edit_repos_group',group_name=k,anchor='permissions_manage')}">${_('edit')}</a>
61 63 %elif section == 'user_groups':
62 64 ##<a href="${h.url('edit_users_group',id=k)}">${_('edit')}</a>
63 65 %endif
64 66 </td>
65 67 </tr>
68 %endif
66 69 %endfor
67 70 </tbody>
68 71 %endif
69 72 </table>
70 73 </div>
71 74 %endif
72 75 %endfor
73 76 </div>
74 77 </%def>
General Comments 0
You need to be logged in to leave comments. Login now