1
0
mirror of https://github.com/phpbb/phpbb.git synced 2025-07-30 21:40:43 +02:00

implementing permission roles

- copy permissions (adding groups)
- copy permissions (adding forums)
- checking proper groupadd/del settings
- added intro page to permissions (to give an overview and quick links)
- able to select forums + subforums, single forum, all groups, all users (permission screens)
- able to reset permissions (only reset input field)
- fix forum deletion bug


git-svn-id: file:///svn/phpbb/trunk@5574 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
Meik Sievertsen
2006-02-22 21:42:26 +00:00
parent 19d5dddaeb
commit 6b13f94be9
37 changed files with 2042 additions and 549 deletions

View File

@@ -99,6 +99,12 @@
<dt><label for="forum_style">{L_FORUM_STYLE}:</label></dt>
<dd><select id="forum_style" name="forum_style"><option value="0">{L_DEFAULT_STYLE}</option>{S_STYLES_OPTIONS}</select></dd>
</dl>
<!-- IF S_ADD_ACTION -->
<dl>
<dt><label for="forum_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dd><select id="forum_perm_from" name="forum_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_FORUM_OPTIONS}</select></dd>
</dl>
<!-- ENDIF -->
</fieldset>
<div id="forum_cat_options"<!-- IF not S_FORUM_CAT --> style="display: none;"<!-- ENDIF -->>

View File

@@ -42,6 +42,13 @@
<!-- ELSE -->
<input name="group_type" type="hidden" value="{GROUP_TYPE_SPECIAL}" />
<!-- ENDIF -->
<!-- IF S_ADD_GROUP -->
<dl>
<dt><label for="group_perm_from">{L_COPY_PERMISSIONS}:</label><br /><span>{L_COPY_PERMISSIONS_EXPLAIN}</span></dt>
<dd><select id="group_perm_from" name="group_perm_from"><option value="0">{L_NO_PERMISSIONS}</option>{S_GROUP_OPTIONS}</select></dd>
</dl>
<!-- ENDIF -->
</fieldset>
<fieldset>
@@ -271,7 +278,9 @@
</table>
<fieldset class="quick">
{L_CREATE_GROUP}: <input type="text" name="group_name" value="" /> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" />
<!-- IF S_GROUP_ADD -->
{L_CREATE_GROUP}: <input type="text" name="group_name" value="" /> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" />
<!-- ENDIF -->
</fieldset>
<h1>{L_SPECIAL_GROUPS}</h1>
@@ -294,7 +303,7 @@
<td style="text-align: center;">{groups.TOTAL_MEMBERS}</td>
<td style="text-align: center;"><a href="{groups.U_DEFAULT}">{L_GROUP_DEFAULT}</a></td>
<td style="text-align: center;"><a href="{groups.U_EDIT}">{L_EDIT}</a></td>
<td style="text-align: center;"><!-- IF not groups.S_GROUP_SPECIAL --><a href="{groups.U_DELETE}">{L_DELETE}</a><!-- ELSE -->{L_DELETE}<!-- ENDIF --></td>
<td style="text-align: center;"><!-- IF not groups.S_GROUP_SPECIAL and groups.U_DELETE --><a href="{groups.U_DELETE}">{L_DELETE}</a><!-- ELSE -->{L_DELETE}<!-- ENDIF --></td>
</tr>
<!-- ENDIF -->
<!-- END groups -->

View File

