mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
* Device Groups rewrite Updated web ui Static or dynamic groups allowed Alert rule query builder Translation support Permissions support * cleanup, make relationship save, and validate it * builder WIP * rules builder and rules saving/loading * Parse query builder to Laravel Fluent query * Upgrade existing groups when editing. Properly update only dynamic groups when polling. * remove unused old code Update API and other places to use Eloquent * debug output in poller restored * Fix up some things creating static improved validation fix js error on creation Fix static groups in polling * hide pattern for static group * Implement authorization Use in the menu too * update schema * fix rollback * Don't abort on invalid queries * fixes to query builder * add test data, looks like macros aren't handled (omitted them because groups don't use them generally) * Add macro support for QueryBuilderFluentParser * add test for macro that accepts value * More space in forms Retain rules when converted to static no duplicate names allowed * Better error feedback Update related devices on save * Add button icon * format * update docs * fix tests * Fix some QueryBuilderFluentParser issues with OR updated/more test data * Show device groups runtime fix querybuilder.json format * Store table joins in the rules to minimize polling time Update group joins in daily.sh (and when they are saved) * Update daily.php * Add units to time
63 lines
1.7 KiB
PHP
63 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace App\Providers;
|
|
|
|
use App\Models\DeviceGroup;
|
|
use App\Models\User;
|
|
use App\Policies\DeviceGroupPolicy;
|
|
use App\Policies\UserPolicy;
|
|
use App\Guards\ApiTokenGuard;
|
|
use Auth;
|
|
use Illuminate\Support\Facades\Gate;
|
|
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
|
|
|
|
class AuthServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* The policy mappings for the application.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $policies = [
|
|
User::class => UserPolicy::class,
|
|
DeviceGroup::class => DeviceGroupPolicy::class,
|
|
];
|
|
|
|
/**
|
|
* Register any authentication / authorization services.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function boot()
|
|
{
|
|
$this->registerPolicies();
|
|
|
|
Auth::provider('legacy', function ($app, array $config) {
|
|
return new LegacyUserProvider();
|
|
});
|
|
|
|
Auth::provider('token_provider', function ($app, array $config) {
|
|
return new TokenUserProvider();
|
|
});
|
|
|
|
Auth::extend('token_driver', function ($app, $name, array $config) {
|
|
$userProvider = $app->make(TokenUserProvider::class);
|
|
$request = $app->make('request');
|
|
return new ApiTokenGuard($userProvider, $request);
|
|
});
|
|
|
|
Gate::define('global-admin', function ($user) {
|
|
return $user->hasGlobalAdmin();
|
|
});
|
|
Gate::define('admin', function ($user) {
|
|
return $user->isAdmin();
|
|
});
|
|
Gate::define('global-read', function ($user) {
|
|
return $user->hasGlobalRead();
|
|
});
|
|
Gate::define('device', function ($user, $device) {
|
|
return $user->canAccessDevice($device);
|
|
});
|
|
}
|
|
}
|