DEPRECATED onAdminRegisterPermissions event and the corresponding admin methods

This commit is contained in:
Matias Griese
2020-01-15 16:05:16 +02:00
parent 2f4668b325
commit 31f4e8ee03
3 changed files with 29 additions and 42 deletions

View File

@@ -4,6 +4,9 @@
* [](#improved)
* Improved `permissions` field
* Added `field.show_label` and `field.label` display logic from frontend forms
* DEPRECATED `onAdminRegisterPermissions` event, use `RegisterPermissionsEvent::class` event instead
* DEPRECATED `Admin::setPermissions()` and `Admin::addPermissions()`, use `RegisterPermissionsEvent::class` event instead
* DEPRECATED `Admin::getPermissions()`, use `$grav['permissions']->getInstances()` instead
1. [](#bugfix)
* Fixed user profile when using `Flex Users` only in admin

View File

@@ -734,40 +734,6 @@ class AdminPlugin extends Plugin
$permissions->addActions($actions);
}
/**
* Initial stab at registering permissions (WIP)
*
* @param Event $e
*/
public function onAdminRegisterPermissions(Event $e)
{
$grav = Grav::instance();
$grav['permissions'];
/** @var Admin $admin */
$admin = $e['admin'];
$permissions = [
'site.login' => 'boolean',
'admin.login' => 'boolean',
'admin.super' => 'boolean',
'admin.cache' => 'boolean',
'admin.configuration' => 'boolean',
'admin.configuration_system' => 'boolean',
'admin.configuration_site' => 'boolean',
'admin.configuration_media' => 'boolean',
'admin.configuration_info' => 'boolean',
'admin.settings' => 'boolean',
'admin.pages' => 'boolean',
'admin.maintenance' => 'boolean',
'admin.statistics' => 'boolean',
'admin.plugins' => 'boolean',
'admin.themes' => 'boolean',
'admin.tools' => 'boolean',
'admin.users' => 'boolean',
];
$admin->addPermissions($permissions);
}
public function onAdminMenu()
{
// Dashboard
@@ -930,7 +896,6 @@ class AdminPlugin extends Plugin
'onTwigTemplatePaths' => ['onTwigTemplatePaths', 1000],
'onTwigSiteVariables' => ['onTwigSiteVariables', 1000],
'onAssetsInitialized' => ['onAssetsInitialized', 1000],
'onAdminRegisterPermissions' => ['onAdminRegisterPermissions', 0],
'onOutputGenerated' => ['onOutputGenerated', 0],
'onAdminAfterSave' => ['onAdminAfterSave', 0],
'onAdminData' => ['onAdminData', 0],

View File

@@ -25,6 +25,8 @@ use Grav\Common\Uri;
use Grav\Common\User\Interfaces\UserCollectionInterface;
use Grav\Common\User\User;
use Grav\Common\Utils;
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\FlexObjectInterface;
@@ -104,9 +106,6 @@ class Admin
/** @var int */
protected $pages_count;
/** @var array */
protected $permissions;
/** @var bool */
protected $load_additional_files_in_background = false;
@@ -136,7 +135,6 @@ class Admin
$this->uri = $grav['uri'];
$this->session = $grav['session'];
$this->user = $grav['user'];
$this->permissions = [];
/** @var Language $language */
$language = $grav['language'];
@@ -1430,30 +1428,51 @@ class Admin
* Gets the entire permissions array
*
* @return array
* @deprecated 1.10 Use $grav['permissions']->getInstances() instead.
*/
public function getPermissions()
{
return $this->permissions;
user_error(__METHOD__ . '() is deprecated since Admin 1.10, use $grav[\'permissions\']->getInstances() instead', E_USER_DEPRECATED);
$grav = $this->grav;
/** @var Permissions $object */
$permissions = $grav['permissions'];
return array_fill_keys(array_keys($permissions->getInstances()), 'boolean');
}
/**
* Sets the entire permissions array
*
* @param array $permissions
* @deprecated 1.10 Use RegisterPermissionsEvent::class event instead.
*/
public function setPermissions($permissions)
{
$this->permissions = $permissions;
user_error(__METHOD__ . '() is deprecated since Admin 1.10, use RegisterPermissionsEvent::class event instead', E_USER_DEPRECATED);
$this->addPermissions($permissions);
}
/**
* Adds a permission to the permissions array
*
* @param array $permissions
* @deprecated 1.10 Use RegisterPermissionsEvent::class event instead.
*/
public function addPermissions($permissions)
{
$this->permissions = array_merge($this->permissions, $permissions);
user_error(__METHOD__ . '() is deprecated since Admin 1.10, use RegisterPermissionsEvent::class event instead', E_USER_DEPRECATED);
$grav = $this->grav;
/** @var Permissions $object */
$object = $grav['permissions'];
foreach ($permissions as $name => $type) {
if (!$object->hasAction($name)) {
$action = new Action($name);
$object->addAction($action);
}
}
}
public function getNotifications($force = false)