/**
  * Define the permissions
  */
 protected function definePermissions()
 {
     foreach ($this->getPermissions() as $permission) {
         $this->gate->define($permission->name, function ($user) use($permission) {
             return $user->hasRole($permission->roles);
         });
     }
 }
Ejemplo n.º 2
0
 private function definePolicies(GateContract $gate)
 {
     $gate->define('use-tags', function ($user) {
         return $user->is_staff;
     });
     $gate->define('isStaff', function ($user) {
         return $user->is_staff;
     });
 }
Ejemplo n.º 3
0
 /**
  * Register any application authentication / authorization services.
  *
  * @param  \Illuminate\Contracts\Auth\Access\Gate  $gate
  * @return void
  */
 public function boot(GateContract $gate)
 {
     $gate->define('access-admin-area', function (User $user) {
         return $user->hasRole('admin');
     });
     $gate->define('create-genre', function (User $user) {
         return $user->hasRole('admin');
     });
     $this->registerPolicies($gate);
 }
Ejemplo n.º 4
0
 /**
  *  Register the permissions.
  *
  * @return bool
  */
 public function registerPermissions()
 {
     try {
         foreach ($this->getPermissions() as $permission) {
             $this->gate->define($permission->name, function ($user) use($permission) {
                 return $user->hasRole($permission->roles);
             });
         }
     } catch (\Exception $e) {
     }
 }
Ejemplo n.º 5
0
 /**
  * Defines the Abilities for the application.
  *
  * @return void
  */
 public function defineAbilities()
 {
     $this->gate->before(function ($user, $ability) {
         if ($user->isSuperuser()) {
             return true;
         }
     });
     foreach ($this->getPermissions() as $permission) {
         $this->gate->define($permission->name, function ($user) use($permission) {
             return $user->hasPermission($permission->name);
         });
     }
 }
 /**
  *  Register the permissions.
  *
  * @return bool
  */
 public function registerPermissions()
 {
     try {
         $this->getPermissions()->map(function ($permission) {
             $this->gate->define($permission->name, function ($user) use($permission) {
                 return $user->hasPermissionTo($permission);
             });
         });
         return true;
     } catch (Exception $e) {
         Log::alert('Could not register permissions');
         return false;
     }
 }
Ejemplo n.º 7
0
 /**
  * Create a new stinter instance.
  *
  * @param GateContract $gate
  * @param string|null $ability Name used to call the restriction
  */
 public function __construct(GateContract $gate, $ability = null)
 {
     $this->stint = is_string($ability) ? $ability : static::class;
     $gate->before([$this, 'before']);
     $gate->define($this->stint, [$this, 'check']);
     $gate->after([$this, 'after']);
 }
 /**
  * Register any application authentication / authorization services.
  *
  * @param  \Illuminate\Contracts\Auth\Access\Gate  $gate
  * @return void
  */
 public function boot(GateContract $gate)
 {
     foreach (get_class_methods(new \App\Policies\GenericEntityPolicy()) as $method) {
         $gate->define($method, "App\\Policies\\GenericEntityPolicy@{$method}");
     }
     $this->registerPolicies($gate);
 }
 /**
  * @param GateContract $gate
  */
 protected function registerPermissions(GateContract $gate)
 {
     foreach ($this->getPermissions() as $permission) {
         $gate->define($permission->name, function ($user) use($permission) {
             return $user->hasPermission($permission);
         });
     }
 }
Ejemplo n.º 10
0
 /**
  * @param Gate              $gate
  * @param PermissionManager $manager
  */
 protected function definePermissions(Gate $gate, PermissionManager $manager)
 {
     foreach ($manager->getPermissionsWithDotNotation() as $permission) {
         $gate->define($permission, function (HasPermissions $user) use($permission) {
             return $user->hasPermissionTo($permission);
         });
     }
 }
