mirror of
https://github.com/getgrav/grav-plugin-admin.git
synced 2025-10-30 18:06:16 +01:00
added onAdminRegisterPermissions event
This commit is contained in:
@@ -3,6 +3,8 @@
|
|||||||
|
|
||||||
1. [](#new)
|
1. [](#new)
|
||||||
* Added a `|adminNicetime` Twig filter to show nicetime in admin user's language
|
* Added a `|adminNicetime` Twig filter to show nicetime in admin user's language
|
||||||
|
* Added a `prepend` and `append` field option for text input type
|
||||||
|
* Added a WIP `onAdminRegisterPermissions` event
|
||||||
1. [](#improved)
|
1. [](#improved)
|
||||||
* Fixed UI issue with Backup / Update buttons positioning
|
* Fixed UI issue with Backup / Update buttons positioning
|
||||||
* Tweaked placeholders color in login/new user panels [#542](https://github.com/getgrav/grav-plugin-admin/issues/542)
|
* Tweaked placeholders color in login/new user panels [#542](https://github.com/getgrav/grav-plugin-admin/issues/542)
|
||||||
|
|||||||
30
admin.php
30
admin.php
@@ -293,6 +293,9 @@ class AdminPlugin extends Plugin
|
|||||||
// We need popularity no matter what
|
// We need popularity no matter what
|
||||||
require_once __DIR__ . '/classes/popularity.php';
|
require_once __DIR__ . '/classes/popularity.php';
|
||||||
$this->popularity = new Popularity();
|
$this->popularity = new Popularity();
|
||||||
|
|
||||||
|
// Fire even to register permissions from other plugins
|
||||||
|
$this->grav->fireEvent('onAdminRegisterPermissions', new Event(['admin' => $this->admin]));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function initializeController($task, $post) {
|
protected function initializeController($task, $post) {
|
||||||
@@ -601,7 +604,8 @@ class AdminPlugin extends Plugin
|
|||||||
'onTwigTemplatePaths' => ['onTwigTemplatePaths', 1000],
|
'onTwigTemplatePaths' => ['onTwigTemplatePaths', 1000],
|
||||||
'onTwigSiteVariables' => ['onTwigSiteVariables', 1000],
|
'onTwigSiteVariables' => ['onTwigSiteVariables', 1000],
|
||||||
'onAssetsInitialized' => ['onAssetsInitialized', 1000],
|
'onAssetsInitialized' => ['onAssetsInitialized', 1000],
|
||||||
'onTask.GPM' => ['onTaskGPM', 0]
|
'onTask.GPM' => ['onTaskGPM', 0],
|
||||||
|
'onAdminRegisterPermissions' => ['onAdminRegisterPermissions', 0],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Initialize admin class.
|
// Initialize admin class.
|
||||||
@@ -748,4 +752,28 @@ class AdminPlugin extends Plugin
|
|||||||
$this->grav['twig']->plugins_hooked_dashboard_widgets_main[] = ['template' => 'dashboard-pages'];
|
$this->grav['twig']->plugins_hooked_dashboard_widgets_main[] = ['template' => 'dashboard-pages'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Initial stab at registering permissions (WIP)
|
||||||
|
*
|
||||||
|
* @param Event $e
|
||||||
|
*/
|
||||||
|
public function onAdminRegisterPermissions(Event $e)
|
||||||
|
{
|
||||||
|
$admin = $e['admin'];
|
||||||
|
$permissions = [
|
||||||
|
'admin.super'=> 'boolean',
|
||||||
|
'admin.login' => 'boolean',
|
||||||
|
'admin.cache' => 'boolean',
|
||||||
|
'admin.configuration' => 'boolean',
|
||||||
|
'admin.settings' => 'boolean',
|
||||||
|
'admin.pages' => 'boolean',
|
||||||
|
'admin.maintenance' => 'boolean',
|
||||||
|
'admin.statistics' => 'boolean',
|
||||||
|
'admin.plugins' => 'boolean',
|
||||||
|
'admin.themes' => 'boolean',
|
||||||
|
'admin.users' => 'boolean',
|
||||||
|
];
|
||||||
|
$admin->addPermissions($permissions);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,6 +80,11 @@ class Admin
|
|||||||
*/
|
*/
|
||||||
protected $pages_count;
|
protected $pages_count;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @var Array
|
||||||
|
*/
|
||||||
|
protected $permissions;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
*
|
*
|
||||||
@@ -97,6 +102,7 @@ class Admin
|
|||||||
$this->uri = $this->grav['uri'];
|
$this->uri = $this->grav['uri'];
|
||||||
$this->session = $this->grav['session'];
|
$this->session = $this->grav['session'];
|
||||||
$this->user = $this->grav['user'];
|
$this->user = $this->grav['user'];
|
||||||
|
$this->permissions = [];
|
||||||
$language = $this->grav['language'];
|
$language = $this->grav['language'];
|
||||||
|
|
||||||
if ($language->enabled()) {
|
if ($language->enabled()) {
|
||||||
@@ -1085,4 +1091,34 @@ class Admin
|
|||||||
}
|
}
|
||||||
return $js_format;
|
return $js_format;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the entire permissions array
|
||||||
|
*
|
||||||
|
* @param $permissions
|
||||||
|
*/
|
||||||
|
public function setPermissions($permissions)
|
||||||
|
{
|
||||||
|
$this->permissions = $permissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the entire permissions array
|
||||||
|
*
|
||||||
|
* @return Array
|
||||||
|
*/
|
||||||
|
public function getPermissions()
|
||||||
|
{
|
||||||
|
return $this->permissions;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a permission to the permissions array
|
||||||
|
*
|
||||||
|
* @param $permissions
|
||||||
|
*/
|
||||||
|
public function addPermissions($permissions)
|
||||||
|
{
|
||||||
|
$this->permissions = array_merge($this->permissions, $permissions);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user