@@ -0,0 +1,224 @@
<!-- INCLUDE overall_header.html -->
<a name="maincontent"></a>
<!-- IF S_EDIT -->
<script type="text/javascript">
<!--
var active_option = 'options0';
// Show/hide option panels
// value = suffix for ID to show
function swap_options(id)
{
if (id == active_option)
{
return;
}
// Hide active options and display container
dE(active_option, -1);
dE(id, 1);
active_option = id;
}
// Mark all radio buttons in one panel
// id = table ID container, s = status ['y'/'u'/'n']
function mark_options(id, s)
{
var t = document.getElementById(id);
if (!t)
{
return;
}
var rb = t.getElementsByTagName('input');
for (var r = 0; r < rb.length; r++ )
{
if (rb[r].id.substr(rb[r].id.length-1) == s)
{
rb[r].checked = true;
}
}
}
//-->
</script>
<a href="{U_BACK}" style="float: right">&laquo; {L_BACK}</a>
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<form id="acp_roles" method="post" action="{U_ACTION}">
<br />
<a href="#acl">&raquo; {L_SET_ROLE_PERMISSIONS}</a>
<fieldset>
<legend>{L_ROLE_DETAILS}</legend>
<dl>
<dt><label for="role_name">{L_ROLE_NAME}:</label></dt>
<dd><input name="role_name" type="text" id="role_name" value="{ROLE_NAME}" /></dd>
</dl>
<dl>
<dt><label for="pre_select">{L_DISPLAY_FOR_GROUP}:</label><br /><span>{L_DISPLAY_FOR_GROUP_EXPLAIN}</span></dt>
<dd><select name="pre_select" id="pre_select" onchange="if(this.value=='custom'){dE('custom_group',1);}else{dE('custom_group',-1);}">{S_PRESELECT_OPTIONS}</select></dd>
<dd id="custom_group"<!-- IF not S_CUSTOM_GROUP_IDS --> style="display:none;"<!-- ENDIF -->>
<select name="role_group_ids[]" id="role_group_id" style="width: 100%;" multiple="multiple" size="10">{S_GROUP_OPTIONS}</select>
</dd>
</dl>
</fieldset>
<fieldset class="quick">
<input type="submit" class="button1" name="submit" value="{L_SUBMIT}" />
</fieldset>
<!-- IF S_DISPLAY_ROLE_MASK -->
<h1>{L_ROLE_ASSIGNED_TO}</h1>
<!-- INCLUDE permission_roles_mask.html -->
<!-- ENDIF -->
<a name="acl"></a>
<a href="#maincontent">&raquo; {L_BACK_TO_TOP}</a><br />
<br /><br />
<h1>{L_ACL_TYPE}</h1>
<fieldset class="quick">
<a href="javascript: mark_options('a_options', 'y');">{L_ALL_YES}</a> &bull; <a href="javascript: mark_options('a_options', 'n');">{L_ALL_NO}</a> &bull; <a href="javascript: mark_options('a_options', 'u');">{L_ALL_UNSET}</a>
</fieldset>
<fieldset class="permissions">
<table cellspacing="1" class="pmask">
<thead>
<tr>
<!-- BEGIN auth -->
<th>{auth.CAT_NAME}</th>
<!-- END auth -->
</tr>
</thead>
<tbody>
<tr>
<!-- BEGIN auth -->
<!-- IF auth.S_YES -->
<td class="preset_yes">
<!-- ELSEIF auth.S_NO -->
<td class="preset_no">
<!-- ELSEIF auth.S_UNSET -->
<td class="preset_unset">
<!-- ELSE -->
<td class="preset_custom">
<!-- ENDIF -->
<a href="javascript:swap_options('options{auth.S_ROW_COUNT}');"><span>&nbsp;</span></a></td>
<!-- END auth -->
</tr>
<tr class="row3">
<td colspan="{S_NUM_PERM_COLS}" id="a_options" style="vertical-align: top; text-align: left; width: 100%;">
<!-- BEGIN auth -->
<table cellspacing="1" id="options{auth.S_ROW_COUNT}" class="type3" style="width: 100%; text-align: left;<!-- IF auth.S_FIRST_ROW --><!-- ELSE --> display: none;<!-- ENDIF -->">
<thead>
<tr>
<th scope="col" style="text-align: left; padding-left: 0;"><strong>{L_ACL_SETTING} [{auth.CAT_NAME}]</strong></th>
<th scope="col"><a href="javascript: mark_options('options{auth.S_ROW_COUNT}', 'y');">{L_ACL_YES}</a></th>
<th scope="col"><a href="javascript: mark_options('options{auth.S_ROW_COUNT}', 'u');">{L_ACL_UNSET}</a></th>
<th scope="col"><a href="javascript: mark_options('options{auth.S_ROW_COUNT}', 'n');">{L_ACL_NO}</a></th>
</tr>
</thead>
<tbody>
<!-- BEGIN mask -->
<!-- IF auth.mask.S_ROW_COUNT is even --><tr class="row4"><!-- ELSE --><tr class="row3"><!-- ENDIF -->
<th>{auth.mask.PERMISSION}</th>
<td class="unset"><input id="setting[{auth.mask.FIELD_NAME}]_y" name="setting[{auth.mask.FIELD_NAME}]" type="radio"<!-- IF auth.mask.S_YES --> checked="checked"<!-- ENDIF --> value="1" /></td>
<td class="unset"><input id="setting[{auth.mask.FIELD_NAME}]_u" name="setting[{auth.mask.FIELD_NAME}]" type="radio"<!-- IF auth.mask.S_UNSET --> checked="checked"<!-- ENDIF --> value="-1" /></td>
<td class="unset"><input id="setting[{auth.mask.FIELD_NAME}]_n" name="setting[{auth.mask.FIELD_NAME}]" type="radio"<!-- IF auth.mask.S_NO --> checked="checked"<!-- ENDIF --> value="0" /></td>
</tr>
<!-- END mask -->
</tbody>
</table>
<!-- END auth -->
</td>
</tr>
</tbody>
</table>
</fieldset>
<fieldset class="quick">
<input type="submit" class="button1" name="submit" value="{L_SUBMIT}" />
</fieldset>
</form>
<a href="#maincontent">&raquo; {L_BACK_TO_TOP}</a><br />
<br />
<!-- ELSE -->
<h1>{L_TITLE}</h1>
<p>{L_EXPLAIN}</p>
<form id="acp_roles" method="post" action="{U_ACTION}">
<table cellspacing="1">
<col class="col1" /><col class="col1" /><col class="col2" /><col class="col2" /><col class="col2" />
<thead>
<tr>
<th style="width: 50%">{L_ROLE_NAME}</th>
<th>{L_DISPLAY_FOR_GROUP}</th>
<th colspan="3">{L_OPTIONS}</th>
</tr>
</thead>
<tbody>
<!-- BEGIN roles -->
<tr>
<td style="vertical-align: top;"><b>{roles.NAME}</b></td>
<td style="vertical-align: top;">
<!-- IF roles.S_GROUP -->
<!-- BEGIN groups -->
<a href="{roles.groups.U_GROUP}">{roles.groups.GROUP_NAME}</a><br />
<!-- END groups -->
<!-- ELSE -->
{L_EVERY_USER_GROUP}
<!-- ENDIF -->
</td>
<td style="vertical-align: top; white-space: nowrap;"><a href="{roles.U_EDIT}">{L_EDIT_ROLE}</a></td>
<td style="vertical-align: top; white-space: nowrap;"><a href="{roles.U_DISPLAY_ITEMS}">{L_VIEW_ASSIGNED_ITEMS}</a></td>
<td style="vertical-align: top; white-space: nowrap;"><a href="{roles.U_REMOVE}">{L_REMOVE_ROLE}</a></td>
</tr>
<!-- END roles -->
</tbody>
</table>
<fieldset class="quick">
{L_CREATE_ROLE}: <input type="text" name="role_name" value="" /><!-- IF S_ROLE_OPTIONS --> <select name="options_from"><option value="0" selected="selected">{L_CREATE_ROLE_FROM}</option>{S_ROLE_OPTIONS}</select><!-- ENDIF --> <input class="button2" type="submit" name="add" value="{L_SUBMIT}" /><br />
</fieldset>
</form>
<!-- IF S_DISPLAY_ROLE_MASK -->
<a name="assigned_to"></a>
<h1>{L_ROLE_ASSIGNED_TO}</h1>
<!-- INCLUDE permission_roles_mask.html -->
<!-- ENDIF -->
<!-- ENDIF -->
<!-- INCLUDE overall_footer.html -->

