diff --git a/plugins/management/acl/class_ACLsAssignmentAttribute.inc b/plugins/management/acl/class_ACLsAssignmentAttribute.inc index 09d7913012f0950fb34e67ee8a7603caa2ff48b7..07d05c54a45006a8ddaecf586cfa0e12b7615dc2 100755 --- a/plugins/management/acl/class_ACLsAssignmentAttribute.inc +++ b/plugins/management/acl/class_ACLsAssignmentAttribute.inc @@ -29,7 +29,7 @@ class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute /* Convert text value to displayable array value */ sort($value['members']); static $nbShown = 4; - $members = join(', ', array_slice($value['members'], 0, $nbShown)); + $members = implode(', ', array_slice($value['members'], 0, $nbShown)); if (count($value['members']) > $nbShown) { $members .= sprintf(_(', and %d others'), (count($value['members']) - $nbShown)); } @@ -39,7 +39,7 @@ class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute function readValue ($value) { - $acl = explode(':', $value); + $acl = explode(':', (string) $value); return [$acl[0], [ 'scope' => $acl[1], 'role' => base64_decode($acl[2]), @@ -53,10 +53,10 @@ class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute { return $key. ':'.$value['scope']. - ':'.base64_encode($value['role']). - ':'.join(',', array_map('base64_encode', $value['members'])). - ':'.base64_encode($value['userfilter']). - ':'.base64_encode($value['targetfilter']); + ':'.base64_encode((string) $value['role']). + ':'.implode(',', array_map('base64_encode', $value['members'])). + ':'.base64_encode((string) $value['userfilter']). + ':'.base64_encode((string) $value['targetfilter']); } function foreignKeyUpdate ($oldvalue, $newvalue, array $source) @@ -64,26 +64,26 @@ class ACLsAssignmentAttribute extends DialogOrderedArrayAttribute foreach ($this->value as $key => &$value) { if ($source['FIELD'] == 'dn') { if ($newvalue === NULL) { - if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $value['role'])) { + if (preg_match('/'.preg_quote((string) $oldvalue, '/').'$/', (string) $value['role'])) { unset($this->value[$key]); } foreach ($value['members'] as $member_key => $member) { - if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $member)) { + if (preg_match('/'.preg_quote((string) $oldvalue, '/').'$/', (string) $member)) { unset($value['members'][$member_key]); } } unset($member); } elseif ($source['MODE'] == 'move') { - $value['role'] = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $value['role']); + $value['role'] = preg_replace('/'.preg_quote((string) $oldvalue, '/').'$/', $newvalue, (string) $value['role']); foreach ($value['members'] as &$member) { - $member = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $member); + $member = preg_replace('/'.preg_quote((string) $oldvalue, '/').'$/', $newvalue, $member); } unset($member); } elseif ($source['MODE'] == 'copy') { /* Copied members are added */ foreach ($value['members'] as $member) { - if (preg_match('/'.preg_quote($oldvalue, '/').'$/', $member)) { - $value['members'][] = preg_replace('/'.preg_quote($oldvalue, '/').'$/', $newvalue, $member); + if (preg_match('/'.preg_quote((string) $oldvalue, '/').'$/', (string) $member)) { + $value['members'][] = preg_replace('/'.preg_quote((string) $oldvalue, '/').'$/', $newvalue, (string) $member); } } } diff --git a/plugins/management/acl/class_aclManagement.inc b/plugins/management/acl/class_aclManagement.inc index 857fa2c3f203aca922733397473ba28e6fcda067..73d1e3550c84b3e61eb5e6a2299b360ed3f1b57e 100755 --- a/plugins/management/acl/class_aclManagement.inc +++ b/plugins/management/acl/class_aclManagement.inc @@ -51,7 +51,7 @@ class aclAssignmentCreationDialog extends simplePlugin _('Dn'), _('DN you wish to add assignments for'), 'baseDn', TRUE, $config->current['BASE'], 'aclMode', - '/^([^=,]+=[^=,]+,)+'.preg_quote($config->current['BASE'], '/').'$/', + '/^([^=,]+=[^=,]+,)+'.preg_quote((string) $config->current['BASE'], '/').'$/', 'ou=people,'.$config->current['BASE'] ), ] diff --git a/plugins/management/aclrole/class_aclEditionDialog.inc b/plugins/management/aclrole/class_aclEditionDialog.inc index 9dc188993ec930009e0c7561c39ac59c249dbdc3..b31b4bb3f3e1f0fa211699a3f7bd86e7ae71f718 100755 --- a/plugins/management/aclrole/class_aclEditionDialog.inc +++ b/plugins/management/aclrole/class_aclEditionDialog.inc @@ -201,7 +201,7 @@ class ACLEditionDialog implements FusionDirectoryDialog if (empty($summary)) { $summary = '<i>'._('No ACL settings for this category').'</i>'; } else { - $summary = sprintf(_('ACL for these objects: %s'), join(', ', $summary)); + $summary = sprintf(_('ACL for these objects: %s'), implode(', ', $summary)); } $action = '<input class="center" type="image" src="geticon.php?context=actions&icon=document-edit&size=16" @@ -233,7 +233,7 @@ class ACLEditionDialog implements FusionDirectoryDialog if (!isset($this->aclContents[$key][0])) { $this->aclContents[$key][0] = ''; } - if ((strtolower($class) === 'archivedobject') && (strtolower($this->aclObject) !== 'archivedobject')) { + if ((strtolower((string) $class) === 'archivedobject') && (strtolower((string) $this->aclObject) !== 'archivedobject')) { $attrs = []; $rights = [ 'create' => TRUE, diff --git a/plugins/management/aclrole/class_aclRole.inc b/plugins/management/aclrole/class_aclRole.inc index 64d9ecb51cd6ab7e57c20bfc0449a4ff6ae0fd1c..edc0db384c2efa6ae98a3e2132f8fe11a04a48ff 100755 --- a/plugins/management/aclrole/class_aclRole.inc +++ b/plugins/management/aclrole/class_aclRole.inc @@ -41,7 +41,7 @@ class ACLsAttribute extends DialogOrderedArrayAttribute function readValue ($value) { - $acl = explode(':', $value, 2); + $acl = explode(':', (string) $value, 2); return [$acl[0], acl::extractACL($acl[1])]; } diff --git a/plugins/management/groups/class_GroupContentColumn.inc b/plugins/management/groups/class_GroupContentColumn.inc index 1731c6274e87a4933e6a7c64ef0a93e5129ebc0e..8712ba69b1896a69243f4d85dcdf90c434ea5b05 100755 --- a/plugins/management/groups/class_GroupContentColumn.inc +++ b/plugins/management/groups/class_GroupContentColumn.inc @@ -35,7 +35,7 @@ class GroupContentColumn extends Column } $result = ''; - for ($i = 0; $i < strlen($types); $i++) { + for ($i = 0; $i < strlen((string) $types); $i++) { if ($types[$i] == 'I') { continue; } @@ -44,7 +44,7 @@ class GroupContentColumn extends Column $result .= '<img src="'.htmlescape($infos['icon']).'"'. ' alt="'.htmlescape($infos['name']).'"'. ' title="'.htmlescape($infos['name']).'"/>'; - } catch (NonExistingObjectTypeException $e) { + } catch (NonExistingObjectTypeException) { continue; } } diff --git a/plugins/management/groups/class_GroupContentFilterElement.inc b/plugins/management/groups/class_GroupContentFilterElement.inc index e2289fcae4d3a4af7f7f90985855ccfc74b31610..40ef41c548414665cfb1c2544e95a5f37487bfbb 100755 --- a/plugins/management/groups/class_GroupContentFilterElement.inc +++ b/plugins/management/groups/class_GroupContentFilterElement.inc @@ -40,7 +40,7 @@ class GroupContentFilterElement extends FilterElement 'infos' => $infos, 'checked' => FALSE, ]; - } catch (NonExistingObjectTypeException $e) { + } catch (NonExistingObjectTypeException) { continue; } } @@ -74,14 +74,14 @@ class GroupContentFilterElement extends FilterElement public function getFilters (string $type, array &$filters): bool { if (strtoupper($type) == 'OGROUP') { - foreach ($this->types as $type => $infos) { + foreach ($this->types as $infos) { if ($infos['checked']) { $filters[] = $infos['filter']; } } } elseif (!$this->types['user']['checked']) { /* Skip POSIX groups and roles if users are unchecked and at least one type is checked */ - foreach ($this->types as $type => $infos) { + foreach ($this->types as $infos) { if ($infos['checked']) { return TRUE; } diff --git a/plugins/management/groups/class_GroupMembersAttribute.inc b/plugins/management/groups/class_GroupMembersAttribute.inc index e2aac3c29a1ec9ff19b6f3db44ce196425961412..420849ba68cce4ddb88128be35cfb68642cdba29 100755 --- a/plugins/management/groups/class_GroupMembersAttribute.inc +++ b/plugins/management/groups/class_GroupMembersAttribute.inc @@ -44,7 +44,7 @@ class GroupMembersAttribute extends ObjectsAttribute if ($type === FALSE) { return 'I'; } else { - return $this->typeToCodeMap[strtolower($type)]; + return $this->typeToCodeMap[strtolower((string) $type)]; } } @@ -56,7 +56,7 @@ class GroupMembersAttribute extends ObjectsAttribute $codes = array_unique( array_merge( array_map([$this, 'typeToCode'], array_unique($this->types)), - str_split(preg_replace('/[^a-z]/i', '', implode('', $this->childTypes))) + str_split((string) preg_replace('/[^a-z]/i', '', implode('', $this->childTypes))) ) ); sort($codes); diff --git a/plugins/management/groups/class_ogroup.inc b/plugins/management/groups/class_ogroup.inc index 9dc7599765e4ca00f47e58c4b72438698d30e1d6..570493ccdf510b9e043e5e8f90706c403c27ed43 100755 --- a/plugins/management/groups/class_ogroup.inc +++ b/plugins/management/groups/class_ogroup.inc @@ -153,7 +153,7 @@ class ogroup extends simplePlugin try { $ws_dns = array_keys(objects::ls(['workstation','terminal'])); $res = objects::ls('ogroup', ['member' => '*'], NULL, '(&(member=*)(|(gosaGroupObjects=[W])(gosaGroupObjects=[T])))'); - } catch (NonExistingObjectTypeException $e) { + } catch (NonExistingObjectTypeException) { /* If workstation/terminal objectType is not existing, systems plugin is missing so there are no systems */ $ws_dns = []; $res = []; @@ -226,12 +226,12 @@ class ogroup extends simplePlugin $addingMembers = array_diff($userMembers, $savedMembers); $removingMembers = array_diff($savedMembers, $userMembers); foreach ($addingMembers as $dn) { - if (strpos($ui->get_permissions($dn, 'user/userRoles', 'groupsMembership', $this->acl_skip_write()), 'w') === FALSE) { + if (!str_contains((string) $ui->get_permissions($dn, 'user/userRoles', 'groupsMembership', $this->acl_skip_write()), 'w')) { $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($dn, 'groupsMembership')); } } foreach ($removingMembers as $dn) { - if (strpos($ui->get_permissions($dn, 'user/userRoles', 'groupsMembership', $this->acl_skip_write()), 'w') === FALSE) { + if (!str_contains((string) $ui->get_permissions($dn, 'user/userRoles', 'groupsMembership', $this->acl_skip_write()), 'w')) { $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($dn, 'groupsMembership')); } } diff --git a/plugins/management/groups/class_roleGeneric.inc b/plugins/management/groups/class_roleGeneric.inc index 399d0d6968f9b0516e7c918b79634a4b473ae69f..451e5478d126c23076f2de3d03aa32ec08d6429b 100755 --- a/plugins/management/groups/class_roleGeneric.inc +++ b/plugins/management/groups/class_roleGeneric.inc @@ -124,12 +124,12 @@ class roleGeneric extends simplePlugin $addingOccupants = array_diff($this->roleOccupant, $savedOccupants); $removingOccupants = array_diff($savedOccupants, $this->roleOccupant); foreach ($addingOccupants as $dn) { - if (strpos($ui->get_permissions($dn, 'user/userRoles', 'rolesMembership', $this->acl_skip_write()), 'w') === FALSE) { + if (!str_contains((string) $ui->get_permissions($dn, 'user/userRoles', 'rolesMembership', $this->acl_skip_write()), 'w')) { $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($dn, 'rolesMembership')); } } foreach ($removingOccupants as $dn) { - if (strpos($ui->get_permissions($dn, 'user/userRoles', 'rolesMembership', $this->acl_skip_write()), 'w') === FALSE) { + if (!str_contains((string) $ui->get_permissions($dn, 'user/userRoles', 'rolesMembership', $this->acl_skip_write()), 'w')) { $errors[] = new SimplePluginPermissionError($this, msgPool::permModify($dn, 'rolesMembership')); } } diff --git a/plugins/management/groups/tabs_ogroups.inc b/plugins/management/groups/tabs_ogroups.inc index f600dd382da1a1ff6d5c0afd6d0b685380331fa4..e9842eee50f7667fdf83ce8fc254b99a86418b53 100755 --- a/plugins/management/groups/tabs_ogroups.inc +++ b/plugins/management/groups/tabs_ogroups.inc @@ -43,7 +43,7 @@ class ogrouptabs extends simpleTabs_noSpecial return; } $this->groupObjects = $gosaGroupObjects; - $objects = preg_replace('/[\[\]]/', '', $gosaGroupObjects); + $objects = preg_replace('/[\[\]]/', '', (string) $gosaGroupObjects); $tabs = []; if (strlen($objects)) { @@ -60,20 +60,20 @@ class ogrouptabs extends simpleTabs_noSpecial } $otype = ogroup::$objectTypes[$objects[$i]]; $otabs = []; - if (isset($config->data['TABS'][strtoupper($otype).'TABS'])) { + if (isset($config->data['TABS'][strtoupper((string) $otype).'TABS'])) { $otabs = array_uintersect( $dtabs, - $config->data['TABS'][strtoupper($otype).'TABS'], + $config->data['TABS'][strtoupper((string) $otype).'TABS'], function ($a, $b) { - return strcmp($a['CLASS'], $b['CLASS']); + return strcmp((string) $a['CLASS'], (string) $b['CLASS']); } ); } - if (isset($config->data['TABS']['OGROUP-'.strtoupper($otype).'TABS'])) { + if (isset($config->data['TABS']['OGROUP-'.strtoupper((string) $otype).'TABS'])) { $otabs = array_merge( $otabs, - $config->data['TABS']['OGROUP-'.strtoupper($otype).'TABS'] + $config->data['TABS']['OGROUP-'.strtoupper((string) $otype).'TABS'] ); } if ($tabs === FALSE) { @@ -84,7 +84,7 @@ class ogrouptabs extends simpleTabs_noSpecial $otabs, function ($a, $b) { - return strcmp($a['CLASS'], $b['CLASS']); + return strcmp((string) $a['CLASS'], (string) $b['CLASS']); } ); } @@ -152,7 +152,7 @@ class ogrouptabs extends simpleTabs_noSpecial $tabList = parent::getPotentialTabList($type, $infos); $prefix = strtoupper($type).'-'; foreach ($config->data['TABS'] as $tabgroup => $tabs) { - if (strpos($tabgroup, $prefix) === 0) { + if (str_starts_with((string) $tabgroup, $prefix)) { $tabList = array_merge($tabList, $tabs); } } diff --git a/plugins/management/tasks/class_tasksColumn.inc b/plugins/management/tasks/class_tasksColumn.inc index 191daf42c45042d669c600ae6c618590761e1992..5d5ca9605678c8d62035aed43cc8f8d52549c536 100755 --- a/plugins/management/tasks/class_tasksColumn.inc +++ b/plugins/management/tasks/class_tasksColumn.inc @@ -30,45 +30,26 @@ class TasksColumn extends Column if ($value == '') { return ' '; } else { - switch ($this->attributes[0]) { - case 'fdTasksStatus': - return static::filterStatus($value); - - case 'fdTasksGranularStatus': - return static::filterStatus($value); - - // This case needs optimization - case 'fdTasksMailObject': - return "Mail Object"; - - case 'fdTasksScheduleDate': - return static::generateDateFormat($value); - - case 'fdTasksGranularSchedule': - return static::generateDateFormat($value); - - case 'fdTasksGranularMaster': - return static::generateMasterTaskName($value); - - default: - return parent::renderSingleValue($entry, $value); - } + return match ($this->attributes[0]) { + 'fdTasksStatus' => static::filterStatus($value), + 'fdTasksGranularStatus' => static::filterStatus($value), + 'fdTasksMailObject' => "Mail Object", + 'fdTasksScheduleDate' => static::generateDateFormat($value), + 'fdTasksGranularSchedule' => static::generateDateFormat($value), + 'fdTasksGranularMaster' => static::generateMasterTaskName($value), + default => parent::renderSingleValue($entry, $value), + }; } } static function filterStatus (string $status = NULL): string { // A call towards a status map would be interesting here. - switch ($status) { - case "1" : - return "Scheduled"; - - case "2" : - return "Completed"; - - default : - return $status; - } + return match ($status) { + "1" => "Scheduled", + "2" => "Completed", + default => $status, + }; } static function generateDateFormat ($value) : string @@ -82,7 +63,7 @@ class TasksColumn extends Column static function generateMasterTaskName ($value) : string { // remove 'dn' keeping only 'cn' - $rmDn = preg_replace('/(?=,).*/', '', $value); + $rmDn = preg_replace('/(?=,).*/', '', (string) $value); // only take the cn without dc preg_match('/cn=(.*)/', $rmDn, $matches); return $matches[1]; diff --git a/plugins/management/users/class_userManagement.inc b/plugins/management/users/class_userManagement.inc index 454e7a03b64d994edc4a6b26a53009760ae30751..4429886086b64f18995aebe97631f5e1fd767c43 100755 --- a/plugins/management/users/class_userManagement.inc +++ b/plugins/management/users/class_userManagement.inc @@ -76,7 +76,7 @@ class userManagement extends management $disallowed = []; $allowed = []; foreach ($action['targets'] as $dn) { - if (strpos($ui->get_permissions($dn, 'user/user', 'userLock'), 'w') === FALSE) { + if (!str_contains((string) $ui->get_permissions($dn, 'user/user', 'userLock'), 'w')) { $disallowed[] = $dn; } else { $allowed[] = $dn;