예제 #1
0
 /**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param    \Illuminate\Routing\Router  $router
  * @return  void
  */
 public function boot(Router $router)
 {
     //============
     //== ASSETS ==
     //============
     $this->loadViewsFrom(__DIR__ . '/../resources/views', static::PACKAGE_NAME);
     $this->publishes([__DIR__ . '/../resources/views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME)]);
     $this->loadViewsFrom(__DIR__ . '/../resources/admin_views', static::PACKAGE_NAME . '_admin');
     $this->publishesAdmin([__DIR__ . '/../resources/admin_views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME . '_admin')]);
     $this->loadTranslationsFrom('/', static::PACKAGE_NAME);
     $this->publishes([__DIR__ . '/../assets/' => public_path('vendor/translation')], 'public');
     $this->publishes([__DIR__ . '/../database/migrations/' => database_path('/migrations')], 'migrations');
     $this->publishes([__DIR__ . '/../config/' . static::PACKAGE_NAME . '.php' => config_path('neonbug/' . static::PACKAGE_NAME . '.php')]);
     //============
     //== ROUTES ==
     //============
     $language = App::make('Language');
     $locale = $language == null ? Config::get('app.default_locale') : $language->locale;
     $admin_language = App::make('AdminLanguage');
     $admin_locale = $admin_language == null ? Config::get('app.admin_default_locale') : $admin_language->locale;
     $resource_repo = App::make('ResourceRepository');
     //admin
     $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin', 'admin.menu'], 'role' => static::ROLE, 'menu.icon' => 'world', 'weight' => 6], function ($router) {
         $router->get('list', ['as' => static::PREFIX . '::admin::list', 'uses' => static::ADMIN_CONTROLLER . '@adminList']);
         $router->get('edit/{id}', ['as' => static::PREFIX . '::admin::edit', 'uses' => static::ADMIN_CONTROLLER . '@adminEdit']);
         $router->post('edit/{id}', ['as' => static::PREFIX . '::admin::edit-save', 'uses' => static::ADMIN_CONTROLLER . '@adminEditPost']);
     });
     $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin'], 'role' => static::ROLE], function ($router) {
         $router->post('delete', ['as' => static::PREFIX . '::admin::delete', 'uses' => static::ADMIN_CONTROLLER . '@adminDeletePost']);
     });
     parent::boot($router);
 }
