findOrFail($roleId); } public function update($permissionId, array $newDetails) { return Permission::where('id', $permissionId)->update($newDetails); } public function getPermissionListsArrangedByPrefix() { $permissions = self::findAll(); $routeNameArr = []; foreach ($permissions as $permission) { if (!is_null($permission->name)) { $routeName = explode('.', $permission->name); if (is_array($routeName) && !empty($routeName[0])) { $routeNameArr[$routeName[0]][$permission->id] = array_key_exists(1, $routeName) ? $routeName[1] : $routeName[0]; } } } return $routeNameArr; } public static function generatePermissionFromRoutes() { $routes = Route::getRoutes(); // dd($routes); foreach ($routes as $route) { $routeName = $route->getName(); $ignoreRoutes = [ 'installer', 'LaravelUpdater', 'debugbar', 'login', 'register', 'logout', 'post', 'ignition', 'unisharp', 'userLogin', 'postLogin', 'postLogin', 'postresgistration', 'home', 'single', 'newsDetail', 'password', 'showHororscope', 'showInternational', 'showVideos', 'videoDetail', 'showAboutus', 'showArtilce', 'showProvinces', 'contact', 'sendEmail', 'verification', 'auth', 'upload', 'sanctum', 'ignition', 'welcome', 'home', 'api' ]; $routePrefix = explode('.', $routeName); if (is_array($routePrefix) && !empty($routePrefix[0])) { if (!in_array($routePrefix[0], $ignoreRoutes) && !Permission::where('name', $routeName)->exists()) { Permission::create(['name' => $routeName, 'guard_name' => 'web']); } } } $roles = Role::all(); foreach ($roles as $role) { if ($role->name == 'admin' || $role->name == 'editor') { $role->givePermissionTo(Permission::all()); } } } }