input('sortBy','name'); $order = $request->input('order','asc'); $queryBuilder = Rol::orderBy($orderBy,$order); if($query = $request->get('query',false)){ $queryBuilder->where(function($q) use ($query){ $q->where('name','like','%' .$query.'%') ->orWhere('slug','like','%' .$query.'%'); }); } if($perPage = $request->input('perPage',false)){ $users = $queryBuilder->paginate($perPage); }else{ $users = ['data'=>$queryBuilder->get()]; } return response()->success($users); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(RolesRequest $request) { $data = $request->only([ 'slug', 'name', 'movil', 'web' ]); $existe = Rol::where('slug','=',$data['slug']) ->where('name','=',$data['name']) ->first(); if($existe){ return response()->unprocessable('Error', ['El rol ya se encuentra registrado']); } $rol = Rol::create($data); $role = Sentinel::findRoleById($rol->id); foreach ($request->input('permissions') as $key => $value){ $role->addPermission($key, ($value == "true")? true : false); $role->save(); } return response()->success($rol); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $role = Sentinel::findRoleById($id); $routeCollection = Route::getRoutes(); foreach ($routeCollection as $value) { $collection[] = ['name'=>$value->getName()]; } $collection = collect($collection); $sorted = $collection->sortBy('name'); $sorted->values()->all(); $permisos = []; foreach ($sorted as $value) { if($value['name']!=''){ $permisos[$value['name']] = false; } } $role['permissions'] = collect($permisos) ->merge($role['permissions']) ->all(); //Log::info("roles show"); //Log::info($role); return response()->success($role); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(RolesRequest $request, $id) { $rol = Rol::findOrFail($id); $data = $request->only(['slug','name','permissions','movil','web']); $role = Sentinel::findRoleById($id); foreach ($data['permissions'] as $key => $value){ $role->updatePermission($key, ($value == "true")? true : false); $role->addPermission($key, ($value == "true")? true : false); $role->save(); } $rol->slug = $data['slug']; $rol->name = $data['name']; $rol->movil = $data['movil']; $rol->web = $data['web']; $rol->save(); return response()->success($rol); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $rol = Rol::findOrFail($id); $rol->delete(); return response()->success(['result'=>true]); } public function rutas(){ $routeCollection = Route::getRoutes(); foreach ($routeCollection as $value) { $collection[] = ['name'=>$value->getName()]; } $collection = collect($collection); $sorted = $collection->values()->all(); $permisos = []; foreach ($sorted as $value) { if($value['name']!=''){ $permisos[$value['name']] = false; } } return response()->success($permisos); } }