Repository URL to install this package:
|
Version:
1.0.0 ▾
|
<?php namespace Modules\Users\Providers;
use Illuminate\Support\ServiceProvider;
class AclServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$this->publishConfig();
$this->publishMigration();
$this->registerBladeExtensions();
}
/**
* Publish the config file to the application config directory
*/
public function publishConfig()
{
$this->publishes([
__DIR__ . '/../../config/acl.php' => config_path('acl.php'),
], 'config');
}
/**
* Publish the migration to the application migration folder
*/
public function publishMigration()
{
$this->publishes([
__DIR__ . '/../../migrations/' => base_path('/database/migrations'),
], 'migrations');
}
/**
* Register Blade Template Extensions.
*/
protected function registerBladeExtensions()
{
$blade = $this->app['view']->getEngineResolver()->resolve('blade')->getCompiler();
$blade->directive('role', function ($expression) {
return "<?php if (Auth::check() && Auth::user()->is{$expression}): ?>";
});
$blade->directive('endrole', function () {
return "<?php endif; ?>";
});
$blade->directive('permission', function ($expression) {
return "<?php if (Auth::check() && Auth::user()->can{$expression}): ?>";
});
$blade->directive('endpermission', function () {
return "<?php endif; ?>";
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->mergeConfigFrom(
__DIR__ . '/../../config/acl.php', 'acl'
);
}
}