From 2c0b6e2b333bcfa40d719daab999d9987941086a Mon Sep 17 00:00:00 2001 From: Alexander Schneider Date: Thu, 25 May 2023 16:10:07 +0200 Subject: [PATCH] Bump version 2.2.21 --- composer.json | 2 +- package.json | 2 +- readme.txt | 4 +- src/Access/AccessHandler.php | 7 ++- src/Command/ObjectCommand.php | 2 +- src/Controller/Backend/BackendController.php | 8 --- src/Controller/ControllerFactory.php | 1 - src/Controller/Frontend/TermController.php | 2 +- src/File/ApacheFileProtection.php | 4 +- src/Form/FormHelper.php | 2 +- .../ObjectMembershipWithMapHandler.php | 6 +-- src/Setup/Database/Column.php | 3 +- src/Setup/Database/DatabaseHandler.php | 3 +- src/Setup/Update/DatabaseUpdate7.php | 51 +++++++++++++++++++ src/User/UserHandler.php | 14 +++-- src/UserAccessManager.php | 4 +- src/UserGroup/UserGroupAssignmentHandler.php | 2 +- src/View/AdminSettings.php | 2 +- src/View/GroupInfo.php | 2 +- src/View/UserGroups/UserGroupList.php | 2 +- .../Backend/BackendControllerTest.php | 4 -- tests/Unit/Controller/ControllerTest.php | 4 +- .../Setup/Database/DatabaseHandlerTest.php | 4 +- user-access-manager.php | 2 +- 24 files changed, 89 insertions(+), 48 deletions(-) create mode 100644 src/Setup/Update/DatabaseUpdate7.php diff --git a/composer.json b/composer.json index 020323ac..0a71ddec 100644 --- a/composer.json +++ b/composer.json @@ -3,7 +3,7 @@ "description": "User Access Manager plugin for Wordpress", "type": "wordpress-plugin", "license": "GPL-2.0", - "version": "2.2.20", + "version": "2.2.21", "authors": [ { "name": "Alexander Schneider", diff --git a/package.json b/package.json index 112aa8c7..3d866880 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "user-access-manager", - "version": "2.2.20", + "version": "2.2.21", "description": "[![Build Status](https://travis-ci.org/GM-Alex/user-access-manager.svg)](https://travis-ci.org/GM-Alex/user-access-manager)", "main": "index.js", "directories": { diff --git a/readme.txt b/readme.txt index 07264f49..a9396d53 100644 --- a/readme.txt +++ b/readme.txt @@ -3,7 +3,7 @@ Contributors: GM_Alex Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=1947052 Tags: admin, access, member area, members, member, member access, page, pages, post, posts, private, privacy, restrict, user, user access manager, user management Requires at least: 4.7 -Tested up to: 6.1 +Tested up to: 6.2 Stable tag: 2.2.20 With the "User Access Manager"-plugin you can manage the access to your posts, pages and files. @@ -63,6 +63,8 @@ Here you found the changes in each version. Version Date Changes + 2.2.21 2023/05/25 Adjust database compatibility #368 + 2.2.20 2023/03/08 Fix warning 2.2.19 2022/11/18 Add try out link diff --git a/src/Access/AccessHandler.php b/src/Access/AccessHandler.php index 7d3762de..77a38bc3 100644 --- a/src/Access/AccessHandler.php +++ b/src/Access/AccessHandler.php @@ -23,7 +23,6 @@ use UserAccessManager\Object\ObjectHandler; use UserAccessManager\User\UserHandler; use UserAccessManager\UserGroup\AbstractUserGroup; -use UserAccessManager\UserGroup\DynamicUserGroup; use UserAccessManager\UserGroup\UserGroupHandler; use UserAccessManager\UserGroup\UserGroupTypeException; use UserAccessManager\Wrapper\Wordpress; @@ -140,11 +139,11 @@ private function isAdmin(?bool $isAdmin): bool /** * Returns the user user groups filtered by the write access. - * @param null|bool $isAdmin If set we force the admin mode. + * @param bool|null $isAdmin If set we force the admin mode. * @return AbstractUserGroup[] * @throws UserGroupTypeException */ - private function getUserUserGroupsForObjectAccess($isAdmin = null): array + private function getUserUserGroupsForObjectAccess(?bool $isAdmin = null): array { $userUserGroups = $this->userGroupHandler->getUserGroupsForUser(); @@ -169,7 +168,7 @@ function (AbstractUserGroup $userGroup) { * @throws UserGroupTypeException * @throws Exception */ - public function checkObjectAccess(?string $objectType, $objectId, $isAdmin = null): bool + public function checkObjectAccess(?string $objectType, $objectId, ?bool $isAdmin = null): bool { $isAdmin = $this->isAdmin($isAdmin); diff --git a/src/Command/ObjectCommand.php b/src/Command/ObjectCommand.php index 52849e3d..17d84a28 100644 --- a/src/Command/ObjectCommand.php +++ b/src/Command/ObjectCommand.php @@ -88,7 +88,7 @@ function (UserGroup $userGroup) { private function getUserGroupIdAndType(array $namesMap, string $identifier, ?string &$type = '') { $type = (is_numeric($identifier) === true) ? 'id' : 'name'; - return isset($namesMap[$identifier]) ? $namesMap[$identifier] : $identifier; + return $namesMap[$identifier] ?? $identifier; } /** diff --git a/src/Controller/Backend/BackendController.php b/src/Controller/Backend/BackendController.php index 2bc24294..d7306812 100644 --- a/src/Controller/Backend/BackendController.php +++ b/src/Controller/Backend/BackendController.php @@ -44,11 +44,6 @@ class BackendController extends Controller */ private $userHandler; - /** - * @var FileHandler - */ - private $fileHandler; - /** * @var SetupHandler */ @@ -65,7 +60,6 @@ class BackendController extends Controller * @param Wordpress $wordpress * @param WordpressConfig $wordpressConfig * @param UserHandler $userHandler - * @param FileHandler $fileHandler * @param SetupHandler $setupHandler */ public function __construct( @@ -73,12 +67,10 @@ public function __construct( Wordpress $wordpress, WordpressConfig $wordpressConfig, UserHandler $userHandler, - FileHandler $fileHandler, SetupHandler $setupHandler ) { parent::__construct($php, $wordpress, $wordpressConfig); $this->userHandler = $userHandler; - $this->fileHandler = $fileHandler; $this->setupHandler = $setupHandler; } diff --git a/src/Controller/ControllerFactory.php b/src/Controller/ControllerFactory.php index d1fd041a..ee99731a 100644 --- a/src/Controller/ControllerFactory.php +++ b/src/Controller/ControllerFactory.php @@ -248,7 +248,6 @@ public function createBackendController(): BackendController $this->wordpress, $this->wordpressConfig, $this->userHandler, - $this->fileHandler, $this->setupHandler ); } diff --git a/src/Controller/Frontend/TermController.php b/src/Controller/Frontend/TermController.php index d95dee14..a2275b7b 100644 --- a/src/Controller/Frontend/TermController.php +++ b/src/Controller/Frontend/TermController.php @@ -309,7 +309,7 @@ private function processPostMenuItem(object $item): bool * @return bool * @throws UserGroupTypeException */ - private function processTermMenuItem(&$item): bool + private function processTermMenuItem($item): bool { $rawTerm = $this->objectHandler->getTerm($item->object_id); $term = $this->processTerm($rawTerm, $isEmpty); diff --git a/src/File/ApacheFileProtection.php b/src/File/ApacheFileProtection.php index 0d782995..a099fe5f 100644 --- a/src/File/ApacheFileProtection.php +++ b/src/File/ApacheFileProtection.php @@ -130,9 +130,7 @@ private function getPermalinkFileContent(?string $objectType, ?bool $isSubSite = $content .= "RewriteRule ^(.*)\\?(.*)$ {$homeRoot}index.php?uamgetfile=$1&$2 [QSA,L]\n"; $content = $this->applyFilters($content); - $content = "\n$content\n"; - - return $content; + return "\n$content\n"; } /** diff --git a/src/Form/FormHelper.php b/src/Form/FormHelper.php index 4f311c68..fde8dd06 100644 --- a/src/Form/FormHelper.php +++ b/src/Form/FormHelper.php @@ -256,7 +256,7 @@ public function getSettingsForm(array $parameters, $objectKey = null): Form if (is_array($parameter) === true) { $overwrittenValues = array_map( function ($parameterKey) use ($configParameters) { - return isset($configParameters[$parameterKey]) ? $configParameters[$parameterKey] : null; + return $configParameters[$parameterKey] ?? null; }, $parameter ); diff --git a/src/ObjectMembership/ObjectMembershipWithMapHandler.php b/src/ObjectMembership/ObjectMembershipWithMapHandler.php index c492da74..ff70ee53 100644 --- a/src/ObjectMembership/ObjectMembershipWithMapHandler.php +++ b/src/ObjectMembership/ObjectMembershipWithMapHandler.php @@ -55,8 +55,7 @@ protected function getMembershipByMap( if ($lockRecursive === true) { $map = $this->getMap(); - $generalMap = isset($map[ObjectMapHandler::TREE_MAP_PARENTS][$this->generalObjectType]) ? - $map[ObjectMapHandler::TREE_MAP_PARENTS][$this->generalObjectType] : []; + $generalMap = $map[ObjectMapHandler::TREE_MAP_PARENTS][$this->generalObjectType] ?? []; if (isset($generalMap[$objectId]) === true) { foreach ($generalMap[$objectId] as $parentId => $type) { @@ -91,8 +90,7 @@ protected function getFullObjectsByMap(AbstractUserGroup $userGroup, bool $lockR if ($lockRecursive === true) { $map = $this->getMap(); - $map = isset($map[ObjectMapHandler::TREE_MAP_CHILDREN][$objectType]) ? - $map[ObjectMapHandler::TREE_MAP_CHILDREN][$objectType] : []; + $map = $map[ObjectMapHandler::TREE_MAP_CHILDREN][$objectType] ?? []; $map = array_intersect_key($map, $objects); foreach ($map as $childrenIds) { diff --git a/src/Setup/Database/Column.php b/src/Setup/Database/Column.php index c629c880..ef3099e6 100644 --- a/src/Setup/Database/Column.php +++ b/src/Setup/Database/Column.php @@ -134,7 +134,8 @@ public function isAutoIncrement(): bool public function __toString(): string { $nullConstraint = ($this->isNull) ? 'NULL' : 'NOT NULL'; - $column = "`{$this->name}` {$this->type} {$nullConstraint}"; + $type = $this->type === 'INT(11)' ? 'INT' : $this->type; + $column = "`{$this->name}` {$type} {$nullConstraint}"; if ($this->default === null && $this->isNull) { $column .= ' DEFAULT NULL'; diff --git a/src/Setup/Database/DatabaseHandler.php b/src/Setup/Database/DatabaseHandler.php index 37e0654e..0035d00f 100644 --- a/src/Setup/Database/DatabaseHandler.php +++ b/src/Setup/Database/DatabaseHandler.php @@ -109,7 +109,7 @@ private function getTables(): array $this->database->getUserGroupTable(), $charsetCollate, [ - $this->databaseObjectFactory->createColumn('ID', 'INT(11)', false, null, true, true), + $this->databaseObjectFactory->createColumn('ID', 'INT', false, null, true, true), $this->databaseObjectFactory->createColumn('groupname', 'TINYTEXT'), $this->databaseObjectFactory->createColumn('groupdesc', 'TEXT'), $this->databaseObjectFactory->createColumn('read_access', 'TINYTEXT'), @@ -195,7 +195,6 @@ private function addCorruptedRows(Table $table, array &$information) if ((string) $column !== (string) $existingColumn) { $information[self::MODIFIED_COLUMNS][] = [$table, $column]; - continue; } } diff --git a/src/Setup/Update/DatabaseUpdate7.php b/src/Setup/Update/DatabaseUpdate7.php new file mode 100644 index 00000000..2d70596b --- /dev/null +++ b/src/Setup/Update/DatabaseUpdate7.php @@ -0,0 +1,51 @@ + + * @copyright 2008-2017 Alexander Schneider + * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License, version 2 + * @version SVN: $id$ + * @link http://wordpress.org/extend/plugins/user-access-manager/ + */ + +declare(strict_types=1); + +namespace UserAccessManager\Setup\Update; + +use UserAccessManager\Setup\Database\DatabaseUpdate; +use UserAccessManager\UserGroup\UserGroup; + +/** + * Class DatabaseUpdate6 + * + * @package UserAccessManager\Setup\Update + */ +class DatabaseUpdate7 extends DatabaseUpdate +{ + /** + * Returns the version. + * @return string + */ + public function getVersion(): string + { + return '1.6.2'; + } + + /** + * Executes the update. + * @return bool + */ + public function update(): bool + { + $userGroupTable = $this->database->getUserGroupTable(); + $alterQuery = "ALTER TABLE {$userGroupTable} + MODIFY ID INT NOT NULL"; + + return $this->database->query($alterQuery) !== false; + } +} diff --git a/src/User/UserHandler.php b/src/User/UserHandler.php index b365bec2..6c01f89b 100644 --- a/src/User/UserHandler.php +++ b/src/User/UserHandler.php @@ -20,6 +20,7 @@ use UserAccessManager\Config\MainConfig; use UserAccessManager\Database\Database; use UserAccessManager\Object\ObjectHandler; +use UserAccessManager\UserGroup\AbstractUserGroup; use UserAccessManager\UserGroup\UserGroup; use UserAccessManager\Wrapper\Wordpress; use WP_User; @@ -106,7 +107,7 @@ private function getCalculatedRange(string $ipRange): array { $ipRange = explode('-', $ipRange); $rangeBegin = $ipRange[0]; - $rangeEnd = isset($ipRange[1]) ? $ipRange[1] : $ipRange[0]; + $rangeEnd = $ipRange[1] ?? $ipRange[0]; return [ $this->calculateIp($rangeBegin), @@ -152,7 +153,7 @@ public function getUserRole($user): array $capabilities = []; } - return (count($capabilities) > 0) ? array_keys($capabilities) : [UserGroup::NONE_ROLE]; + return (count($capabilities) > 0) ? array_keys($capabilities) : [AbstractUserGroup::NONE_ROLE]; } /** @@ -173,7 +174,14 @@ public function checkUserAccess($allowedCapability = false): bool $roles = $this->getUserRole($currentUser); $rolesMap = array_flip($roles); - $orderedRoles = [UserGroup::NONE_ROLE, 'subscriber', 'contributor', 'author', 'editor', 'administrator']; + $orderedRoles = [ + AbstractUserGroup::NONE_ROLE, + 'subscriber', + 'contributor', + 'author', + 'editor', + 'administrator' + ]; $orderedRolesMap = array_flip($orderedRoles); $userRoles = array_intersect_key($orderedRolesMap, $rolesMap); diff --git a/src/UserAccessManager.php b/src/UserAccessManager.php index 18e8765f..7e4fc4b1 100644 --- a/src/UserAccessManager.php +++ b/src/UserAccessManager.php @@ -50,8 +50,8 @@ */ class UserAccessManager { - const VERSION = '2.2.20'; - const DB_VERSION = '1.6.1'; + const VERSION = '2.2.21'; + const DB_VERSION = '1.6.2'; /** * @var Php diff --git a/src/UserGroup/UserGroupAssignmentHandler.php b/src/UserGroup/UserGroupAssignmentHandler.php index 89be4f7a..7efa4d79 100644 --- a/src/UserGroup/UserGroupAssignmentHandler.php +++ b/src/UserGroup/UserGroupAssignmentHandler.php @@ -78,7 +78,7 @@ private function getDateParameter(array $data, string $name): ?string $isValid = isset($data[$name]['date']) === true && isset($data[$name]['time']) === true && (string) $data[$name]['date'] !== '' && (string) $data[$name]['time'] !== ''; - return ($isValid === true) ? (string) $data[$name]['date'] . 'T' . $data[$name]['time'] : null; + return ($isValid === true) ? ((string) $data[$name]['date']) . 'T' . $data[$name]['time'] : null; } /** diff --git a/src/View/AdminSettings.php b/src/View/AdminSettings.php index 539b3c67..65561b8e 100644 --- a/src/View/AdminSettings.php +++ b/src/View/AdminSettings.php @@ -46,7 +46,7 @@ getCurrentTabGroupSection(); $groupForms = $controller->getCurrentGroupForms(); - $form = isset($groupForms[$currentSectionKey]) ? $groupForms[$currentSectionKey] : reset($groupForms); + $form = $groupForms[$currentSectionKey] ?? reset($groupForms); $cssClass = ($currentGroupKey === 'post_types') ? " uam_settings_group_post_type $currentSectionKey" : ''; $cssClass .= ($currentGroupKey === 'taxonomies') ? " uam_settings_group_taxonomies $currentSectionKey" : ''; ?> diff --git a/src/View/GroupInfo.php b/src/View/GroupInfo.php index c5edc45e..eef50fb8 100644 --- a/src/View/GroupInfo.php +++ b/src/View/GroupInfo.php @@ -79,7 +79,7 @@ $cleanGroupRoles = []; foreach ($groupRoles as $key => $role) { - $cleanGroupRoles[] = isset($roleNames[$key]) ? $roleNames[$key] : $key; + $cleanGroupRoles[] = $roleNames[$key] ?? $key; } $content .= implode(', ', $cleanGroupRoles); diff --git a/src/View/UserGroups/UserGroupList.php b/src/View/UserGroups/UserGroupList.php index f895557a..e152c461 100644 --- a/src/View/UserGroups/UserGroupList.php +++ b/src/View/UserGroups/UserGroupList.php @@ -117,7 +117,7 @@ $role) { ?> -
  • +
  • diff --git a/tests/Unit/Controller/Backend/BackendControllerTest.php b/tests/Unit/Controller/Backend/BackendControllerTest.php index 84948c43..46b203fc 100644 --- a/tests/Unit/Controller/Backend/BackendControllerTest.php +++ b/tests/Unit/Controller/Backend/BackendControllerTest.php @@ -79,7 +79,6 @@ public function testCanCreateInstance() $this->getWordpress(), $this->getWordpressConfig(), $this->getUserHandler(), - $this->getFileHandler(), $this->getSetupHandler() ); @@ -118,7 +117,6 @@ public function testShowAdminNotice(): BackendController $this->getWordpress(), $wordpressConfig, $this->getUserHandler(), - $this->getFileHandler(), $setupHandler ); @@ -239,7 +237,6 @@ public function testStylesAndScripts() $wordpress, $wordpressConfig, $this->getUserHandler(), - $this->getFileHandler(), $this->getSetupHandler() ); @@ -290,7 +287,6 @@ public function testSetupAdminDashboard() $wordpress, $this->getWordpressConfig(), $userHandler, - $this->getFileHandler(), $this->getSetupHandler() ); diff --git a/tests/Unit/Controller/ControllerTest.php b/tests/Unit/Controller/ControllerTest.php index 6cb9dde4..1344a037 100644 --- a/tests/Unit/Controller/ControllerTest.php +++ b/tests/Unit/Controller/ControllerTest.php @@ -63,9 +63,7 @@ private function getStub() Controller::class, [], '', - false, - true, - true + false ); } diff --git a/tests/Unit/Setup/Database/DatabaseHandlerTest.php b/tests/Unit/Setup/Database/DatabaseHandlerTest.php index fb9696b6..c2f5721d 100644 --- a/tests/Unit/Setup/Database/DatabaseHandlerTest.php +++ b/tests/Unit/Setup/Database/DatabaseHandlerTest.php @@ -148,7 +148,7 @@ public function testInstall() $databaseObjectFactory->expects($this->exactly(13)) ->method('createColumn') ->withConsecutive( - ['ID', 'INT(11)', false, null, true, true], + ['ID', 'INT', false, null, true, true], ['groupname', 'TINYTEXT'], ['groupdesc', 'TEXT'], ['read_access', 'TINYTEXT'], @@ -252,7 +252,7 @@ public function testGetCorruptedDatabaseInformation() $databaseObjectFactory->expects($this->exactly(16)) ->method('createColumn') ->withConsecutive( - ['ID', 'INT(11)', false, null, true, true], + ['ID', 'INT', false, null, true, true], ['groupname', 'TINYTEXT'], ['groupdesc', 'TEXT'], ['read_access', 'TINYTEXT'], diff --git a/user-access-manager.php b/user-access-manager.php index 62c53ecb..4b5f0f3e 100644 --- a/user-access-manager.php +++ b/user-access-manager.php @@ -3,7 +3,7 @@ * Plugin Name: User Access Manager * Plugin URI: https://wordpress.org/plugins/user-access-manager/ * Author URI: https://twitter.com/GM_Alex - * Version: 2.2.20 + * Version: 2.2.21 * Requires PHP: 7.2 * Author: Alexander Schneider * Description: Manage the access to your posts, pages, categories and files.