View File

@@ -2,6 +2,16 @@
<a name="maincontent"></a>
<!-- IF S_INTRO -->
<h1>{L_ACP_PERMISSIONS}</h1>
<p>{L_ACP_PERMISSIONS_EXPLAIN}</p>
Here, an introductionary text will be placed, explaining permissions and the several menu items. Also adding quick links to this page.
<!-- ENDIF -->
<!-- IF S_SELECT_VICTIM -->
<h1>{L_TITLE}</h1>
@@ -33,6 +43,45 @@
</form>
<!-- IF S_FORUM_MULTIPLE -->
<form id="select_subforum" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_LOOK_UP_FORUM}</legend>
<p>{L_SELECT_FORUM_SUBFORUM_EXPLAIN}</p>
<dl>
<dt><label for="sforum">{L_LOOK_UP_FORUM}:</label></dt>
<dd><select id="sforum" name="subforum_id">{S_SUBFORUM_OPTIONS}</select></dd>
</dl>
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
<input type="submit" name="submit" value="{L_SUBMIT}" class="button1" />
</fieldset>
</form>
<form id="select_single_forum" method="post" action="{U_ACTION}">
<fieldset>
<legend>{L_LOOK_UP_FORUM}</legend>
<dl>
<dt><label for="forum">{L_LOOK_UP_FORUM}:</label></dt>
<dd><select id="forum" name="forum_id[]">{S_FORUM_OPTIONS}</select></dd>
</dl>
</fieldset>
<fieldset class="quick">
{S_HIDDEN_FIELDS}
<input type="submit" name="submit" value="{L_SUBMIT}" class="button1" />
</fieldset>
</form>
<!-- ENDIF -->
<!-- ELSEIF S_SELECT_USER and S_CAN_SELECT_USER -->
<form id="select_victim" method="post" action="{U_ACTION}">
@@ -87,6 +136,7 @@
<legend>{L_MANAGE_USERS}</legend>
<dl>
<dd class="full"><select style="width: 100%;" name="user_id[]" multiple="multiple" size="5">{S_DEFINED_USER_OPTIONS}</select></dd>
<dd class="full" style="text-align: right;"><input type="checkbox" name="all_users" value="1" />&nbsp; {L_ALL_USERS}</dd>
</dl>
</fieldset>
@@ -133,6 +183,7 @@
<legend>{L_MANAGE_GROUPS}</legend>
<dl>
<dd class="full"><select style="width: 100%;" name="group_id[]" multiple="multiple" size="5">{S_DEFINED_GROUP_OPTIONS}</select></dd>
<dd class="full" style="text-align: right;"><input type="checkbox" name="all_groups" value="1" />&nbsp; {L_ALL_GROUPS}</dd>
</dl>
</fieldset>
@@ -301,12 +352,13 @@
<br /><br />
<fieldset class="quick" style="float: left;">
{L_PERM_PRESET_APPLIED_TO_ALL}<br />
{L_PERMISSION_APPLIED_TO_ALL}<br />
<a href="javascript:marklist('set_permissions', 'inherit', true);">{L_MARK_ALL}</a> &bull; <a href="javascript:marklist('set_permissions', 'inherit', false);">{L_UNMARK_ALL}</a>
</fieldset>
<fieldset class="quick" style="float: right;">
<input class="button1" type="submit" name="action[apply_all_permissions]" value="{L_APPLY_ALL_PERMISSIONS}" />
<input class="button2" type="reset" name="cancel" value="{L_RESET}" />
</fieldset>
<br /><br />

