php8 compat fixes for groups section

This commit is contained in:
onli 2021-05-13 17:57:07 +02:00
parent 9f4153dbc4
commit 28c199c7aa
3 changed files with 21 additions and 10 deletions

View File

@ -22,9 +22,10 @@ if (isset($_POST['DELETE_YES']) && serendipity_checkFormToken()) {
if (isset($_POST['SAVE_NEW']) && serendipity_checkFormToken()) {
$serendipity['POST']['group'] = serendipity_addGroup($serendipity['POST']['name']);
$perms = serendipity_getAllPermissionNames();
serendipity_updateGroupConfig($serendipity['POST']['group'], $perms, $serendipity['POST'], false, $serendipity['POST']['forbidden_plugins'], $serendipity['POST']['forbidden_hooks']);
serendipity_updateGroupConfig($serendipity['POST']['group'], $perms, $serendipity['POST'], false, $serendipity['POST']['forbidden_plugins'] ?? null, $serendipity['POST']['forbidden_hooks'] ?? null);
$data['save_new'] = true;
$data['group_id'] = $serendipity['POST']['group'];
$group = serendipity_fetchGroup($serendipity['POST']['group']);
$data['group'] = $group;
}
@ -70,11 +71,11 @@ if ($serendipity['GET']['adminAction'] == 'edit' || isset($_POST['NEW']) || $ser
$data['from'] = $from;
$allusers = serendipity_fetchUsers();
$users = serendipity_getGroupUsers($from['id']);
$users = serendipity_getGroupUsers($from['id'] ?? null);
$selected = array();
foreach((array)$users AS $user) {
$selected[$user['id']] = true;
$selected[$user['id'] ?? null] = true;
}
$data['selected'] = $selected;
$data['allusers'] = $allusers;
@ -84,9 +85,15 @@ if ($serendipity['GET']['adminAction'] == 'edit' || isset($_POST['NEW']) || $ser
$data['perms'] = $perms;
foreach($perms AS $perm => $userlevels) {
if (defined('PERMISSION_' . strtoupper($perm))) {
list($name, $note) = explode(":", constant('PERMISSION_' . strtoupper($perm)));
$data['perms'][$perm]['permission_name'] = $name;
$data['perms'][$perm]['permission_note'] = $note;
if (stripos(':', constant('PERMISSION_' . strtoupper($perm))) !== false) {
list($name, $note) = explode(":", constant('PERMISSION_' . strtoupper($perm)));
$data['perms'][$perm]['permission_name'] = $name;
$data['perms'][$perm]['permission_note'] = $note;
} else {
# in case a permission has not the right value, that it misses the :
$data['perms'][$perm]['permission_name'] = constant('PERMISSION_' . strtoupper($perm));
$data['perms'][$perm]['permission_note'] = '';
}
} else {
$data['perms'][$perm]['permission_name'] = $perm;
}
@ -130,6 +137,10 @@ if (! isset($data['save_new'])) { $data['save_new'] = null; }
if (! isset($data['save_edit'])) { $data['save_edit'] = null; }
if (! isset($data['edit'])) { $data['edit'] = null; }
if (! isset($data['new'])) { $data['new'] = null; }
if (! isset($data['start'])) { $data['start'] = null; }
if (! isset($data['indent'])) { $data['indent'] = ''; }
if (! isset($data['in_indent'])) { $data['in_indent'] = false; }
if (! isset($data['enablePluginACL'])) { $data['enablePluginACL'] = null; }
echo serendipity_smarty_show('admin/groups.inc.tpl', $data);

View File

@ -1630,7 +1630,7 @@ function serendipity_updateGroupConfig($groupid, &$perms, &$values, $isNewPriv =
}
$storage =& serendipity_fetchGroup($groupid);
serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}groupconfig WHERE id = " . (int)$groupid);
foreach ($perms AS $perm => $userlevels) {
if (substr($perm, 0, 2) == 'f_') {
@ -1688,7 +1688,7 @@ function serendipity_updateGroupConfig($groupid, &$perms, &$values, $isNewPriv =
serendipity_db_query("UPDATE {$serendipity['dbPrefix']}groups SET name = '" . serendipity_db_escape_string($values['name']) . "' WHERE id = " . (int)$groupid);
if (is_array($values['members'])) {
if (is_array($values['members'] ?? null)) {
serendipity_db_query("DELETE FROM {$serendipity['dbPrefix']}authorgroups WHERE groupid = " . (int)$groupid);
foreach($values['members'] AS $member) {
serendipity_db_query(

View File

@ -38,7 +38,7 @@
<div class="clearfix odd form_field has_info">
<label for="group_name">{$CONST.NAME} <button class="toggle_info button_link" type="button" data-href="#groupName_info"><span class="icon-info-circled" aria-hidden="true"></span><span class="visuallyhidden"> {$CONST.MORE}</span></button></label>
<span id="groupName_info" class="field_info additional_info">{$CONST.GROUP_NAME_DESC}</span>
<input id="group_name" name="serendipity[name]" type="text" value="{$from.name|escape}">
<input id="group_name" name="serendipity[name]" type="text" value="{if isset($from.name)}{$from.name|escape}{/if}">
</div>
<div class="clearfix even form_select">
@ -80,7 +80,7 @@
<div><var class="perm_name">[{$perm.permission_name|escape}]</var>: <span class="perm_status">{(isset($from.{$perm@key}) && $from.{$perm@key} == "true") ? $CONST.YES : $CONST.NO}</span></div>
{else}
<div class="form_check">
<input id="{{$perm@key}|escape}" name="serendipity[{{$perm@key}|escape}]" type="checkbox" value="true"{if isset({$from.{$perm@key}}) && {$from.{$perm@key}} == "true"} checked="checked"{/if}>
<input id="{{$perm@key}|escape}" name="serendipity[{{$perm@key}|escape}]" type="checkbox" value="true"{if {$perm@key}|array_key_exists:$from && {$from.{$perm@key}} === "true"} checked="checked"{/if}>
<label for="{{$perm@key}|escape}">{$perm.permission_note|escape} <var class="perm_name">[{$perm.permission_name|escape}]</var></label>
</div>
{/if}