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