View File

@@ -5,6 +5,12 @@
var active_fmask = '0';
var active_cat = '0';
var role_options = new Array();
<!-- IF S_ROLE_JS_ARRAY -->
{S_ROLE_JS_ARRAY}
<!-- ENDIF -->
// Show/hide option panels
// value = suffix for ID to show
function swap_options(pmask, fmask, cat)
@@ -33,7 +39,7 @@
}
// Mark all radio buttons in one panel
// id = table ID container, s = status [1/-1/0]
// id = table ID container, s = status ['y'/'u'/'n']
function mark_options(id, s)
{
var t = document.getElementById(id);
@@ -54,6 +60,60 @@
}
}
// Mark one radio button in one panel
// id = table ID container, field_name = the auth option, s = status ['y'/'u'/'n']
function mark_one_option(id, field_name, s)
{
var t = document.getElementById(id);
if (!t)
{
return;
}
var rb = t.getElementsByTagName('input');
for (var r = 0; r < rb.length; r++ )
{
if (rb[r].id.substr(rb[r].id.length-field_name.length-3, field_name.length) == field_name && rb[r].id.substr(rb[r].id.length-1) == s)
{
rb[r].checked = true;
}
}
}
// Reset role dropdown field to Select role... if an option gets changed
function reset_role(id)
{
var t = document.getElementById(id);
if (!t)
{
return;
}
t.options[0].selected = true;
}
// Load role and set options accordingly
function set_role_settings(role_id, target_id)
{
settings = role_options[role_id];
if (!settings)
{
return;
}
// Mark all options to unset first...
mark_options(target_id, 'u');
for (var r in settings)
{
mark_one_option(target_id, r, (settings[r] == 1) ? 'y' : 'n');
}
}
//-->
</script>
@@ -93,11 +153,11 @@
<!-- IF p_mask.S_VIEW -->
&nbsp;
<!-- ELSE -->
<!-- <b>{L_PRESET}:</b>&nbsp; &nbsp;<select name="preset[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]">
<option value="">Select preset...</option>
<option value="2">Valued Members</option>
<option value="3">Restricted Access</option>
</select> -->
<!-- IF p_mask.f_mask.S_ROLE_OPTIONS -->
<b>{L_ROLE}:</b>&nbsp; &nbsp;<select id="role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}" name="role[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" onchange="set_role_settings(this.options[selectedIndex].value, 'a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')">{p_mask.f_mask.S_ROLE_OPTIONS}</select>
<!-- ELSE -->
<b>{L_ROLE}:</b> {L_NO_ROLE_AVAILABLE}
<!-- ENDIF -->
<!-- ENDIF -->
</td>
</tr>
@@ -126,7 +186,11 @@
<input class="button1" type="submit" name="psubmit[{p_mask.f_mask.UG_ID}][{p_mask.f_mask.FORUM_ID}]" value="{L_APPLY_PERMISSIONS}" />
</div>
<div style="float: right; text-align: right; width: 35%;">
<p class="small"><a href="javascript: mark_options('a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'y')">{L_ALL_YES}</a> &bull; <a href="javascript: mark_options('a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'n')">{L_ALL_NO}</a> &bull; <a href="javascript: mark_options('a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'u')">{L_ALL_UNSET}</a></p>
<p class="small">
[<a href="javascript: mark_options('a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'y'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}');">{L_ALL_YES}</a>]<br />
[<a href="javascript: mark_options('a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'n'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}');">{L_ALL_NO}</a>]<br />
[<a href="javascript: mark_options('a_options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}', 'u'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}');">{L_ALL_UNSET}</a>]
</p>
</div>
<!-- ELSE -->
&nbsp;
@@ -144,9 +208,9 @@
<th scope="col">{L_ACL_YES}</th>
<th scope="col">{L_ACL_NO}</th>
<!-- ELSE -->
<th scope="col"><a href="javascript: mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'y')">{L_ACL_YES}</a></th>
<th scope="col"><a href="javascript: mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'u')">{L_ACL_UNSET}</a></th>
<th scope="col"><a href="javascript: mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'n')">{L_ACL_NO}</a></th>
<th scope="col"><a href="javascript: mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'y'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}');">{L_ACL_YES}</a></th>
<th scope="col"><a href="javascript: mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'u'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}');">{L_ACL_UNSET}</a></th>
<th scope="col"><a href="javascript: mark_options('options{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}{p_mask.f_mask.category.S_ROW_COUNT}', 'n'); reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}');">{L_ACL_NO}</a></th>
<!-- ENDIF -->
</tr>
</thead>
@@ -158,9 +222,9 @@
<td<!-- IF p_mask.f_mask.category.mask.S_YES --> class="yes"<!-- ELSE --> class="unset"<!-- ENDIF -->>&nbsp;</td>
<td<!-- IF p_mask.f_mask.category.mask.S_NO --> class="no"<!-- ELSE --> class="unset"<!-- ENDIF -->>&nbsp;</td>
<!-- ELSE -->
<td class="unset"><input id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_y" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" type="radio"<!-- IF p_mask.f_mask.category.mask.S_YES --> checked="checked"<!-- ENDIF --> value="1" /></td>
<td class="unset"><input id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_u" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" type="radio"<!-- IF p_mask.f_mask.category.mask.S_UNSET --> checked="checked"<!-- ENDIF --> value="-1" /></td>
<td class="unset"><input id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_n" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" type="radio"<!-- IF p_mask.f_mask.category.mask.S_NO --> checked="checked"<!-- ENDIF --> value="0" /></td>
<td class="unset"><input onchange="reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')" id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_y" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" type="radio"<!-- IF p_mask.f_mask.category.mask.S_YES --> checked="checked"<!-- ENDIF --> value="1" /></td>
<td class="unset"><input onchange="reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')" id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_u" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" type="radio"<!-- IF p_mask.f_mask.category.mask.S_UNSET --> checked="checked"<!-- ENDIF --> value="-1" /></td>
<td class="unset"><input onchange="reset_role('role{p_mask.S_ROW_COUNT}{p_mask.f_mask.S_ROW_COUNT}')" id="{p_mask.f_mask.category.mask.S_FIELD_NAME}_n" name="{p_mask.f_mask.category.mask.S_FIELD_NAME}" type="radio"<!-- IF p_mask.f_mask.category.mask.S_NO --> checked="checked"<!-- ENDIF --> value="0" /></td>
<!-- ENDIF -->
</tr>
<!-- END mask -->

