Working on permission template -> group conversion

master
Mike Koch 7 years ago
parent 4d9eeeb1d0
commit 056b02522e
No known key found for this signature in database
GPG Key ID: 9BA5D7F8391455ED

@ -39,10 +39,6 @@ if ($action = hesk_REQUEST('a')) {
create(); create();
} elseif ($action == 'delete') { } elseif ($action == 'delete') {
deleteTemplate(); deleteTemplate();
} elseif ($action == 'addadmin') {
toggleAdmin(true);
} elseif ($action == 'deladmin') {
toggleAdmin(false);
} }
} }
@ -51,34 +47,20 @@ require_once(HESK_PATH . 'inc/headerAdmin.inc.php');
/* Print main manage users page */ /* Print main manage users page */
require_once(HESK_PATH . 'inc/show_admin_nav.inc.php'); require_once(HESK_PATH . 'inc/show_admin_nav.inc.php');
?>
<script language="Javascript" type="text/javascript"><!--
function confirm_delete() {
if (confirm('<?php echo hesk_makeJsString($hesklang['confirm_del_cat']); ?>')) {
return true;
}
else {
return false;
}
}
//-->
</script>
<?php
$modsForHesk_settings = mfh_getSettings(); $modsForHesk_settings = mfh_getSettings();
$res = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates` ORDER BY `name` ASC"); $res = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates` ORDER BY `name` ASC");
$templates = array(); $templates = array();
while ($row = hesk_dbFetchAssoc($res)) { while ($row = hesk_dbFetchAssoc($res)) {
array_push($templates, $row); $templates[] = $row;
} }
$featureArray = hesk_getFeatureArray(); $featureArray = hesk_getFeatureArray();
$orderBy = $modsForHesk_settings['category_order_column']; $orderBy = $modsForHesk_settings['category_order_column'];
$res = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ORDER BY `" . $orderBy . "` ASC"); $res = hesk_dbQuery("SELECT * FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "categories` ORDER BY `" . $orderBy . "` ASC");
$categories = array(); $categories = array();
while ($row = hesk_dbFetchAssoc($res)) { while ($row = hesk_dbFetchAssoc($res)) {
array_push($categories, $row); $categories[] = $row;
} }
?> ?>
<div class="content-wrapper"> <div class="content-wrapper">
@ -87,9 +69,9 @@ while ($row = hesk_dbFetchAssoc($res)) {
<div class="box"> <div class="box">
<div class="box-header with-border"> <div class="box-header with-border">
<h1 class="box-title"> <h1 class="box-title">
<?php echo $hesklang['manage_permission_templates']; ?> <?php echo $hesklang['manage_permission_groups']; ?>
<i class="fa fa-question-circle settingsquestionmark" data-toggle="tooltip" data-placement="right" <i class="fa fa-question-circle settingsquestionmark" data-toggle="tooltip" data-placement="right"
title="<?php echo $hesklang['manage_permission_templates_help']; ?>"></i> title="<?php echo $hesklang['manage_permission_groups_help']; ?>"></i>
</h1> </h1>
<div class="box-tools pull-right"> <div class="box-tools pull-right">
<button type="button" class="btn btn-box-tool" data-widget="collapse"> <button type="button" class="btn btn-box-tool" data-widget="collapse">
@ -99,7 +81,7 @@ while ($row = hesk_dbFetchAssoc($res)) {
</div> </div>
<div class="box-body"> <div class="box-body">
<a href="#" data-toggle="modal" data-target="#modal-template-new" class="btn btn-success nu-floatRight"> <a href="#" data-toggle="modal" data-target="#modal-template-new" class="btn btn-success nu-floatRight">
<i class="fa fa-plus-circle"></i> <?php echo $hesklang['create_new_template']; ?> <i class="fa fa-plus-circle"></i> <?php echo $hesklang['create_new_group']; ?>
</a> </a>
<table class="table table-striped"> <table class="table table-striped">
<thead> <thead>
@ -115,28 +97,11 @@ while ($row = hesk_dbFetchAssoc($res)) {
<td> <td>
<a href="#" data-toggle="modal" data-target="#modal-template-<?php echo $row['id'] ?>"> <a href="#" data-toggle="modal" data-target="#modal-template-<?php echo $row['id'] ?>">
<i class="fa fa-pencil icon-link" data-toggle="tooltip" <i class="fa fa-pencil icon-link" data-toggle="tooltip"
title="<?php echo $hesklang['view_permissions_for_this_template'] ?>"></i></a> title="<?php echo $hesklang['view_permissions_for_this_group'] ?>"></i></a>
<?php if ($row['id'] == 1) { ?> <?php
<i class="fa fa-star icon-link orange" data-toggle="tooltip"
title="<?php echo $hesklang['admin_cannot_be_staff']; ?>"></i></a>
<?php } elseif ($row['heskprivileges'] == 'ALL' && $row['categories'] == 'ALL'){ ?>
<a href="manage_permission_templates.php?a=deladmin&amp;id=<?php echo $row['id']; ?>">
<i class="fa fa-star icon-link orange" data-toggle="tooltip"
title="<?php echo $hesklang['template_has_admin_privileges']; ?>"></i></a>
<?php } elseif ($row['id'] != 2) { ?>
<a href="manage_permission_templates.php?a=addadmin&amp;id=<?php echo $row['id']; ?>">
<i class="fa fa-star-o icon-link gray" data-toggle="tooltip"
title="<?php echo $hesklang['template_has_no_admin_privileges']; ?>"></i></a>
<?php
} else {
?>
<i class="fa fa-star-o icon-link gray" data-toggle="tooltip"
title="<?php echo $hesklang['staff_cannot_be_admin']; ?>"></i>
<?php
}
if ($row['id'] != 1 && $row['id'] != 2): if ($row['id'] != 1 && $row['id'] != 2):
?> ?>
<a href="manage_permission_templates.php?a=delete&amp;id=<?php echo $row['id']; ?>"> <a href="manage_permission_groups.php?a=delete&amp;id=<?php echo $row['id']; ?>">
<i class="fa fa-times icon-link red" data-toggle="tooltip" <i class="fa fa-times icon-link red" data-toggle="tooltip"
title="<?php echo $hesklang['delete']; ?>"></i></a> title="<?php echo $hesklang['delete']; ?>"></i></a>
<?php endif; ?> <?php endif; ?>
@ -172,12 +137,10 @@ function createEditModal($template, $features, $categories)
{ {
global $hesklang; global $hesklang;
$showNotice = true;
$disabled = 'checked="checked" disabled'; $disabled = 'checked="checked" disabled';
$enabledFeatures = array(); $enabledFeatures = array();
$enabledCategories = array(); $enabledCategories = array();
if ($template['heskprivileges'] != 'ALL') { if ($template['heskprivileges'] != 'ALL') {
$showNotice = false;
$disabled = ''; $disabled = '';
$enabledFeatures = explode(',', $template['heskprivileges']); $enabledFeatures = explode(',', $template['heskprivileges']);
$enabledCategories = explode(',', $template['categories']); $enabledCategories = explode(',', $template['categories']);
@ -187,30 +150,23 @@ function createEditModal($template, $features, $categories)
aria-labelledby="myLargeModalLabel" aria-hidden="true"> aria-labelledby="myLargeModalLabel" aria-hidden="true">
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<form action="manage_permission_templates.php" role="form" method="post" id="form<?php echo $template['id']; ?>"> <form action="manage_permission_groups.php" role="form" method="post" id="form<?php echo $template['id']; ?>">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button> aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo sprintf($hesklang['permissions_for_template'], $template['name']); ?></h4> <h4 class="modal-title"><?php echo sprintf($hesklang['permissions_for_group'], $template['name']); ?></h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="row"> <div class="row">
<?php if ($showNotice): ?>
<div class="col-sm-12">
<div class="alert alert-info">
<i class="fa fa-info-circle"></i> <?php echo $hesklang['template_is_admin_cannot_change']; ?>
</div>
</div>
<?php endif; ?>
<div class="form-group"> <div class="form-group">
<div class="col-sm-2"> <div class="col-sm-2">
<label for="name" <label for="name"
class="control-label"><?php echo $hesklang['template_name']; ?></label> class="control-label"><?php echo $hesklang['group_name']; ?></label>
</div> </div>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="text" class="form-control" name="name" <input type="text" class="form-control" name="name"
value="<?php echo htmlspecialchars($template['name']); ?>" value="<?php echo htmlspecialchars($template['name']); ?>"
placeholder="<?php echo htmlspecialchars($hesklang['template_name']); ?>" placeholder="<?php echo htmlspecialchars($hesklang['group_name']); ?>"
data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>" data-error="<?php echo htmlspecialchars($hesklang['this_field_is_required']); ?>"
required> required>
<div class="help-block with-errors"></div> <div class="help-block with-errors"></div>
@ -228,7 +184,7 @@ function createEditModal($template, $features, $categories)
<label> <label>
<?php <?php
$checked = ''; $checked = '';
if (in_array($category['id'], $enabledCategories) && !$showNotice) { if (in_array($category['id'], $enabledCategories)) {
$checked = 'checked'; $checked = 'checked';
} ?> } ?>
<input type="checkbox" name="categories[]" <input type="checkbox" name="categories[]"
@ -249,7 +205,7 @@ function createEditModal($template, $features, $categories)
<div class="checkbox"> <div class="checkbox">
<label><?php <label><?php
$checked = ''; $checked = '';
if (in_array($feature, $enabledFeatures) && !$showNotice) { if (in_array($feature, $enabledFeatures)) {
$checked = 'checked'; $checked = 'checked';
} ?> } ?>
<input type="checkbox" name="features[]" <input type="checkbox" name="features[]"
@ -266,9 +222,6 @@ function createEditModal($template, $features, $categories)
<div class="modal-footer"> <div class="modal-footer">
<input type="hidden" name="a" value="save"> <input type="hidden" name="a" value="save">
<input type="hidden" name="template_id" value="<?php echo $template['id']; ?>"> <input type="hidden" name="template_id" value="<?php echo $template['id']; ?>">
<?php if ($showNotice): ?>
<input type="hidden" name="name_only" value="1">
<?php endif; ?>
<div class="btn-group"> <div class="btn-group">
<input type="submit" class="btn btn-success" <input type="submit" class="btn btn-success"
value="<?php echo $hesklang['save_changes']; ?>"> value="<?php echo $hesklang['save_changes']; ?>">
@ -291,22 +244,22 @@ function buildCreateModal($features, $categories)
aria-hidden="true"> aria-hidden="true">
<div class="modal-dialog modal-lg"> <div class="modal-dialog modal-lg">
<div class="modal-content"> <div class="modal-content">
<form action="manage_permission_templates.php" role="form" method="post" id="createForm"> <form action="manage_permission_groups.php" role="form" method="post" id="createForm">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span
aria-hidden="true">&times;</span></button> aria-hidden="true">&times;</span></button>
<h4 class="modal-title"><?php echo $hesklang['create_new_template_title']; ?></h4> <h4 class="modal-title"><?php echo $hesklang['create_new_group_title']; ?></h4>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div class="row"> <div class="row">
<div class="form-group"> <div class="form-group">
<div class="col-sm-2"> <div class="col-sm-2">
<label for="name" <label for="name"
class="control-label"><?php echo $hesklang['template_name']; ?></label> class="control-label"><?php echo $hesklang['group_name']; ?></label>
</div> </div>
<div class="col-sm-10"> <div class="col-sm-10">
<input type="text" class="form-control" name="name" <input type="text" class="form-control" name="name"
placeholder="<?php echo $hesklang['template_name']; ?>" required> placeholder="<?php echo $hesklang['group_name']; ?>" required>
<div class="help-block with-errors"></div> <div class="help-block with-errors"></div>
</div> </div>
</div> </div>
@ -381,40 +334,34 @@ function save()
WHERE `id` = " . intval($templateId)); WHERE `id` = " . intval($templateId));
$row = hesk_dbFetchAssoc($res); $row = hesk_dbFetchAssoc($res);
if (hesk_POST('name_only', 0)) {
// We are only able to update the name // Add 'can ban emails' if 'can unban emails' is set (but not added). Same with 'can ban ips'
$name = hesk_POST('name'); $catArray = hesk_POST_array('categories');
$featArray = hesk_POST_array('features');
hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates` validate($featArray, $catArray);
SET `name` = '" . hesk_dbEscape($name) . "' WHERE `id` = " . intval($templateId)); if (in_array('can_unban_emails', $featArray) && !in_array('can_ban_emails', $featArray)) {
} else { array_push($catArray, 'can_ban_emails');
// Add 'can ban emails' if 'can unban emails' is set (but not added). Same with 'can ban ips' }
$catArray = hesk_POST_array('categories'); if (in_array('can_unban_ips', $featArray) && !in_array('can_ban_ips', $featArray)) {
$featArray = hesk_POST_array('features'); array_push($featArray, 'can_ban_ips');
validate($featArray, $catArray); }
if (in_array('can_unban_emails', $featArray) && !in_array('can_ban_emails', $featArray)) { $categories = implode(',', $catArray);
array_push($catArray, 'can_ban_emails'); $features = implode(',', $featArray);
} $name = hesk_POST('name');
if (in_array('can_unban_ips', $featArray) && !in_array('can_ban_ips', $featArray)) {
array_push($featArray, 'can_ban_ips'); hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates`
} SET `categories` = '" . hesk_dbEscape($categories) . "', `heskprivileges` = '" . hesk_dbEscape($features) . "',
$categories = implode(',', $catArray); `name` = '" . hesk_dbEscape($name) . "'
$features = implode(',', $featArray); WHERE `id` = " . intval($templateId));
$name = hesk_POST('name');
if ($row['categories'] != $categories || $row['heskprivileges'] != $features) {
hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates` // Any users with this template should have their permissions updated
SET `categories` = '" . hesk_dbEscape($categories) . "', `heskprivileges` = '" . hesk_dbEscape($features) . "', hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` SET `heskprivileges` = '" . hesk_dbEscape($features) . "',
`name` = '" . hesk_dbEscape($name) . "' `categories` = '" . hesk_dbEscape($categories) . "'
WHERE `id` = " . intval($templateId)); WHERE `permission_template` = " . intval($templateId));
if ($row['categories'] != $categories || $row['heskprivileges'] != $features) {
// Any users with this template should be switched to "custom"
hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` SET `permission_template` = NULL
WHERE `permission_template` = " . intval($templateId));
}
} }
hesk_process_messages($hesklang['permission_template_updated'], $_SERVER['PHP_SELF'], 'SUCCESS'); hesk_process_messages($hesklang['permission_group_updated'], $_SERVER['PHP_SELF'], 'SUCCESS');
} }
function create() function create()
@ -439,7 +386,7 @@ function create()
hesk_dbQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates` (`name`, `heskprivileges`, `categories`) hesk_dbQuery("INSERT INTO `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates` (`name`, `heskprivileges`, `categories`)
VALUES ('" . hesk_dbEscape($name) . "', '" . hesk_dbEscape($features) . "', '" . hesk_dbEscape($categories) . "')"); VALUES ('" . hesk_dbEscape($name) . "', '" . hesk_dbEscape($features) . "', '" . hesk_dbEscape($categories) . "')");
hesk_process_messages($hesklang['template_created'], $_SERVER['PHP_SELF'], 'SUCCESS'); hesk_process_messages($hesklang['group_created'], $_SERVER['PHP_SELF'], 'SUCCESS');
} }
function validate($features, $categories, $create = false, $name = '') function validate($features, $categories, $create = false, $name = '')
@ -449,7 +396,7 @@ function validate($features, $categories, $create = false, $name = '')
$errorMarkup = '<ul>'; $errorMarkup = '<ul>';
$isValid = true; $isValid = true;
if ($create && $name == '') { if ($create && $name == '') {
$errorMarkup .= '<li>' . $hesklang['template_name_required'] . '</li>'; $errorMarkup .= '<li>' . $hesklang['group_name_required'] . '</li>';
$isValid = false; $isValid = false;
} }
if (count($features) == 0) { if (count($features) == 0) {
@ -463,7 +410,7 @@ function validate($features, $categories, $create = false, $name = '')
$errorMarkup .= '</ul>'; $errorMarkup .= '</ul>';
if (!$isValid) { if (!$isValid) {
$error = sprintf($hesklang['permission_template_error'], $errorMarkup); $error = sprintf($hesklang['permission_group_error'], $errorMarkup);
hesk_process_messages($error, $_SERVER['PHP_SELF']); hesk_process_messages($error, $_SERVER['PHP_SELF']);
} }
return true; return true;
@ -483,36 +430,14 @@ function deleteTemplate()
// Otherwise delete the template // Otherwise delete the template
hesk_dbQuery("DELETE FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates` WHERE `id` = " . intval($id)); hesk_dbQuery("DELETE FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates` WHERE `id` = " . intval($id));
if (hesk_dbAffectedRows() != 1) { if (hesk_dbAffectedRows() != 1) {
hesk_process_messages($hesklang['no_templates_were_deleted'], $_SERVER['PHP_SELF']); hesk_process_messages($hesklang['no_group_were_deleted'], $_SERVER['PHP_SELF']);
} }
hesk_process_messages($hesklang['permission_template_deleted'], $_SERVER['PHP_SELF'], 'SUCCESS');
}
function toggleAdmin($admin) // Move all users who used to be in this group to "custom"
{ hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` SET `permission_template` = NULL
global $hesk_settings, $hesklang; WHERE `permission_template` = " . intval($id));
$id = hesk_GET('id');
if ($id == 1 || $id == 2) { hesk_process_messages($hesklang['permission_group_deleted'], $_SERVER['PHP_SELF'], 'SUCCESS');
hesk_process_messages($hesklang['cannot_change_admin_staff'], $_SERVER['PHP_SELF']);
}
if ($admin) {
hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates` SET `heskprivileges` = 'ALL',
`categories` = 'ALL' WHERE `id` = " . intval($id));
hesk_process_messages($hesklang['permission_template_now_admin'], $_SERVER['PHP_SELF'], 'SUCCESS');
} else {
// Get default privileges
$res = hesk_dbQuery("SELECT `heskprivileges`, `categories` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates`
WHERE `id` = 2");
$row = hesk_dbFetchAssoc($res);
hesk_dbQuery("UPDATE `" . hesk_dbEscape($hesk_settings['db_pfix']) . "permission_templates`
SET `heskprivileges` = '" . hesk_dbEscape($row['heskprivileges']) . "',
`categories` = '" . hesk_dbEscape($row['categories']) . "' WHERE `id` = " . intval($id));
hesk_process_messages($hesklang['permission_template_no_longer_admin'], $_SERVER['PHP_SELF'], 'SUCCESS');
}
} }
?> ?>

@ -214,7 +214,7 @@ if ($action = hesk_REQUEST('a')) {
<th><b><i><?php echo $hesklang['name']; ?></i></b></th> <th><b><i><?php echo $hesklang['name']; ?></i></b></th>
<th><b><i><?php echo $hesklang['email']; ?></i></b></th> <th><b><i><?php echo $hesklang['email']; ?></i></b></th>
<th><b><i><?php echo $hesklang['username']; ?></i></b></th> <th><b><i><?php echo $hesklang['username']; ?></i></b></th>
<th><b><i><?php echo $hesklang['permission_template']; ?></i></b></th> <th><b><i><?php echo $hesklang['permission_group']; ?></i></b></th>
<?php <?php
/* Is user rating enabled? */ /* Is user rating enabled? */
if ($hesk_settings['rating']) { if ($hesk_settings['rating']) {
@ -591,6 +591,7 @@ function update_user()
$myuser['notify_overdue_unassigned'] = 0; $myuser['notify_overdue_unassigned'] = 0;
} }
/* Check for duplicate usernames */ /* Check for duplicate usernames */
$res = hesk_dbQuery("SELECT `id`,`isadmin`,`categories`,`heskprivileges` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` WHERE `user` = '" . hesk_dbEscape($myuser['user']) . "' LIMIT 1"); $res = hesk_dbQuery("SELECT `id`,`isadmin`,`categories`,`heskprivileges` FROM `" . hesk_dbEscape($hesk_settings['db_pfix']) . "users` WHERE `user` = '" . hesk_dbEscape($myuser['user']) . "' LIMIT 1");
if (hesk_dbNumRows($res) == 1) { if (hesk_dbNumRows($res) == 1) {
@ -699,7 +700,7 @@ function hesk_validateUserInfo($pass_required = 1, $redirect_to = './manage_user
$myuser['email'] = hesk_validateEmail(hesk_POST('email'), 'ERR', 0) or $hesk_error_buffer .= '<li>' . $hesklang['enter_valid_email'] . '</li>'; $myuser['email'] = hesk_validateEmail(hesk_POST('email'), 'ERR', 0) or $hesk_error_buffer .= '<li>' . $hesklang['enter_valid_email'] . '</li>';
$myuser['user'] = hesk_input(hesk_POST('user')) or $hesk_error_buffer .= '<li>' . $hesklang['enter_username'] . '</li>'; $myuser['user'] = hesk_input(hesk_POST('user')) or $hesk_error_buffer .= '<li>' . $hesklang['enter_username'] . '</li>';
$myuser['isadmin'] = hesk_POST('template') == '1' ? 1 : 0; $myuser['isadmin'] = hesk_POST('template') == '1' ? 1 : 0;
$myuser['template'] = hesk_POST('template'); $myuser['template'] = hesk_POST('reset-permission-template') === '1' ? -1 : hesk_POST('template');
$myuser['signature'] = hesk_input(hesk_POST('signature')); $myuser['signature'] = hesk_input(hesk_POST('signature'));
$myuser['autoassign'] = hesk_POST('autoassign') == 'Y' ? 1 : 0; $myuser['autoassign'] = hesk_POST('autoassign') == 'Y' ? 1 : 0;
$myuser['active'] = empty($_POST['active']) ? 0 : 1; $myuser['active'] = empty($_POST['active']) ? 0 : 1;

@ -162,9 +162,10 @@ function hesk_profile_tab($session_array = 'new', $is_profile_page = true, $acti
if (!$is_profile_page) { if (!$is_profile_page) {
?> ?>
<div role="tabpanel" class="tab-pane fade" id="permissions"> <div role="tabpanel" class="tab-pane fade" id="permissions">
<?php if ($_SESSION['isadmin']): ?>
<div class="form-group"> <div class="form-group">
<label for="administrator" <label for="administrator"
class="col-md-3 control-label"><?php echo $hesklang['permission_template_colon']; ?></label> class="col-md-3 control-label"><?php echo $hesklang['permission_group']; ?></label>
<div class="col-md-9"> <div class="col-md-9">
<?php <?php
@ -181,10 +182,17 @@ function hesk_profile_tab($session_array = 'new', $is_profile_page = true, $acti
$selected = $_SESSION[$session_array]['permission_template'] == '-1' ? 'selected' : ''; $selected = $_SESSION[$session_array]['permission_template'] == '-1' ? 'selected' : '';
echo '<option value="-1" ' . $selected . '>' . htmlspecialchars($hesklang['custom']) . '</option>'; echo '<option value="-1" ' . $selected . '>' . htmlspecialchars($hesklang['custom']) . '</option>';
echo '</select>'; echo '</select>';
outputCheckboxJavascript(); outputCheckboxJavascript($action);
?> ?>
</div> </div>
</div> </div>
<?php elseif ($action == 'update-user'): ?>
<input type="hidden" name="permission-tpl"
value="<?php echo $_SESSION[$session_array]['permission_template']; ?>" />
<div id="changed-group-warning" class="alert alert-warning" style="display: none">
[!] <b>Warning:</b> Changing a users categories / features will reset their permission group!
</div>
<?php endif; ?>
<div id="options"> <div id="options">
<div class="form-group"> <div class="form-group">
<label for="categories[]" <label for="categories[]"
@ -535,7 +543,7 @@ function hesk_profile_tab($session_array = 'new', $is_profile_page = true, $acti
<?php <?php
} // END hesk_profile_tab() } // END hesk_profile_tab()
function outputCheckboxJavascript() function outputCheckboxJavascript($action)
{ {
global $hesk_settings, $hesklang; global $hesk_settings, $hesklang;
@ -595,6 +603,8 @@ function outputCheckboxJavascript()
} }
function setTemplateToCustom() { function setTemplateToCustom() {
$('#permission-tpl').val('-1'); $('#permission-tpl').val('-1');
" . ($_SESSION['is_admin'] && $action == 'update-user' ? '' : "$('#changed-group-warning').show();") . "
} }
</script>"; </script>";
} }

@ -297,9 +297,9 @@ $mails = mfh_get_mail_headers_for_dropdown($_SESSION['id'], $hesk_settings, $hes
$markup .= ' $markup .= '
<li class="' . $active . '"> <li class="' . $active . '">
<a href="manage_permission_templates.php"> <a href="manage_permission_groups.php">
<i class="fa fa-fw fa-users" ' . $iconDisplay . '></i> <i class="fa fa-fw fa-users" ' . $iconDisplay . '></i>
<span>' . $hesklang['permission_templates'] . '</span> <span>' . $hesklang['manange_permission_groups_menu'] . '</span>
</a> </a>
</li>'; </li>';
} }

@ -1835,39 +1835,13 @@ $hesklang['manager'] = 'Manager';
$hesklang['manager_updated'] = 'Category manager has been updated.'; $hesklang['manager_updated'] = 'Category manager has been updated.';
$hesklang['can_set_manager'] = 'Can set category managers'; $hesklang['can_set_manager'] = 'Can set category managers';
$hesklang['no_manager'] = 'No manager'; $hesklang['no_manager'] = 'No manager';
$hesklang['manage_permission_templates'] = 'Manage Permission Templates';
$hesklang['manage_permission_templates_help'] = 'Here you can create and edit permission templates. These templates will appear when creating/editing a user.
Please note that if you change the permission template\'s settings, it will NOT change the permissions of any users that are set to this permission template.';
$hesklang['number_of_users'] = 'Number of Users'; $hesklang['number_of_users'] = 'Number of Users';
$hesklang['actions'] = 'Actions'; $hesklang['actions'] = 'Actions';
$hesklang['view_permissions_for_this_template'] = 'View/edit permissions for this template';
$hesklang['permission'] = 'Permission';
$hesklang['permissions_for_template'] = 'Permissions for template <code>%s</code>'; // %s template name
$hesklang['template_has_admin_privileges'] = 'Permission template has admin privileges. Click to set as non-admin';
$hesklang['template_has_no_admin_privileges'] = 'Permission template does not have admin privileges. Click to set as admin';
$hesklang['staff_cannot_be_admin'] = 'Staff permission group does not have admin access, and cannot be set as an admin'; $hesklang['staff_cannot_be_admin'] = 'Staff permission group does not have admin access, and cannot be set as an admin';
$hesklang['admin_cannot_be_staff'] = 'Administrator permission group has admin access, and cannot be set as non-admin'; $hesklang['admin_cannot_be_staff'] = 'Administrator permission group has admin access, and cannot be set as non-admin';
$hesklang['template_is_admin_cannot_change'] = 'The permission group currently has admin privileges, so you cannot set specific permissions here.'; $hesklang['template_is_admin_cannot_change'] = 'The permission group currently has admin privileges, so you cannot set specific permissions here.';
$hesklang['permission_template_updated'] = 'Permission template has been updated!';
$hesklang['create_new_template'] = 'Create new permission template';
$hesklang['create_new_template_title'] = 'Create New Permission Template'; // same as create_new_template, but in Title Case
$hesklang['template_name'] = 'Template name';
$hesklang['template_name_required'] = 'Template name required.';
$hesklang['you_must_select_a_category'] = 'You must select at least one category.'; $hesklang['you_must_select_a_category'] = 'You must select at least one category.';
$hesklang['you_must_select_a_feature'] = 'You must select at least one feature.'; $hesklang['you_must_select_a_feature'] = 'You must select at least one feature.';
$hesklang['permission_template_error'] = 'The permission template could not be completed due to the following error(s): %s'; // %s: error list
$hesklang['template_created'] = 'Permission template successfully created!';
$hesklang['cannot_delete_admin_or_staff'] = 'The <b>Administrator</b> and <b>Staff</b> permission groups cannot be deleted!';
$hesklang['no_templates_were_deleted'] = 'No templates were deleted!';
$hesklang['permission_template_deleted'] = 'Permission template deleted!';
$hesklang['permission_template_now_admin'] = 'Permission template is now designed as an admin template';
$hesklang['permission_template_no_longer_admin'] = 'Permission template is no longer designated as an admin template';
$hesklang['cannot_change_admin_staff'] = 'You cannot change admin/non-admin status for the <b>Administrator</b> and <b>Staff</b> templates!';
$hesklang['permission_tpl_man'] = 'Manage permission templates'; // Menu link
$hesklang['permission_templates'] = 'Permission Templates';
$hesklang['can_man_permission_tpl'] = 'Can manage permission templates';
$hesklang['permission_template_colon'] = 'Permission Template';
$hesklang['permission_template'] = 'Permission Template';
$hesklang['custom'] = 'Custom'; $hesklang['custom'] = 'Custom';
// ADDED OR MODIFIED IN Mods for HESK 2.4.0 // ADDED OR MODIFIED IN Mods for HESK 2.4.0
@ -2190,5 +2164,28 @@ $hesklang['copied_to_clipboard'] = 'Copied to clipboard';
// If your language is NOT in the supported langauges, leave 'en' // If your language is NOT in the supported langauges, leave 'en'
$hesklang['CALENDAR_LANGUAGE']='en'; $hesklang['CALENDAR_LANGUAGE']='en';
$hesklang['manage_permission_groups'] = 'Manage Permission Groups';
$hesklang['manage_permission_groups_help'] = 'Here you can create and edit permission groups. These groups will appear when creating/editing a user.
When editing a permission group, all users assigned to this group will also have their permissions updated accordingly.';
$hesklang['view_permissions_for_this_group'] = 'View/edit permissions for this group';
$hesklang['permission'] = 'Permission';
$hesklang['permissions_for_group'] = 'Permissions for group <code>%s</code>'; // %s template name
$hesklang['permission_group_updated'] = 'Permission group has been updated!';
$hesklang['create_new_group'] = 'Create new permission group';
$hesklang['create_new_group_title'] = 'Create New Permission Group'; // same as create_new_template, but in Title Case
$hesklang['group_name'] = 'Group name';
$hesklang['group_name_required'] = 'Group name required.';
$hesklang['permission_group_error'] = 'The permission group could not be saved due to the following error(s): %s'; // %s: error list
$hesklang['group_created'] = 'Permission group successfully created!';
$hesklang['cannot_delete_admin_or_staff'] = 'The <b>Administrator</b> and <b>Staff</b> permission groups cannot be deleted!';
$hesklang['no_groups_were_deleted'] = 'No groups were deleted!';
$hesklang['permission_group_deleted'] = 'Permission group deleted!';
$hesklang['manange_permission_groups_menu'] = 'Permission groups'; // Menu link
$hesklang['permission_groups'] = 'Permission Groups';
$hesklang['can_man_permission_tpl'] = 'Can manage permission groups';
$hesklang['permission_group_colon'] = 'Permission Group:';
$hesklang['permission_group'] = 'Permission Group';
// DO NOT CHANGE BELOW // DO NOT CHANGE BELOW
if (!defined('IN_SCRIPT')) die('PHP syntax OK!'); if (!defined('IN_SCRIPT')) die('PHP syntax OK!');

Loading…
Cancel
Save