Skip to content

Commit

Permalink
Update plugins middlewares
Browse files Browse the repository at this point in the history
  • Loading branch information
MrMicky-FR committed Feb 28, 2020
1 parent 096e23e commit 13560b1
Show file tree
Hide file tree
Showing 2 changed files with 44 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,14 @@ class DummyPluginServiceProvider extends BasePluginServiceProvider
*
* @var array
*/
protected $middlewareGroups = [
protected $middlewareGroups = [];

/**
* The plugin's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
// 'example' => \DummyNamespace\Middleware\ExampleRouteMiddleware::class,
];

Expand Down
49 changes: 36 additions & 13 deletions app/Extensions/Plugin/BasePluginServiceProvider.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace Azuriom\Extensions\Plugin;

use Illuminate\Contracts\Http\Kernel;
use Illuminate\Support\Facades\Gate;
use Illuminate\Support\ServiceProvider;

Expand All @@ -23,6 +24,15 @@ abstract class BasePluginServiceProvider extends ServiceProvider
*/
protected $middlewareGroups = [];

/**
* The plugin's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [];

/**
* The policy mappings for this plugin.
*
Expand Down Expand Up @@ -52,6 +62,8 @@ protected function registerMiddlewares()
$this->middleware($this->middleware);

$this->middlewareGroup($this->middlewareGroups);

$this->routeMiddleware($this->routeMiddleware);
}

protected function registerPolicies()
Expand Down Expand Up @@ -90,25 +102,36 @@ protected function registerAdminNavigation()
$this->app['plugins']->addAdminNavItem($this->adminNavigation());
}

protected function middlewareGroup($name, $middleware = null)
protected function middleware($middleware, bool $before = false)
{
if (is_array($name)) {
foreach ($name as $key => $value) {
$this->router->middlewareGroup($key, $value);
$middlewares = is_array($middleware) ? $middleware : [$middleware];

$kernel = $this->app->make(Kernel::class);

foreach ($middlewares as $middleware) {
if ($before) {
$kernel->prependMiddleware($middleware);
} else {
$kernel->pushMiddleware($middleware);
}
} else {
$this->router->middlewareGroup($name, $middleware);
}
}

protected function middleware($name, $middleware = null)
protected function middlewareGroup($name, $middleware = null)
{
if (is_array($name)) {
foreach ($name as $key => $value) {
$this->router->aliasMiddleware($key, $value);
}
} else {
$this->router->aliasMiddleware($name, $middleware);
$middlewares = is_array($name) ? $name : [$name => $middleware];

foreach ($middlewares as $key => $middleware) {
$this->router->middlewareGroup($key, $middleware);
}
}

protected function routeMiddleware($name, $middleware = null)
{
$middlewares = is_array($name) ? $name : [$name => $middleware];

foreach ($middlewares as $key => $middleware) {
$this->router->aliasMiddleware($key, $middleware);
}
}

Expand Down

0 comments on commit 13560b1

Please sign in to comment.