public function run() { DB::table('permissions')->truncate(); $permissions = []; $routeCollection = Route::getRoutes(); /* ** All route permission */ foreach ($routeCollection as $value) { $action = $value->getAction(); if (isset($action['prefix']) && ($action['prefix'] = '/api/v1/' && isset($action['as']))) { $route = explode(".", $action['as'], 3); $route = $route[2]; $route_name = ucfirst(preg_replace('/\\./', ' ', $route)); $route_group = explode(" ", $route_name); $route_group = $route_group[0]; $permissions[] = ['name' => $route_name, 'name_group' => $route_group, 'slug' => $route, 'slug_view' => 'app.' . $route, 'created_at' => date("Y-m-d H:i:s"), 'updated_at' => date("Y-m-d H:i:s")]; } } /* ** Custom route permission */ $custom_permission = [['slug_view' => 'app.multimedia.upload'], ['slug_view' => 'app.activityLogs.index']]; /* ** Re-define custom permission */ foreach ($custom_permission as $value) { $slug_view = explode(".", $value['slug_view'], 2); $name_group = explode(".", $slug_view[1]); $route_name = ucfirst($name_group[0]) . ' ' . ucfirst($name_group[1]); $name_group = ucfirst($name_group[0]); $slug = $slug_view[1]; $permissions[] = ['name' => $route_name, 'name_group' => $name_group, 'slug' => $slug, 'slug_view' => $value['slug_view'], 'created_at' => date("Y-m-d H:i:s"), 'updated_at' => date("Y-m-d H:i:s")]; } Permission::insert($permissions); }