Ejemplo n.º 11
0
 protected function definePermission(Gate $gate)
 {
     $permissions = Permission::all();
     foreach ($permissions as $permission) {
         $gate->define($permission->name, function (HasRoleAndPermission $user) use($permission) {
             return $user->hasPermission($permission);
         });
     }
 }
Ejemplo n.º 12
0
 /**
  * define all permissions
  *
  * @return void
  */
 public function definePermissions(Gate $gate)
 {
     $permissions = Role::allPermissions();
     foreach ($permissions as $permission => $value) {
         $gate->define($permission, function (User $user) use($permission) {
             return $user->hasPermission($permission);
         });
     }
 }
Ejemplo n.º 13
0
 /**
  * Define acl as gate permissions.
  *
  * @param Gate $gate
  * @param Backend $backend
  */
 public function boot(Gate $gate, Backend $backend)
 {
     $this->app->booted(function () use($gate, $backend) {
         foreach ($backend->getAllAcl() as $acl => $label) {
             $gate->define($acl, function ($user) use($acl) {
                 return $user instanceof User ? $user->hasAccess($acl) : false;
             });
         }
     });
 }
Ejemplo n.º 14
0
 /**
  *  Register the permissions.
  *
  * @return bool
  */
 public function registerPermissions()
 {
     try {
         $this->getPermissions()->map(function ($permission) {
             $this->gate->before(function ($user, $ability) {
                 if ($user->hasRole(config('lair.super_role'))) {
                     return true;
                 }
             });
             $this->gate->define($permission->name, function ($user) use($permission) {
                 return $user->hasPermission($permission);
             });
         });
         return true;
     } catch (Exception $e) {
         Log::alert('Could not register permissions');
         return false;
     }
 }
 /**
  * @param GateContract $gate
  */
 private function registerPolicies($gate)
 {
     $gate->define('module_forms_view_results', function ($user) {
         return $user->hasRole('supervisor|ejecutivo');
     });
     $gate->define('module_forms_assign_user_results', function ($user, $results) {
         if ($user->hasRole('supervisor')) {
             return true;
         }
         if ($results) {
             foreach ($results as $result) {
                 if ($user->id != $result->assigned_user_id) {
                     return false;
                 }
             }
             return true;
         }
         return false;
     });
 }
Ejemplo n.º 16
0
 public function registerAcl(GateContract $gate)
 {
     if ($this->enabled()) {
         // Dynamically register permissions with Laravel's Gate.
         foreach ($this->getPermissions() as $permission) {
             $gate->define($permission->name, function ($user) use($permission) {
                 return $user->hasPermission($permission);
             });
         }
     }
 }
Ejemplo n.º 17
0
 /**
  * Registers reactor policies
  *
  * @param GateContract $gate
  */
 protected function registerReactorPolicies(GateContract $gate)
 {
     $gate->before(function ($user, $ability) {
         if ($user->isSuperAdmin()) {
             return true;
         }
     });
     foreach ($this->getPermissions() as $permission) {
         $gate->define($permission->name, function ($user) use($permission) {
             return $user->hasPermission($permission->name) || $user->hasRole($permission->roles);
         });
     }
 }
