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