UserServiceProvider.php 1.83 KB
Newer Older
1
<?php namespace Modules\User\Providers;
Nicolas Widart's avatar
Nicolas Widart committed
2

3
use Illuminate\Routing\Router;
Nicolas Widart's avatar
Nicolas Widart committed
4
use Illuminate\Support\ServiceProvider;
5
use Modules\User\Events\RegisterSidebarMenuItemEvent;
Nicolas Widart's avatar
Nicolas Widart committed
6

7
class UserServiceProvider extends ServiceProvider
8 9 10 11 12 13 14 15 16 17 18 19 20 21
{
    /**
     * Indicates if loading of the provider is deferred.
     *
     * @var bool
     */
    protected $defer = false;

    /**
     * The filters base class name.
     *
     * @var array
     */
    protected $filters = [
22 23
        'Core' => [
            'permissions' => 'PermissionFilter'
24 25 26
        ],
        'User' => [
            'auth.guest' => 'GuestFilter'
27
        ]
28 29 30 31 32 33 34 35 36 37 38 39
    ];

    /**
     * Register the service provider.
     *
     * @return void
     */
    public function register()
    {
        $this->app->booted(function ($app) {
			$this->registerFilters($app['router']);
			$this->registerBindings();
40
            $this->registerEvents($app['events']);
41 42
		});
    }
Nicolas Widart's avatar
Nicolas Widart committed
43

44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
    /**
     * Get the services provided by the provider.
     *
     * @return array
     */
    public function provides()
    {
        return array();
    }

    /**
     * Register the filters.
     *
     * @param  Router $router
     * @return void
     */
    public function registerFilters(Router $router)
    {
62 63 64
        foreach ($this->filters as $module => $filters) {
            foreach ($filters as $name => $filter) {
                $class = "Modules\\{$module}\\Http\\Filters\\{$filter}";
65

66 67
                $router->filter($name, $class);
            }
68 69 70 71
        }
    }

	private function registerBindings()
Nicolas Widart's avatar
Nicolas Widart committed
72
	{
73 74 75 76 77 78 79 80
		$this->app->bind(
			'Modules\User\Repositories\UserRepository',
			'Modules\User\Repositories\Sentinel\SentinelUserRepository'
		);
		$this->app->bind(
			'Modules\User\Repositories\RoleRepository',
			'Modules\User\Repositories\Sentinel\SentinelRoleRepository'
		);
Nicolas Widart's avatar
Nicolas Widart committed
81
	}
82 83 84 85

    private function registerEvents($events)
    {
    }
Nicolas Widart's avatar
Nicolas Widart committed
86
}