Ejemplo n.º 18
0
 /**
  * Register defined permissions from database.
  *
  * @param \Illuminate\Contracts\Auth\Access\Gate $gate
  */
 protected function registerPermissions(GateContract $gate)
 {
     try {
         foreach ($this->getPermissions() as $permission) {
             $ability = $permission->slug;
             $policy = function ($user) use($permission) {
                 return $user->hasRole($permission->roles);
             };
             if (Str::contains($permission->slug, '@')) {
                 $policy = $permission->slug;
                 $ability = $permission->name;
             }
             $gate->define($ability, $policy);
         }
     } catch (QueryException $e) {
         // \\_(",)_//
     }
 }
 /**
  * Register authorization permissions.
  *
  * @param Gate $gate
  */
 public function boot(Gate $gate)
 {
     // The configuration path.
     $config = __DIR__ . '/Config/config.php';
     // The migrations path.
     $migrations = __DIR__ . '/Migrations/';
     // The authorization tag.
     $tag = 'authorization';
     // Set the configuration and migrations to publishable.
     $this->publishes([$migrations => database_path('migrations'), $config => config_path('authorization.php')], $tag);
     // Merge the configuration.
     $this->mergeConfigFrom($config, 'authorization');
     // Dynamically register permissions with Laravel's Gate.
     foreach ($this->getPermissions() as $permission) {
         $gate->define($permission->name, function ($user) use($permission) {
             return $user->hasPermission($permission);
         });
     }
 }
 /**
  * Register authorization permissions.
  *
  * @param Gate $gate
  */
 public function boot(Gate $gate)
 {
     // The configuration path.
     $config = __DIR__ . '/Config/config.php';
     // The migrations path.
     $migrations = __DIR__ . '/Migrations/';
     // Set the configuration and migrations to publishable.
     $this->publishes([$migrations => database_path('migrations'), $config => config_path('authorization.php')], 'authorization');
     // Merge the configuration.
     $this->mergeConfigFrom($config, 'authorization');
     // Dynamically register permissions with Laravel's Gate.
     foreach ($this->getPermissions() as $permission) {
         $closure = $permission->hasClosure() ? $permission->closure : function ($user) use($permission) {
             return $user->hasPermission($permission);
         };
         $gate->define($permission->name, $closure);
     }
     // Register authorization commands.
     $this->commands([CreateRole::class, CreatePermission::class]);
 }
 /**
  * Bootstrap any application services.
  *
  * @return void
  */
 public function boot(GateContract $gate)
 {
     define('MUSTARD_AUTH', true);
     // Include routes
     if (!$this->app->routesAreCached()) {
         require __DIR__ . '/../../includes/routes.php';
     }
     // Load views
     $this->loadViewsFrom(__DIR__ . '/../../resources/views', 'mustard');
     // Load translations
     $this->loadTranslationsFrom(__DIR__ . '/../../resources/lang', 'mustard-auth');
     // Register middleware
     $this->app->router->middleware('auth', AuthenticateAndVerifyEmail::class);
     $this->app->router->middleware('guest', RedirectIfAuthenticated::class);
     // Register LaravelVerifyEmails service provider
     $this->app->register('LaravelVerifyEmails\\Auth\\VerifyEmails\\VerifyEmailServiceProvider');
     // Publish migrations
     $this->publishes([__DIR__ . '/../../database/migrations/' => database_path('migrations')], 'migrations');
     // Register authorisation policies
     $gate->define('end-item', function ($user, $item) {
         return $user->getKey() === $item->userId;
     });
     // @TODO add more authorisation policies
 }
Ejemplo n.º 22
0
 protected function defineGuideAbilities(Gate $gate)
 {
     // View guides.
     $gate->define('guides.show', function ($user, $guide) {
         return $user->can('manage.guides') ?: $guide->published;
     });
     // Edit guides.
     $gate->define('guides.edit', function ($user, $guide) {
         return $user->can('manage.guides') ?: $user->id == $guide->user_id;
     });
     // Delete guides.
     $gate->define('guides.destroy', function ($user, $guide) {
         return $user->can('manage.guides') ?: $user->id == $guide->user_id;
     });
 }
 /**
  * Define policies.
  *
  * @param  \Illuminate\Contracts\Auth\Access\Gate  $gate
  * @param  string                                  $class
  * @param  array                                   $policies
  */
 protected function defineMany($gate, $class, array $policies)
 {
     foreach ($policies as $method => $ability) {
         $gate->define($ability, "{$class}@{$method}");
     }
 }
Ejemplo n.º 24
0
 /**
  * @param GateContract $gate
  * @param $permission
  */
 public function getAllowedPermissions(GateContract $gate, $permission)
 {
     $gate->define($permission->name, function ($user) use($permission) {
         return $user->hasPermission($permission);
     });
 }
