change_permissions.naml
<macro name="change_permissions" requires="servlet">
<n.node_page.>
<n.if.not.visitor.can_change_permissions_of.page_node>
<then>
<n.login.><t>Only authorized users can proceed in this area.</t></n.login.>
</then>
</n.if.not.visitor.can_change_permissions_of.page_node>
<n.if.is_submitted_form>
<then>
<n.save_all_permissions/>
<n.if.page_node.is_root>
<then.save_all_site_permissions />
</n.if.page_node.is_root>
<n.redirect_to.page_node.path/>
</then>
</n.if.is_submitted_form>
<n.html>
<head>
<META NAME="robots" CONTENT="noindex,nofollow"/>
<n.title.><t>Change Permissions</t></n.title.>
<n.permission_javascript/>
<n.permission_stylesheet/>
</head>
<body>
<n.edit_header first_text="[t]Change Permissions[/t]" second_text="[n.page_node.get_app_node.subject/]" />
<n.form.>
<n.permissions_table/>
<div style="margin-top:1.4em">
<input type="submit" value="[t]Save Changes[/t]" />
<t>or</t> <a href="[n.page_node.path/]"><t>Cancel</t></a>
</div>
</n.form.>
</body>
</n.html>
</n.node_page.>
</macro>
<macro name="save_all_permissions">
<n.edit_page_node.>
<n.remove_permissions/>
<n.all_permissions.loop.>
<n.if.current_permission_row_field.equal value1="[n.value/]" value2="override">
<then>
<n.add_permission permission="[n.current_permission/]"/>
<n.user_groups.>
<n.add.anyone_group/>
<n.add.members_group/>
<n.add.administrators_group/>
<n.add.authors_group/>
<n.loop.permission_field. group="[n.current_group/]" permission="[n.current_permission/]">
<n.if.is_checked>
<then><n.add_permission group="[n.current_group/]" permission="[n.current_permission/]"/></then>
</n.if.is_checked>
</n.loop.permission_field.>
</n.user_groups.>
</then>
</n.if.current_permission_row_field.equal>
</n.all_permissions.loop.>
</n.edit_page_node.>
</macro>
<macro name="save_all_site_permissions">
<n.save_site_permissions.>
<n.remove_site_permissions/>
<n.all_site_permissions.loop.>
<n.if.current_permission_row_field.equal value1="[n.value/]" value2="override">
<then>
<n.add_site_permission permission="[n.current_permission/]"/>
<n.user_groups.>
<n.add.anyone_group/>
<n.add.members_group/>
<n.add.administrators_group/>
<n.loop.permission_field. group="[n.current_group/]" permission="[n.current_permission/]">
<n.if.is_checked>
<then><n.add_site_permission group="[n.current_group/]" permission="[n.current_permission/]"/></then>
</n.if.is_checked>
</n.loop.permission_field.>
</n.user_groups.>
</then>
</n.if.current_permission_row_field.equal>
</n.all_site_permissions.loop.>
</n.save_site_permissions.>
</macro>
<macro name="permission_stylesheet">
<style type="text/css">
input[type=radio] {
vertical-align:-15%;
}
table.permissions {
border-collapse: collapse;
margin-top:1em;
}
table.permissions th {
padding: .3em .6em;
border-bottom-style:solid;
border-bottom-width:2px;
}
table.permissions td {
padding: .3em .4em;
text-align:center;
}
table.permissions td.col1 {
text-align: left;
}
</style>
</macro>
<macro name="permission_javascript">
<n.zebra_table_javascript table_selector="table.permissions"/>
<script type="text/javascript">
var fields = [];
var defaults = [];
$(document).ready(function() {
function enableRow(s) {
var $select = $(s);
var $tr = $select.parent().parent();
var $checkboxes = $('input[type="checkbox"]',$tr);
if ($select.val() == 'inherit') {
$select.css('font-weight','normal').removeClass('highlight');
$checkboxes.attr('disabled','y').each(function(){
var index = fields.indexOf(this.name);
if (defaults[index])
$(this).attr('checked','y');
else
$(this).removeAttr('checked');
});
} else {
$select.css('font-weight','bold').addClass('highlight');
$checkboxes.removeAttr('disabled');
}
};
$('table.permissions select')
.change(function() { enableRow(this); })
.each(function() { enableRow(this); });
});
</script>
</macro>
<macro name="permissions_table">
<div style="overflow:auto">
<table class="permissions">
<tr class="shaded-bg-color">
<th class="medium-border-color"></th>
<th class="medium-border-color"></th>
<n.permission_group_heading.anyone_group/>
<n.permission_group_heading.administrators_group/>
<n.permission_group_heading.members_group/>
<n.permission_group_heading.authors_group/>
<n.permission_group_list.loop.>
<n.permission_group_heading.current_group/>
</n.permission_group_list.loop.>
</tr>
<n.permission_rows />
</table>
</div>
</macro>
<macro name="permission_rows">
<n.permission_row
permission = "[n.view_permission/]"
description="[t]Who can view this application and its contents[/t]"
administrators_cell = "true"
authors_cell = "true"
/>
<n.permission_row
permission = "[n.edit_app_permission/]"
description="[t]Who can edit applications (e.g., change name, description, etc.)[/t]"
authors_cell = "true"
/>
<n.permission_row
permission = "[n.create_topic_permission/]"
description="[t]Who can create new topics under this application[/t]"
/>
<n.permission_row
permission = "[n.reply_permission/]"
description="[t]Who can reply to messages posted under this application[/t]"
/>
<n.permission_row
permission = "[n.move_permission/]"
description="[t]Who can move messages under other destinations (e.g., under other topics or sub-forums)[/t]"
/>
<n.permission_row
permission = "[n.create_sub_apps_permission/]"
description="[t]Who can create sub applications (e.g., sub-forums, subcategories, etc.)[/t]"
/>
<n.permission_row
permission = "[n.change_post_date_permission/]"
description="[t]Who can change the date and time of messages[/t]"
/>
<n.permission_row
permission = "[n.manage_subscribers_permission/]"
description="[t]Who can manage subscribers of this application[/t]"
/>
<n.permission_row
permission = "[n.manage_pinned_topics_permission/]"
description="[t]Who can pin/unpin topics in this application[/t]"
/>
<n.permission_row
permission = "[n.manage_locked_topics_permission/]"
description="[t]Who can lock/unlock topics in this application[/t]"
/>
<n.if.page_node.is_root>
<then>
<n.site_permission_row
permission = "[n.manage_banned_users_permission/]"
description="[t]Who can ban/unban users[/t]"
/>
</then>
</n.if.page_node.is_root>
<n.permission_row
permission = "[n.show_group_members_permission/]"
description="[t]Which groups allow members to be listed[/t]"
authors_cell = ""
/>
<n.permission_row
permission = "[n.unrestricted_posting_permission/]"
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]"
authors_cell = ""
/>
<n.permission_row
permission = "[n.edit_all_permission/]"
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]"
authors_cell = ""
anyone_cell = ""
registered_cell = ""
members_cell = ""
other_groups_cell = ""
/>
</macro>
<macro name="permission_row" parameters="permission,description,anyone_cell,registered_cell,administrators_cell,members_cell,authors_cell,other_groups_cell">
<tr>
<td class="col1">
<strong><n.permission/></strong>
<div class="weak-color"><n.description/></div>
</td>
<td>
<n.permission_row_field. permission="[n.permission/]">
<n.select.>
<n.select_option value="inherit" selectedValue="[n.permission_row_selected_option.permission/]" text="[n.permission_inherit_label/]"/>
<n.select_option value="override" selectedValue="[n.permission_row_selected_option.permission/]" text="[t]Modified[/t]"/>
</n.select.>
</n.permission_row_field.>
</td>
<n.permission_td cell="[n.anyone_cell/]" group="[n.anyone_group/]" permission="[n.permission/]" />
<n.permission_td cell="[n.administrators_cell/]" group="[n.administrators_group/]" permission="[n.permission/]" />
<n.permission_td cell="[n.members_cell/]" group="[n.members_group/]" permission="[n.permission/]" />
<n.permission_td cell="[n.authors_cell/]" group="[n.authors_group/]" permission="[n.permission/]" />
<n.permission_group_list.loop.>
<n.permission_td cell="[n.other_groups_cell/]" group="[n.current_group/]" permission="[n.permission/]" />
</n.permission_group_list.loop.>
</tr>
</macro>
<macro name="site_permission_row" parameters="permission,description,anyone_cell,administrators_cell">
<tr>
<td class="col1">
<strong><n.permission/></strong>
<div class="weak-color"><n.description/></div>
</td>
<td>
<n.permission_row_field. permission="[n.permission/]">
<n.select.>
<n.select_option value="inherit" selectedValue="[n.site_permission_row_selected_option.permission/]" text="[n.permission_inherit_label/]"/>
<n.select_option value="override" selectedValue="[n.site_permission_row_selected_option.permission/]" text="[t]Modified[/t]"/>
</n.select.>
</n.permission_row_field.>
</td>
<n.site_permission_td cell="[n.anyone_cell/]" group="[n.anyone_group/]" permission="[n.permission/]" />
<n.site_permission_td cell="[n.administrators_cell/]" group="[n.administrators_group/]" permission="[n.permission/]" />
<n.site_permission_td group="[n.members_group/]" permission="[n.permission/]" />
<td></td>
<n.permission_group_list.loop.>
<n.site_permission_td group="[n.current_group/]" permission="[n.permission/]" />
</n.permission_group_list.loop.>
</tr>
</macro>
<macro name="permission_row_selected_option" dot_parameter="permission">
<n.if.page_node.node_has_permission permission="[n.permission/]">
<then>override</then>
<else>inherit</else>
</n.if.page_node.node_has_permission>
</macro>
<macro name="site_permission_row_selected_option" dot_parameter="permission">
<n.if.site_has_site_permission permission="[n.permission/]">
<then>override</then>
<else>inherit</else>
</n.if.site_has_site_permission>
</macro>
<macro name="permission_inherit_label">
<n.if.page_node.is_root>
<then><t>Default</t></then>
<else><t>Inherit</t></else>
</n.if.page_node.is_root>
</macro>
<macro name="permission_td" parameters="cell,group,permission" requires="node_page">
<n.if.not.is_null.cell>
<then>
<td><n.cell/></td>
</then>
<else>
<td><n.permission_field. group="[n.group/]" permission="[n.permission/]" >
<n.set_value.page_node.has_permission group="[n.group/]" permission="[n.permission/]" />
<n.checkbox/>
<n.backup_default_value field_name="[n.name/]">
<default_value>
<n.permission_inherited_value group="[n.group/]" permission="[n.permission/]" />
</default_value>
</n.backup_default_value>
</n.permission_field.></td>
</else>
</n.if.not.is_null.cell>
</macro>
<macro name="site_permission_td" parameters="cell,group,permission">
<n.if.not.is_null.cell>
<then>
<td><n.cell/></td>
</then>
<else>
<td><n.permission_field. group="[n.group/]" permission="[n.permission/]" >
<n.set_value.group_has_site_permission group="[n.group/]" permission="[n.permission/]" />
<n.checkbox/>
<n.backup_default_value field_name="[n.name/]">
<default_value>
<n.site_permission_inherited_value group="[n.group/]" permission="[n.permission/]" />
</default_value>
</n.backup_default_value>
</n.permission_field.></td>
</else>
</n.if.not.is_null.cell>
</macro>
<macro name="permission_inherited_value" parameters="group,permission" requires="node_page">
<n.if.page_node.is_root>
<then>
<n.has_default_permission group="[n.group/]" permission="[n.permission/]" />
</then>
<else>
<n.page_node.parent_node.has_permission group="[n.group/]" permission="[n.permission/]" />
</else>
</n.if.page_node.is_root>
</macro>
<macro name="site_permission_inherited_value" parameters="group,permission">
<n.has_site_default_permission group="[n.group/]" permission="[n.permission/]" />
</macro>
<macro name="backup_default_value" parameters="field_name,default_value">
<script type="text/javascript">
fields.push('<n.field_name/>');
defaults.push(<n.null_to_false.default_value/>);
</script>
</macro>
<macro name="permission_field" parameters="group,permission" dot_parameter="do">
<n.field>
<name>chk__<n.remove_spaces.permission/>__<n.remove_spaces.group/></name>
<do><n.do/></do>
</n.field>
</macro>
<macro name="current_permission_row_field" dot_parameter="do" requires="permission_list">
<n.permission_row_field permission="[n.current_permission/]" do="[n.do/]" />
</macro>
<macro name="permission_row_field" parameters="permission" dot_parameter="do">
<n.field>
<name>select__<n.remove_spaces.permission/></name>
<do><n.do/></do>
</n.field>
</macro>
<macro name="permission_group_list" dot_parameter="do">
<n.user_groups.>
<n.remove.members_group/>
<n.remove.administrators_group/>
<n.sort/>
<n.do/>
</n.user_groups.>
</macro>
<macro name="permission_group_heading" dot_parameter="group">
<th class="medium-border-color">
<n.if>
<condition>
<n.either>
<condition1><n.equal value1="[n.group/]" value2="[n.anyone_group/]"/></condition1>
<condition2><n.equal value1="[n.group/]" value2="[n.authors_group/]"/></condition2>
</n.either>
</condition>
<then><n.group/></then>
<else>
<n.set_var. name="url"><n.manage_users_and_groups_path group="[n.group/]"/></n.set_var.>
<a href="[n.var name='url'/]"><n.group/></a>
</else>
</n.if>
</th>
</macro>
<macro name="all_permissions" dot_parameter="do">
<n.permissions values="[n.all_permissions_list/]">
<do><n.do/></do>
</n.permissions>
</macro>
<macro name="all_permissions_list">
<n.view_permission/>,
<n.edit_app_permission/>,
<n.reply_permission/>,
<n.create_topic_permission/>,
<n.move_permission/>,
<n.create_sub_apps_permission/>,
<n.change_post_date_permission/>,
<n.manage_pinned_topics_permission/>,
<n.manage_locked_topics_permission/>,
<n.manage_subscribers_permission/>,
<n.show_group_members_permission/>,
<n.unrestricted_posting_permission/>,
<n.edit_all_permission/>,
</macro>
<macro name="all_site_permissions" dot_parameter="do">
<n.permissions values="
[n.manage_banned_users_permission/]
">
<do><n.do/></do>
</n.permissions>
</macro>