mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Plugins v2 cleanup (#16298)
* cleanup * use Illuminate\Support\Facades\Auth; * style * add route:cache and revert * add route:cache and revert * fix in pluginExample * fix Example plugin * style * fix other Hooks with Illuminate\Contracts\Auth\Authenticatable * style * whitespace * whitespace2 --------- Co-authored-by: Tony Murray <murraytony@gmail.com>
This commit is contained in:
@ -40,6 +40,9 @@ class PluginEnable extends LnmsCommand
|
||||
return 0;
|
||||
}
|
||||
|
||||
//Caching application Routes
|
||||
$this->callSilent('route:cache');
|
||||
|
||||
$this->info(trans_choice('commands.plugin:enable.enabled', $updated, ['count' => $updated]));
|
||||
|
||||
return 0;
|
||||
|
@ -35,7 +35,7 @@ class DeviceOverview extends DeviceOverviewHook
|
||||
|
||||
// public string $view = 'resources.views.device-overview';
|
||||
|
||||
public function authorize(\App\Models\User $user, \App\Models\Device $device): bool
|
||||
public function authorize(\Illuminate\Contracts\Auth\Authenticatable $user, \App\Models\Device $device): bool
|
||||
{
|
||||
// In this example, we check if the user has a custom role/permission and if it is member of any device groups
|
||||
// return $user->can('view-extra-port-info') && $device->has('groups');
|
||||
|
@ -15,12 +15,18 @@ class Menu extends MenuEntryHook
|
||||
// public string $view = 'resources.views.menu';
|
||||
|
||||
// this will determine if the menu entry should be shown to the user
|
||||
public function authorize(\App\Models\User $user, array $settings = []): bool
|
||||
public function authorize(\Illuminate\Contracts\Auth\Authenticatable $user, array $settings = []): bool
|
||||
{
|
||||
// menu entry shown if users has the global-read role and there is a setting that has > one entries in it
|
||||
// return $user->can('global-read') && isset($settings['some_data']) && count($settings['some_data']) > 0;
|
||||
/**
|
||||
* // menu entry shown if users has the global-read role and there is a setting that has > one entries in it
|
||||
* return $user->can('global-read') && isset($settings['some_data']) && count($settings['some_data']) > 0;
|
||||
*
|
||||
* // allow every logged in user
|
||||
* return true;
|
||||
**/
|
||||
|
||||
return true; // allow every logged in user
|
||||
// Allow users with GLOBAL_READ or better
|
||||
return $user->can('global-read');
|
||||
}
|
||||
|
||||
// override the data function to add additional data to be accessed in the view
|
||||
|
@ -39,7 +39,7 @@ class Page extends PageHook
|
||||
|
||||
// The authorize method will determine if the user has access to this page.
|
||||
// if you want all users to be able to access this page simple return true
|
||||
public function authorize(\App\Models\User $user): bool
|
||||
public function authorize(\Illuminate\Contracts\Auth\Authenticatable $user): bool
|
||||
{
|
||||
// you can check user's roles like this:
|
||||
// return $user->can('admin');
|
||||
|
@ -28,4 +28,17 @@ class PortTab extends PortTabHook
|
||||
'total' => $total_delta,
|
||||
];
|
||||
}
|
||||
|
||||
// The authorize method will determine if the user will see this tab or not
|
||||
// if you want all users to see it, simple return true
|
||||
public function authorize(\Illuminate\Contracts\Auth\Authenticatable $user, \App\Models\Port $port): bool
|
||||
{
|
||||
// you can check user's roles like this:
|
||||
// return $user->can('admin');
|
||||
|
||||
// or use whatever you like. Including conditions on the \App\Models\Port $port of course
|
||||
// return \Carbon\Carbon::now()->dayOfWeek == Carbon::THURSDAY; // only allowed access on Thursdays!
|
||||
|
||||
return true; // allow every logged in user to access
|
||||
}
|
||||
}
|
||||
|
@ -137,7 +137,7 @@ https://laravel.com/docs/packages
|
||||
> This is untested, please come to discord and share any expriences and update this documentation!
|
||||
|
||||
|
||||
## Version 1 Plugin System structure (legacy verion)
|
||||
## Version 1 Plugin System structure (legacy version)
|
||||
|
||||
Plugins need to be installed into html/plugins
|
||||
|
||||
|
Reference in New Issue
Block a user