Ejemplo n.º 25
0
 /**
  * Register any application authentication / authorization services.
  *
  * @param  \Illuminate\Contracts\Auth\Access\Gate  $gate
  * @return void
  */
 public function boot(GateContract $gate)
 {
     /******************obtener roles*********************/
     /****************** Reglas para acceso de usuarios con roles ******************************/
     $gate->define('verificar-rol', function ($User) {
         $b = False;
         $roles = DB::table('usr_login_roles')->whereid_login($User->id)->whereactive(1)->get();
         if ($roles != null) {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = True;
         }
         return $b;
     });
     /****************Reglas para admin**********************/
     $gate->define('nuevos-comentarios', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('nuevos-usuario', function ($User) {
         /*$permisos='admin.nuevo';
           $json = DB::table('cms_categories')     
           ->select('cms_categories.title', 'cms_categories.hits')    
           ->where('cms_categories.active', '=', 1)->get();*/
         $b = True;
         return $b;
     });
     $gate->define('total-albums', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('graficas', function ($User) {
         $b = True;
         return $b;
     });
     /****************Reglas para menu**********************/
     $gate->define('menus.Modulodemenu', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Menús.ModulodeMenú:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('menu.Crear', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Menú.Crear:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('menu.editar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Menú.Editar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('menu.eliminar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Menú.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('menu.elementos', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Menú.Elementos:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('menu.ordenar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Menú.Ordenar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para publicaciones**********************/
     $gate->define('Publicaciones.ModulodePublicaciones', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Publicaciones.ModulodePublicaciones:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para tipos**********************/
     $gate->define('Tipos.Submodulodetipos', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Tipos.Submodulodetipos:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('admin.Tipos.Crear', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Tipos.Crear:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('tipos-editar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Tipos.Editar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('tipos-eliminar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Tipos.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para secciones**********************/
     $gate->define('Secciones.SubmodulodeSecciones', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Secciones.SubmodulodeSecciones:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Secciones.Crear', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Secciones.Crear:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Secciones.editar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = ',admin.Secciones.Editar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Secciones.eliminar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Secciones.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Secciones.ordenar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Secciones.ordenar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Secciones.acceso', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Secciones.acceso:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Secciones.publicar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Secciones.Publicar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para categorias**********************/
     $gate->define('Categorias.SubmodulodeCategorias', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Categorias.SubmodulodeCategorias:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Categorias.Crear', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Categorias.Crear:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Categorias.Editar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = ',admin.Categorias.Editar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Categorias.Eliminar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = ',admin.Categorias.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Categorias.ordenar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Categorias.ordenar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Categorias.acceso', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Categorias.acceso:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Categorias.Publicar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Categorias.Publicar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para documentos**********************/
     $gate->define('Documentos.SubmodulodeDocumentos', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Documentos.SubmodulodeDocumentos:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Documentos.Crear', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Documentos.Crear:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Documentos.Editar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Documentos.Editar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Documentos.Eliminar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Documentos.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Documentos.ordenar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Documentos.ordenar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Documentos.acceso', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Documentos.acceso:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Documentos.Publicar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Documentos.Publicar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para comentarios**********************/
     $gate->define('Comentarios.SubmodulodeComentarios', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Comentarios.SubmodulodeComentarios:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Comentarios.Publicar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Comentarios.Publicar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Comentarios.Eliminar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Comentarios.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para archivos**********************/
     $gate->define('archivos', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Archivos.ModulodeArchivos:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para albums**********************/
     $gate->define('Albums.SubmodulodeAlbums', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Albums.SubmodulodeAlbums:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Albums.Creargaleria', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Albums.Creargaleria:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Albums.Subirimagenes', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Albums.Subirimagenes:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Albums.ordenar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Albums.ordenar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Albums.Publicar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Albums.Publicar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Albums.Colocaralinicio', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Albums.Colocaralinicio:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Albums.Editar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Albums.Editar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Albums.Eliminar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Albums.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('albums-imagenes', function ($User) {
         $b = True;
         return $b;
     });
     /****************Reglas para directorio**********************/
     $gate->define('Directorio.SubmodulodeDirectorio', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Directorio.SubmodulodeDirectorio:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('directorio.Nuevo', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Albums.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('directorio-editar', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('directorio-eliminar', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('directorio-inicio', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('directorio-publicado', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('directorio-orden', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('directorio-archivo', function ($User) {
         $b = True;
         return $b;
     });
     /****************Reglas para usuario**********************/
     $gate->define('Usuarios.ModulodeUsuarios', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Usuarios.ModulodeUsuarios:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Usuarios.SubmodulodeUsuarios', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Usuarios.SubmodulodeUsuarios:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Usuarios.Crear', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Usuarios.Crear:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Usuarios.Editar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Usuarios.Editar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Usuarios.Asignarroles', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Usuarios.Asignarroles:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Usuarios.Asignarpermisosespeciales', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Usuarios.Asignarpermisosespeciales:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para roles**********************/
     $gate->define('Roles.SubmodulodeRoles', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Roles.SubmodulodeRoles:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Roles.Crear', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Roles.Crear:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Roles.Editar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Roles.Editar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Roles.Eliminar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Roles.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('roles-activo', function ($User) {
         $b = True;
         return $b;
     });
     /****************Reglas para modulos**********************/
     $gate->define('Módulos.Asignarpermisos', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Módulos.Asignarpermisos:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('modulos-nuevo', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('modulos-editar', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('modulos-eliminar', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('modulos-especiales', function ($User) {
         $b = True;
         return $b;
     });
     $gate->define('modulos-submenus', function ($User) {
         $b = True;
         return $b;
     });
     /****************Reglas para configuracion permisos**********************/
     $gate->define('Configuración.Asignarpermisosamodulos', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Configuración.Asignarpermisosamodulos:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     /****************Reglas para configuracion**********************/
     $gate->define('Configuraciónes.Modulodeconfiguraciondemetas', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Configuraciónes.Modulodeconfiguraciondemetas:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Configuraciónes.Crearmetas', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Configuraciónes.Crearmetas:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Configuraciónes.Editar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Configuraciónes.Editar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
     $gate->define('Configuraciónes.Eliminar', function ($User) {
         $permisoC = "";
         $roles = DB::table('usr_login_roles')->select('id_role')->whereid_login($User->id)->whereactive(1)->get();
         foreach ($roles as $r) {
             $join = DB::table('user_module_rol')->select('access_granted')->whereid_role($r->id_role)->whereactive(1)->get();
             if ($join != null) {
                 foreach ($join as $j) {
                     $permisoC .= $j->access_granted;
                 }
             }
         }
         $permisoEspeciales = DB::table('special_permissions')->select('access')->whereid_user(3)->whereactive(1)->get();
         $p = str_replace('"', " ", $permisoC);
         $p = str_replace(' ', "", $p);
         $ca = 'admin.Configuraciónes.Eliminar:true';
         $resultado = strpos($p, $ca);
         if ($resultado == null) {
             $b = False;
         } else {
             $b = True;
         }
         if ($User->email == "admin@admin") {
             $b = true;
         }
         return $b;
     });
 }
Ejemplo n.º 26
0
 /**
  * Register Membership's permissions with Laravel's Gate.
  *
  * @param \Illuminate\Contracts\Auth\Access\Gate $gate
  */
 public function registerPermissions(\Illuminate\Contracts\Auth\Access\Gate $gate)
 {
     // Register permissions only if the table exists
     if (!\Schema::hasTable('permissions')) {
         return;
     }
     $permissions = $this->permissions->all();
     foreach ($permissions as $permission) {
         $gate->define($permission->handle, function ($user) use($permission) {
             return $user->can($permission->handle);
         });
     }
 }