mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2026-05-05 14:36:22 +02:00
Better logged in user handling (Flex)
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
|
||||
1. [](#new)
|
||||
* Updated `permissions` field to use new `$grav['permissions']`
|
||||
* DEPRECATED `onAdminRegisterPermissions` event, use `RegisterPermissionsEvent::class` event instead
|
||||
* DEPRECATED `Admin::setPermissions()` and `Admin::addPermissions()`, use `RegisterPermissionsEvent::class` event instead
|
||||
* DEPRECATED `onAdminRegisterPermissions` event, use `PermissionsRegisterEvent::class` event instead
|
||||
* DEPRECATED `Admin::setPermissions()` and `Admin::addPermissions()`, use `PermissionsRegisterEvent::class` event instead
|
||||
* DEPRECATED `Admin::getPermissions()`, use `$grav['permissions']->getInstances()` instead
|
||||
* [](#improved)
|
||||
* Added `field.show_label` and `field.label` display logic from frontend forms
|
||||
|
||||
@@ -18,7 +18,7 @@ use Grav\Common\Session;
|
||||
use Grav\Common\Uri;
|
||||
use Grav\Common\User\Interfaces\UserCollectionInterface;
|
||||
use Grav\Common\Utils;
|
||||
use Grav\Events\RegisterPermissionsEvent;
|
||||
use Grav\Events\PermissionsRegisterEvent;
|
||||
use Grav\Framework\Acl\PermissionsReader;
|
||||
use Grav\Framework\Psr7\Response;
|
||||
use Grav\Framework\Session\Exceptions\SessionException;
|
||||
@@ -91,7 +91,7 @@ class AdminPlugin extends Plugin
|
||||
'onShutdown' => ['onShutdown', 1000],
|
||||
'onAdminDashboard' => ['onAdminDashboard', 0],
|
||||
'onAdminTools' => ['onAdminTools', 0],
|
||||
RegisterPermissionsEvent::class => ['onRegisterPermissions', 1000],
|
||||
PermissionsRegisterEvent::class => ['onRegisterPermissions', 1000],
|
||||
];
|
||||
}
|
||||
|
||||
@@ -726,9 +726,9 @@ class AdminPlugin extends Plugin
|
||||
/**
|
||||
* Initial stab at registering permissions (WIP)
|
||||
*
|
||||
* @param RegisterPermissionsEvent $event
|
||||
* @param PermissionsRegisterEvent $event
|
||||
*/
|
||||
public function onRegisterPermissions(RegisterPermissionsEvent $event): void
|
||||
public function onRegisterPermissions(PermissionsRegisterEvent $event): void
|
||||
{
|
||||
$actions = PermissionsReader::fromYaml("plugin://{$this->name}/permissions.yaml");
|
||||
|
||||
|
||||
@@ -6,6 +6,7 @@ use DateTime;
|
||||
use Grav\Common\Data;
|
||||
use Grav\Common\Data\Data as GravData;
|
||||
use Grav\Common\File\CompiledYamlFile;
|
||||
use Grav\Common\Flex\Users\UserObject;
|
||||
use Grav\Common\GPM\GPM;
|
||||
use Grav\Common\GPM\Licenses;
|
||||
use Grav\Common\GPM\Response;
|
||||
@@ -30,6 +31,7 @@ use Grav\Framework\Acl\Action;
|
||||
use Grav\Framework\Acl\Permissions;
|
||||
use Grav\Framework\Collection\ArrayCollection;
|
||||
use Grav\Framework\Flex\Flex;
|
||||
use Grav\Framework\Flex\Interfaces\FlexInterface;
|
||||
use Grav\Framework\Flex\Interfaces\FlexObjectInterface;
|
||||
use Grav\Framework\Route\Route;
|
||||
use Grav\Framework\Route\RouteFactory;
|
||||
@@ -136,16 +138,21 @@ class Admin
|
||||
$this->uri = $grav['uri'];
|
||||
$this->session = $grav['session'];
|
||||
|
||||
/** @var Flex|null $flex */
|
||||
/** @var FlexInterface|null $flex */
|
||||
$flex = $grav['flex_objects'] ?? null;
|
||||
|
||||
/** @var UserInterface $user */
|
||||
$user = $grav['user'];
|
||||
|
||||
if ($flex && !$user instanceof FlexObjectInterface) {
|
||||
$directory = $flex->getDirectory('grav-accounts');
|
||||
if ($directory) {
|
||||
$user = $directory->getObject($user->username) ?? $user;
|
||||
$managed = !method_exists($flex, 'isManaged') || $flex->isManaged('grav-accounts');
|
||||
$directory = $managed ? $flex->getDirectory('grav-accounts') : null;
|
||||
/** @var UserObject|null $test */
|
||||
$test = $directory ? $directory->getObject($user->username) : null;
|
||||
if ($test) {
|
||||
$test->authenticated = $user->authenticated;
|
||||
$test->authorized = $user->authorized;
|
||||
$user = $test;
|
||||
}
|
||||
}
|
||||
$this->user = $user;
|
||||
@@ -1459,11 +1466,11 @@ class Admin
|
||||
* Sets the entire permissions array
|
||||
*
|
||||
* @param array $permissions
|
||||
* @deprecated 1.10 Use RegisterPermissionsEvent::class event instead.
|
||||
* @deprecated 1.10 Use PermissionsRegisterEvent::class event instead.
|
||||
*/
|
||||
public function setPermissions($permissions)
|
||||
{
|
||||
user_error(__METHOD__ . '() is deprecated since Admin 1.10, use RegisterPermissionsEvent::class event instead', E_USER_DEPRECATED);
|
||||
user_error(__METHOD__ . '() is deprecated since Admin 1.10, use PermissionsRegisterEvent::class event instead', E_USER_DEPRECATED);
|
||||
|
||||
$this->addPermissions($permissions);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user