예제 #2
0
 /**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param    \Illuminate\Routing\Router  $router
  * @return  void
  */
 public function boot(Router $router)
 {
     //============
     //== ASSETS ==
     //============
     $this->loadViewsFrom(__DIR__ . '/../resources/views', static::PACKAGE_NAME);
     $this->publishes([__DIR__ . '/../resources/views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME)]);
     $this->loadViewsFrom(__DIR__ . '/../resources/admin_views', static::PACKAGE_NAME . '_admin');
     $this->publishesAdmin([__DIR__ . '/../resources/admin_views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME . '_admin')]);
     $this->loadTranslationsFrom('/', static::PACKAGE_NAME);
     $this->publishes([__DIR__ . '/../database/migrations/' => database_path('/migrations')], 'migrations');
     $this->publishes([__DIR__ . '/../config/' . static::PACKAGE_NAME . '.php' => config_path('neonbug/' . static::PACKAGE_NAME . '.php')]);
     //============
     //== ROUTES ==
     //============
     $language = App::make('Language');
     $locale = $language == null ? Config::get('app.default_locale') : $language->locale;
     $admin_language = App::make('AdminLanguage');
     $admin_locale = $admin_language == null ? Config::get('app.admin_default_locale') : $admin_language->locale;
     $resource_repo = App::make('ResourceRepository');
     //frontend
     $router->group(['middleware' => ['online'], 'prefix' => $locale . '/' . trans(static::PACKAGE_NAME . '::frontend.route.prefix')], function ($router) use($locale, $resource_repo, $language) {
         $router->get('/', ['as' => static::PREFIX . '::index', 'uses' => static::CONTROLLER . '@index']);
         $router->get('index', ['uses' => static::CONTROLLER . '@index']);
         $router->get('item/{id}', ['as' => static::PREFIX . '::item', 'uses' => static::CONTROLLER . '@item']);
         $router->get('preview/{key}', ['as' => static::PREFIX . '::preview', 'uses' => static::CONTROLLER . '@preview']);
         if ($language != null) {
             $slugs = $resource_repo->getSlugs($language->id_language, static::TABLE_NAME);
             foreach ($slugs as $slug) {
                 $router->get($slug->value, ['as' => static::PREFIX . '::slug::' . $slug->value, function () use($slug) {
                     $controller = App::make(static::CONTROLLER);
                     return $controller->callAction('item', ['id' => $slug->id_row]);
                 }]);
             }
         }
     });
     //admin
     $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin', 'admin.menu'], 'role' => static::ROLE, 'menu.icon' => 'user', 'weight' => 7], function ($router) {
         $router->get('list', ['as' => static::PREFIX . '::admin::list', 'uses' => static::ADMIN_CONTROLLER . '@adminList']);
         $router->get('add', ['as' => static::PREFIX . '::admin::add', 'uses' => static::ADMIN_CONTROLLER . '@adminAdd']);
         $router->post('add', ['as' => static::PREFIX . '::admin::add-save', 'uses' => static::ADMIN_CONTROLLER . '@adminAddPost']);
         $router->get('edit/{id}', ['as' => static::PREFIX . '::admin::edit', 'uses' => static::ADMIN_CONTROLLER . '@adminEdit']);
         $router->post('edit/{id}', ['as' => static::PREFIX . '::admin::edit-save', 'uses' => static::ADMIN_CONTROLLER . '@adminEditPost']);
     });
     $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin'], 'role' => static::ROLE], function ($router) {
         $router->post('delete', ['as' => static::PREFIX . '::admin::delete', 'uses' => static::ADMIN_CONTROLLER . '@adminDeletePost']);
         $router->post('check-slug', ['as' => static::PREFIX . '::admin::check-slug', 'uses' => static::ADMIN_CONTROLLER . '@adminCheckSlugPost']);
     });
     //============
     //== EVENTS ==
     //============
     Event::subscribe('\\Neonbug\\User\\Handlers\\Events\\RoleEventHandler');
     parent::boot($router);
 }
