Repository URL to install this package:
|
Version:
1.0.0 ▾
|
<?php namespace Modules\Users\Providers;
use Illuminate\Routing\Router;
use Illuminate\Support\ServiceProvider;
class UsersServiceProvider extends ServiceProvider
{
/**
* Indicates if loading of the provider is deferred.
*
* @var bool
*/
protected $defer = false;
/**
* The filters base class name.
*
* @var array
*/
protected $routeMiddleware = [
'auth.admin' => \Modules\Core\Http\Middleware\AdminAuthenticate::class,
];
/**
* Boot the application events.
*
* @return void
*/
public function boot()
{
$this->registerTranslations();
$this->registerConfig();
$this->registerViews();
$this->registerBladeExtensions();
$this->registerMiddleware($this->app['router']);
}
/**
* Register translations.
*
* @return void
*/
public function registerTranslations()
{
$langPath = base_path('resources/lang/modules/users');
if (is_dir($langPath)) {
$this->loadTranslationsFrom($langPath, 'users');
} else {
$this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'users');
}
}
/**
* Register config.
*
* @return void
*/
protected function registerConfig()
{
// base
$this->publishes([
__DIR__ . '/../Config/config.php' => config_path('users.php'),
]);
$this->mergeConfigFrom(
__DIR__ . '/../Config/config.php', 'users'
);
// acl
$this->publishes([
__DIR__ . '/../Config/acl.php' => config_path('acl.php'),
]);
$this->mergeConfigFrom(
__DIR__ . '/../Config/acl.php', 'acl'
);
}
/**
* Register views.
*
* @return void
*/
public function registerViews()
{
$viewPath = base_path('resources/views/modules/users');
$sourcePath = __DIR__ . '/../Resources/views';
$this->publishes([
$sourcePath => $viewPath
]);
$this->loadViewsFrom([$viewPath, $sourcePath], 'users');
}
/**
* 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 the filters.
*
* @param Router $router
* @return void
*/
public function registerMiddleware(Router $router)
{
foreach ($this->routeMiddleware as $name => $class) {
$router->middleware($name, $class);
}
}
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
// User Repository
$this->app->bind('Modules\Users\Contracts\Repositories\UserRepository',
'Modules\Users\Repositories\Eloquent\UserRepositoryEloquent');
// Role Repository
$this->app->bind('Modules\Users\Contracts\Repositories\RoleRepository',
'Modules\Users\Repositories\Eloquent\RoleRepositoryEloquent');
}
/**
* Get the services provided by the provider.
*
* @return array
*/
public function provides()
{
return array();
}
}