View File

@@ -0,0 +1,38 @@
<!-- BEGIN role_mask -->
<table cellspacing="1">
<caption><!-- IF role_mask.FORUM_ID -->{L_FORUM}: <!-- ENDIF -->{role_mask.NAME}</caption>
<tbody>
<tr>
<th>{L_USERS}</th>
</tr>
<tr>
<td class="row1">
<!-- BEGIN users -->
<a href="{role_mask.users.U_PROFILE}">{role_mask.users.USERNAME}</a><!-- IF not role_mask.users.S_LAST_ROW --> :: <!-- ENDIF -->
<!-- BEGINELSE -->
{L_USERS_NOT_ASSIGNED}
<!-- END users -->
</td>
</tr>
<tr>
<th>{L_GROUPS}</th>
</tr>
<tr>
<td class="row2">
<!-- BEGIN groups -->
<a href="{role_mask.groups.U_PROFILE}">{role_mask.groups.GROUP_NAME}</a><!-- IF not role_mask.groups.S_LAST_ROW --> :: <!-- ENDIF -->
<!-- BEGINELSE -->
{L_GROUPS_NOT_ASSIGNED}
<!-- END users -->
</td>
</tr>
</tbody>
</table>
<!-- BEGINELSE -->
<p>{L_ROLE_NOT_ASSIGNED}</p>
<!-- END role_mask -->