예제 #3
0
 /**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param    \Illuminate\Routing\Router  $router
  * @return  void
  */
 public function boot(Router $router)
 {
     //============
     //== ASSETS ==
     //============
     $this->loadViewsFrom(__DIR__ . '/../resources/views', static::PACKAGE_NAME);
     $this->publishes([__DIR__ . '/../resources/views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME)]);
     $this->loadViewsFrom(__DIR__ . '/../resources/admin_views', static::PACKAGE_NAME . '_admin');
     $this->publishesAdmin([__DIR__ . '/../resources/admin_views' => base_path('resources/views/vendor/' . static::PACKAGE_NAME . '_admin')]);
     $this->loadTranslationsFrom('/', static::PACKAGE_NAME);
     $this->publishes([__DIR__ . '/../database/migrations/' => database_path('/migrations')], 'migrations');
     $this->publishes([__DIR__ . '/../config/' . static::PACKAGE_NAME . '.php' => config_path('neonbug/' . static::PACKAGE_NAME . '.php')]);
     //============
     //== ROUTES ==
     //============
     $language = App::make('Language');
     $locale = $language == null ? Config::get('app.default_locale') : $language->locale;
     $admin_language = App::make('AdminLanguage');
     $admin_locale = $admin_language == null ? Config::get('app.admin_default_locale') : $admin_language->locale;
     $resource_repo = App::make('ResourceRepository');
     //frontend
     $slug_routes_at_root = Config::get('neonbug.text.slug_routes_at_root', false);
     $slugs = $language == null ? null : $resource_repo->getSlugs($language->id_language, static::TABLE_NAME);
     $router->group(['middleware' => ['online'], 'prefix' => $locale . '/' . trans(static::PACKAGE_NAME . '::frontend.route.prefix')], function ($router) use($slugs, $slug_routes_at_root) {
         $router->get('/', ['as' => static::PREFIX . '::index', 'uses' => static::CONTROLLER . '@index']);
         $router->get('index', ['uses' => static::CONTROLLER . '@index']);
         $router->get('item/{id}', ['as' => static::PREFIX . '::item', 'uses' => static::CONTROLLER . '@item']);
         $router->get('preview/{key}', ['as' => static::PREFIX . '::preview', 'uses' => static::CONTROLLER . '@preview']);
         if ($slugs != null) {
             $this->setRoutesFromSlugs($router, $slugs, $slug_routes_at_root === true ? 'default' : '');
         }
     });
     //put routes at root level (i.e. /en/contents/abc is also accessible via /en/abc)
     if ($slug_routes_at_root === true) {
         $router->group(['middleware' => ['online'], 'prefix' => $locale], function ($router) use($slugs) {
             if ($slugs != null) {
                 $this->setRoutesFromSlugs($router, $slugs);
             }
         });
     }
     //admin
     $router->group(['prefix' => $admin_locale . '/admin/' . static::PREFIX, 'middleware' => ['auth.admin', 'admin.menu'], 'role' => static::ROLE, 'menu.icon' => 'file text outline'], function ($router) {
         $router->get('list', ['as' => static::PREFIX . '::admin::list', 'uses' => static::ADMIN_CONTROLLER . '@adminList']);
         $router->get('add', ['as' => static::PREFIX . '::admin::add', 'uses' => static::ADMIN_CONTROLLER . '@adminAdd']);
         $router->post('add', ['as' => static::PREFIX . '::admin::add-save', 'uses' => static::ADMIN_CONTROLLER . '@adminAddPost']);
         $router->get('edit/{id}', ['as' => static::PREFIX . '::admin::edit', 'uses' => static::ADMIN_CONTROLLER . '@adminEdit']);
         $router->post('edit/{id}', ['as' => static::PREFIX . '::admin::edit-save', 'uses' => static::ADMIN_CONTROLLER . '@adminEditPost']);
         $router->post('delete', ['as' => static::PREFIX . '::admin::delete', 'uses' => static::ADMIN_CONTROLLER . '@adminDeletePost']);
         $router->post('check-slug', ['as' => static::PREFIX . '::admin::check-slug', 'uses' => static::ADMIN_CONTROLLER . '@adminCheckSlugPost']);
     });
     parent::boot($router);
 }
예제 #4
0
 /**
  * Execute the console command.
  *
  * @return void
  */
 public function fire()
 {
     $paths = BaseServiceProvider::pathsToPublishAdmin($this->option('provider'), $this->option('tag'));
     if (empty($paths)) {
         return $this->comment("Nothing to publish.");
     }
     foreach ($paths as $from => $to) {
         if ($this->files->isFile($from)) {
             $this->publishFile($from, $to);
         } elseif ($this->files->isDirectory($from)) {
             $this->publishDirectory($from, $to);
         } else {
             $this->error("Can't locate path: <{$from}>");
         }
     }
     $this->info('Publishing Complete!');
 }
예제 #5
0
 /**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param  \Illuminate\Routing\Router  $router
  * @return void
  */
 public function boot(Router $router)
 {
     //============
     //== ASSETS ==
     //============
     $this->loadViewsFrom(__DIR__ . '/../resources/views', static::PACKAGE_NAME);
     $this->loadViewsFrom(__DIR__ . '/../resources/admin_views', static::PACKAGE_NAME . '_admin');
     $this->loadTranslationsFrom('/', 'common');
     $this->publishes([__DIR__ . '/../database/migrations/' => database_path('/migrations')], 'migrations');
     $this->publishes([__DIR__ . '/../assets/' => public_path('vendor/common')], 'public');
     $this->publishes([__DIR__ . '/../config/' . static::PACKAGE_NAME . '.php' => config_path('neonbug/' . static::PACKAGE_NAME . '.php')]);
     //============
     //== ROUTES ==
     //============
     $language = App::make('Language');
     $locale = $language == null ? Config::get('app.default_locale') : $language->locale;
     $admin_language = App::make('AdminLanguage');
     $admin_locale = $admin_language == null ? Config::get('app.admin_default_locale') : $admin_language->locale;
     View::composer('common::admin', function ($view) use($router) {
         $menu_items = [];
         $routes = $router->getRoutes();
         foreach ($routes as $route) {
             if (stripos($route->getName(), '::admin::') !== false) {
                 if (!in_array('admin.menu', $route->middleware())) {
                     continue;
                 }
                 if (!in_array('GET', $route->getMethods())) {
                     continue;
                 }
                 //only list routes for GET
                 if (sizeof($route->parameterNames()) > 0) {
                     continue;
                 }
                 //check for required role
                 $action = $route->getAction();
                 if (!array_key_exists('role', $action)) {
                     continue;
                 }
                 $required_role = $action['role'];
                 if ($required_role != '*') {
                     $roles = Auth::user()->roles;
                     $has_role = false;
                     foreach ($roles as $role) {
                         if ($role->id_role == 'admin' || $role->id_role == $required_role) {
                             $has_role = true;
                             break;
                         }
                     }
                     if (!$has_role) {
                         continue;
                     }
                 }
                 //transform the route into menu item
                 $arr = explode('::', $route->getName());
                 if (!array_key_exists($arr[0], $menu_items)) {
                     $menu_items[$arr[0]] = ['title' => $arr[0], 'icon' => array_key_exists('menu.icon', $route->getAction()) ? $route->getAction()['menu.icon'] : 'arrow right', 'weight' => array_key_exists('weight', $route->getAction()) ? $route->getAction()['weight'] : 5, 'items' => []];
                 }
                 $menu_items[$arr[0]]['items'][] = ['route' => $route->getName(), 'title' => $arr[2]];
             }
         }
         $view->menu_items = array_values($menu_items);
         usort($view->menu_items, function ($a, $b) {
             if ($a['weight'] < $b['weight']) {
                 return -1;
             }
             if ($a['weight'] > $b['weight']) {
                 return 1;
             }
             return 0;
         });
         $view->withEncryptedCsrfToken(Crypt::encrypt(csrf_token()));
         $view->withUser(Auth::user());
     });
     view()->share('formatter', App::make('\\Neonbug\\Common\\Helpers\\FormatterHelper'));
     //admin
     $router->get('admin', function () {
         return redirect(route('admin-home'));
     });
     $router->group(['prefix' => $admin_locale . '/admin'], function ($router) {
         $auth_controller = '\\Neonbug\\Common\\Http\\Controllers\\Auth\\AuthController';
         $router->get('login', ['as' => 'admin-login', 'uses' => $auth_controller . '@getLogin']);
         $router->post('login', ['uses' => $auth_controller . '@postLogin']);
         $router->get('logout', ['as' => 'admin-logout', 'uses' => $auth_controller . '@getLogout']);
         $router->post('check-token', ['as' => 'admin-check-token', function () {
             return ['success' => true, 'token' => csrf_token()];
         }]);
         $router->get('token', ['as' => 'admin-token', function () {
             return ['token' => csrf_token(), 'encrypted_token' => Crypt::encrypt(csrf_token())];
         }]);
     });
     $router->group(['prefix' => $admin_locale . '/admin', 'middleware' => ['auth.admin']], function ($router) {
         $router->group(['role' => '*'], function ($router) {
             $router->get('/', ['as' => 'admin-home', 'uses' => '\\Neonbug\\Common\\Http\\Controllers\\AdminController@index']);
             $router->get('/dashboard/analytics-data', ['as' => 'admin-dashboard-analytics-data', 'uses' => '\\Neonbug\\Common\\Http\\Controllers\\AdminController@getAnalyticsData']);
         });
     });
     //============
     //== EVENTS ==
     //============
     Event::subscribe('\\Neonbug\\Common\\Handlers\\Events\\DropdownEventHandler');
     parent::boot($router);
 }