Carga inicial
This commit is contained in:
175
app/Http/Controllers/Administrador/RolesController.php
Normal file
175
app/Http/Controllers/Administrador/RolesController.php
Normal file
@@ -0,0 +1,175 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Administrador;
|
||||
|
||||
|
||||
use App\Http\Requests\Administrador\RolesRequest;
|
||||
use App\Models\Rol;
|
||||
use Cartalyst\Sentinel\Native\Facades\Sentinel;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Support\Facades\Route;
|
||||
use Log;
|
||||
|
||||
class RolesController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*
|
||||
* @return \Illuminate\Http\Response
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
$orderBy = $request->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);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user