comparison src/nabble/view/naml/change_permissions.naml @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children 18cf4872fd7f
comparison
equal deleted inserted replaced
-1:000000000000 0:7ecd1a4ef557
1 <macro name="change_permissions" requires="servlet">
2 <n.node_page.>
3 <n.if.not.visitor.can_change_permissions_of.page_node>
4 <then>
5 <n.login.><t>Only authorized users can proceed in this area.</t></n.login.>
6 </then>
7 </n.if.not.visitor.can_change_permissions_of.page_node>
8
9 <n.if.is_submitted_form>
10 <then>
11 <n.save_all_permissions/>
12 <n.if.page_node.is_root>
13 <then.save_all_site_permissions />
14 </n.if.page_node.is_root>
15 <n.redirect_to.page_node.path/>
16 </then>
17 </n.if.is_submitted_form>
18
19 <n.html>
20 <head>
21 <META NAME="robots" CONTENT="noindex,nofollow"/>
22 <n.title.><t>Change Permissions</t></n.title.>
23 <n.permission_javascript/>
24 <n.permission_stylesheet/>
25 </head>
26 <body>
27 <n.edit_header first_text="[t]Change Permissions[/t]" second_text="[n.page_node.get_app_node.subject/]" />
28
29 <n.form.>
30 <n.permissions_table/>
31
32 <div style="margin-top:1.4em">
33 <input type="submit" value="[t]Save Changes[/t]" />
34 <t>or</t> <a href="[n.page_node.path/]"><t>Cancel</t></a>
35 </div>
36 </n.form.>
37 </body>
38 </n.html>
39 </n.node_page.>
40 </macro>
41
42 <macro name="save_all_permissions">
43 <n.edit_page_node.>
44 <n.remove_permissions/>
45 <n.all_permissions.loop.>
46 <n.if.current_permission_row_field.equal value1="[n.value/]" value2="override">
47 <then>
48 <n.add_permission permission="[n.current_permission/]"/>
49 <n.user_groups.>
50 <n.add.anyone_group/>
51 <n.add.registered_group/>
52 <n.add.members_group/>
53 <n.add.administrators_group/>
54 <n.add.authors_group/>
55 <n.loop.permission_field. group="[n.current_group/]" permission="[n.current_permission/]">
56 <n.if.is_checked>
57 <then><n.add_permission group="[n.current_group/]" permission="[n.current_permission/]"/></then>
58 </n.if.is_checked>
59 </n.loop.permission_field.>
60 </n.user_groups.>
61 </then>
62 </n.if.current_permission_row_field.equal>
63 </n.all_permissions.loop.>
64 </n.edit_page_node.>
65 </macro>
66
67 <macro name="save_all_site_permissions">
68 <n.save_site_permissions.>
69 <n.remove_site_permissions/>
70 <n.all_site_permissions.loop.>
71 <n.if.current_permission_row_field.equal value1="[n.value/]" value2="override">
72 <then>
73 <n.add_site_permission permission="[n.current_permission/]"/>
74 <n.user_groups.>
75 <n.add.anyone_group/>
76 <n.add.registered_group/>
77 <n.add.members_group/>
78 <n.add.administrators_group/>
79 <n.loop.permission_field. group="[n.current_group/]" permission="[n.current_permission/]">
80 <n.if.is_checked>
81 <then><n.add_site_permission group="[n.current_group/]" permission="[n.current_permission/]"/></then>
82 </n.if.is_checked>
83 </n.loop.permission_field.>
84 </n.user_groups.>
85 </then>
86 </n.if.current_permission_row_field.equal>
87 </n.all_site_permissions.loop.>
88 </n.save_site_permissions.>
89 </macro>
90
91 <macro name="permission_stylesheet">
92 <style type="text/css">
93 input[type=radio] {
94 vertical-align:-15%;
95 }
96 table.permissions {
97 border-collapse: collapse;
98 margin-top:1em;
99 }
100 table.permissions th {
101 padding: .3em .6em;
102 border-bottom-style:solid;
103 border-bottom-width:2px;
104 }
105 table.permissions td {
106 padding: .3em .4em;
107 text-align:center;
108 }
109 table.permissions td.col1 {
110 text-align: left;
111 }
112 </style>
113 </macro>
114
115 <macro name="permission_javascript">
116 <n.zebra_table_javascript table_selector="table.permissions"/>
117 <script type="text/javascript">
118 var fields = [];
119 var defaults = [];
120 $(document).ready(function() {
121 function enableRow(s) {
122 var $select = $(s);
123 var $tr = $select.parent().parent();
124 var $checkboxes = $('input[type="checkbox"]',$tr);
125 if ($select.val() == 'inherit') {
126 $select.css('font-weight','normal').removeClass('highlight');
127 $checkboxes.attr('disabled','y').each(function(){
128 var index = fields.indexOf(this.name);
129 if (defaults[index])
130 $(this).attr('checked','y');
131 else
132 $(this).removeAttr('checked');
133 });
134 } else {
135 $select.css('font-weight','bold').addClass('highlight');
136 $checkboxes.removeAttr('disabled');
137 }
138 };
139 $('table.permissions select')
140 .change(function() { enableRow(this); })
141 .each(function() { enableRow(this); });
142 });
143 </script>
144 </macro>
145
146 <macro name="permissions_table">
147 <div style="overflow:auto">
148 <table class="permissions">
149 <tr class="shaded-bg-color">
150 <th class="medium-border-color"></th>
151 <th class="medium-border-color"></th>
152 <n.permission_group_heading.anyone_group/>
153 <n.permission_group_heading.registered_group/>
154 <n.permission_group_heading.administrators_group/>
155 <n.permission_group_heading.members_group/>
156 <n.permission_group_heading.authors_group/>
157 <n.permission_group_list.loop.>
158 <n.permission_group_heading.current_group/>
159 </n.permission_group_list.loop.>
160 </tr>
161 <n.permission_rows />
162 </table>
163 </div>
164 </macro>
165
166 <macro name="permission_rows">
167 <n.permission_row
168 permission = "[n.view_permission/]"
169 description="[t]Who can view this application and its contents[/t]"
170 administrators_cell = "true"
171 authors_cell = "true"
172 />
173 <n.permission_row
174 permission = "[n.edit_app_permission/]"
175 description="[t]Who can edit applications (e.g., change name, description, etc.)[/t]"
176 authors_cell = "true"
177 />
178 <n.permission_row
179 permission = "[n.create_topic_permission/]"
180 description="[t]Who can create new topics under this application[/t]"
181 />
182 <n.permission_row
183 permission = "[n.reply_permission/]"
184 description="[t]Who can reply to messages posted under this application[/t]"
185 />
186 <n.permission_row
187 permission = "[n.move_permission/]"
188 description="[t]Who can move messages under other destinations (e.g., under other topics or sub-forums)[/t]"
189 />
190 <n.permission_row
191 permission = "[n.create_sub_apps_permission/]"
192 description="[t]Who can create sub applications (e.g., sub-forums, subcategories, etc.)[/t]"
193 />
194 <n.permission_row
195 permission = "[n.change_post_date_permission/]"
196 description="[t]Who can change the date and time of messages[/t]"
197 />
198 <n.permission_row
199 permission = "[n.manage_subscribers_permission/]"
200 description="[t]Who can manage subscribers of this application[/t]"
201 />
202 <n.permission_row
203 permission = "[n.manage_pinned_topics_permission/]"
204 description="[t]Who can pin/unpin topics in this application[/t]"
205 />
206 <n.permission_row
207 permission = "[n.manage_locked_topics_permission/]"
208 description="[t]Who can lock/unlock topics in this application[/t]"
209 />
210 <n.if.page_node.is_root>
211 <then>
212 <n.site_permission_row
213 permission = "[n.manage_banned_users_permission/]"
214 description="[t]Who can ban/unban users[/t]"
215 />
216 </then>
217 </n.if.page_node.is_root>
218 <n.permission_row
219 permission = "[n.show_group_members_permission/]"
220 description="[t]Which groups allow members to be listed[/t]"
221 anyone_cell = ""
222 authors_cell = ""
223 />
224 <n.permission_row
225 permission = "[n.unrestricted_posting_permission/]"
226 description="[t]Who can post any content without restriction (including javascript code, &lt;object&gt; and &lt;style&gt; tags, etc.). [b]Security Warning[/b]: Allow this option only for users that you really trust.[/t]"
227 anyone_cell = ""
228 authors_cell = ""
229 />
230 <n.permission_row
231 permission = "[n.edit_all_permission/]"
232 description="[t]Who can edit any content, both applications and posts. Note: Please only use this feature in extreme circumstances. Most users will not like having their posts edited by someone else.[/t]"
233 authors_cell = ""
234 anyone_cell = ""
235 registered_cell = ""
236 members_cell = ""
237 other_groups_cell = ""
238 />
239 </macro>
240
241 <macro name="permission_row" parameters="permission,description,anyone_cell,registered_cell,administrators_cell,members_cell,authors_cell,other_groups_cell">
242 <tr>
243 <td class="col1">
244 <strong><n.permission/></strong>
245 <div class="weak-color"><n.description/></div>
246 </td>
247 <td>
248 <n.permission_row_field. permission="[n.permission/]">
249 <n.select.>
250 <n.select_option value="inherit" selectedValue="[n.permission_row_selected_option.permission/]" text="[n.permission_inherit_label/]"/>
251 <n.select_option value="override" selectedValue="[n.permission_row_selected_option.permission/]" text="[t]Modified[/t]"/>
252 </n.select.>
253 </n.permission_row_field.>
254 </td>
255 <n.permission_td cell="[n.anyone_cell/]" group="[n.anyone_group/]" permission="[n.permission/]" />
256 <n.permission_td cell="[n.registered_cell/]" group="[n.registered_group/]" permission="[n.permission/]" />
257 <n.permission_td cell="[n.administrators_cell/]" group="[n.administrators_group/]" permission="[n.permission/]" />
258 <n.permission_td cell="[n.members_cell/]" group="[n.members_group/]" permission="[n.permission/]" />
259 <n.permission_td cell="[n.authors_cell/]" group="[n.authors_group/]" permission="[n.permission/]" />
260 <n.permission_group_list.loop.>
261 <n.permission_td cell="[n.other_groups_cell/]" group="[n.current_group/]" permission="[n.permission/]" />
262 </n.permission_group_list.loop.>
263 </tr>
264 </macro>
265
266 <macro name="site_permission_row" parameters="permission,description,anyone_cell,administrators_cell">
267 <tr>
268 <td class="col1">
269 <strong><n.permission/></strong>
270 <div class="weak-color"><n.description/></div>
271 </td>
272 <td>
273 <n.permission_row_field. permission="[n.permission/]">
274 <n.select.>
275 <n.select_option value="inherit" selectedValue="[n.site_permission_row_selected_option.permission/]" text="[n.permission_inherit_label/]"/>
276 <n.select_option value="override" selectedValue="[n.site_permission_row_selected_option.permission/]" text="[t]Modified[/t]"/>
277 </n.select.>
278 </n.permission_row_field.>
279 </td>
280 <n.site_permission_td cell="[n.anyone_cell/]" group="[n.anyone_group/]" permission="[n.permission/]" />
281 <n.site_permission_td group="[n.registered_group/]" permission="[n.permission/]" />
282 <n.site_permission_td cell="[n.administrators_cell/]" group="[n.administrators_group/]" permission="[n.permission/]" />
283 <n.site_permission_td group="[n.members_group/]" permission="[n.permission/]" />
284 <td></td>
285 <n.permission_group_list.loop.>
286 <n.site_permission_td group="[n.current_group/]" permission="[n.permission/]" />
287 </n.permission_group_list.loop.>
288 </tr>
289 </macro>
290
291 <macro name="permission_row_selected_option" dot_parameter="permission">
292 <n.if.page_node.node_has_permission permission="[n.permission/]">
293 <then>override</then>
294 <else>inherit</else>
295 </n.if.page_node.node_has_permission>
296 </macro>
297
298 <macro name="site_permission_row_selected_option" dot_parameter="permission">
299 <n.if.site_has_site_permission permission="[n.permission/]">
300 <then>override</then>
301 <else>inherit</else>
302 </n.if.site_has_site_permission>
303 </macro>
304
305 <macro name="permission_inherit_label">
306 <n.if.page_node.is_root>
307 <then><t>Default</t></then>
308 <else><t>Inherit</t></else>
309 </n.if.page_node.is_root>
310 </macro>
311
312 <macro name="permission_td" parameters="cell,group,permission" requires="node_page">
313 <n.if.not.is_null.cell>
314 <then>
315 <td><n.cell/></td>
316 </then>
317 <else>
318 <td><n.permission_field. group="[n.group/]" permission="[n.permission/]" >
319 <n.set_value.page_node.has_permission group="[n.group/]" permission="[n.permission/]" />
320 <n.checkbox/>
321 <n.backup_default_value field_name="[n.name/]">
322 <default_value>
323 <n.permission_inherited_value group="[n.group/]" permission="[n.permission/]" />
324 </default_value>
325 </n.backup_default_value>
326 </n.permission_field.></td>
327 </else>
328 </n.if.not.is_null.cell>
329 </macro>
330
331 <macro name="site_permission_td" parameters="cell,group,permission">
332 <n.if.not.is_null.cell>
333 <then>
334 <td><n.cell/></td>
335 </then>
336 <else>
337 <td><n.permission_field. group="[n.group/]" permission="[n.permission/]" >
338 <n.set_value.group_has_site_permission group="[n.group/]" permission="[n.permission/]" />
339 <n.checkbox/>
340 <n.backup_default_value field_name="[n.name/]">
341 <default_value>
342 <n.site_permission_inherited_value group="[n.group/]" permission="[n.permission/]" />
343 </default_value>
344 </n.backup_default_value>
345 </n.permission_field.></td>
346 </else>
347 </n.if.not.is_null.cell>
348 </macro>
349
350 <macro name="permission_inherited_value" parameters="group,permission" requires="node_page">
351 <n.if.page_node.is_root>
352 <then>
353 <n.has_default_permission group="[n.group/]" permission="[n.permission/]" />
354 </then>
355 <else>
356 <n.page_node.parent_node.has_permission group="[n.group/]" permission="[n.permission/]" />
357 </else>
358 </n.if.page_node.is_root>
359 </macro>
360
361 <macro name="site_permission_inherited_value" parameters="group,permission">
362 <n.has_site_default_permission group="[n.group/]" permission="[n.permission/]" />
363 </macro>
364
365 <macro name="backup_default_value" parameters="field_name,default_value">
366 <script type="text/javascript">
367 fields.push('<n.field_name/>');
368 defaults.push(<n.null_to_false.default_value/>);
369 </script>
370 </macro>
371
372 <macro name="permission_field" parameters="group,permission" dot_parameter="do">
373 <n.field>
374 <name>chk__<n.remove_spaces.permission/>__<n.remove_spaces.group/></name>
375 <do><n.do/></do>
376 </n.field>
377 </macro>
378
379 <macro name="current_permission_row_field" dot_parameter="do" requires="permission_list">
380 <n.permission_row_field permission="[n.current_permission/]" do="[n.do/]" />
381 </macro>
382
383 <macro name="permission_row_field" parameters="permission" dot_parameter="do">
384 <n.field>
385 <name>select__<n.remove_spaces.permission/></name>
386 <do><n.do/></do>
387 </n.field>
388 </macro>
389
390 <macro name="permission_group_list" dot_parameter="do">
391 <n.user_groups.>
392 <n.remove.members_group/>
393 <n.remove.administrators_group/>
394 <n.sort/>
395 <n.do/>
396 </n.user_groups.>
397 </macro>
398
399 <macro name="permission_group_heading" dot_parameter="group">
400 <th class="medium-border-color">
401 <n.if>
402 <condition>
403 <n.either>
404 <condition1><n.equal value1="[n.group/]" value2="[n.anyone_group/]"/></condition1>
405 <condition2><n.equal value1="[n.group/]" value2="[n.authors_group/]"/></condition2>
406 </n.either>
407 </condition>
408 <then><n.group/></then>
409 <else>
410 <n.set_var. name="url"><n.manage_users_and_groups_path group="[n.group/]"/></n.set_var.>
411 <a href="[n.var name='url'/]"><n.group/></a>
412 </else>
413 </n.if>
414 </th>
415 </macro>
416
417 <macro name="all_permissions" dot_parameter="do">
418 <n.permissions values="[n.all_permissions_list/]">
419 <do><n.do/></do>
420 </n.permissions>
421 </macro>
422
423 <macro name="all_permissions_list">
424 <n.view_permission/>,
425 <n.edit_app_permission/>,
426 <n.reply_permission/>,
427 <n.create_topic_permission/>,
428 <n.move_permission/>,
429 <n.create_sub_apps_permission/>,
430 <n.change_post_date_permission/>,
431 <n.manage_pinned_topics_permission/>,
432 <n.manage_locked_topics_permission/>,
433 <n.manage_subscribers_permission/>,
434 <n.show_group_members_permission/>,
435 <n.unrestricted_posting_permission/>,
436 <n.edit_all_permission/>,
437 </macro>
438
439 <macro name="all_site_permissions" dot_parameter="do">
440 <n.permissions values="
441 [n.manage_banned_users_permission/]
442 ">
443 <do><n.do/></do>
444 </n.permissions>
445 </macro>