0
|
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, <object> and <style> 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>
|