From 07db23de0ccacabeefb498e62beb31aee7b18651 Mon Sep 17 00:00:00 2001 From: Christian Dacid Sullca Puma Date: Fri, 21 Oct 2022 01:33:03 -0500 Subject: [PATCH] agregar acciones de update,delete al admin --- app/Http/Controllers/Api/LoginController.php | 2 +- app/Http/Controllers/Api/PlanController.php | 18 +++--- app/Http/Controllers/Api/UserController.php | 2 +- app/Models/User.php | 61 ++++++++++++-------- 4 files changed, 47 insertions(+), 36 deletions(-) diff --git a/app/Http/Controllers/Api/LoginController.php b/app/Http/Controllers/Api/LoginController.php index 4f7a994..d0bf55a 100644 --- a/app/Http/Controllers/Api/LoginController.php +++ b/app/Http/Controllers/Api/LoginController.php @@ -1,6 +1,6 @@ $id_user, "id" => $id])->exists() class PlanController extends Controller { public function update(Request $request, $id) { - $id_user = auth()->user()->id; - if (plan::where(["id_user" => $id_user, "id" => $id])->exists()) { + $id_user = auth()->user(); + if ($id_user->isCreadorPlan($id) or $id_user->isAdmin()) { //Actualizamos los atributos propios $plan = plan::find($id); $plan->update([ @@ -315,7 +315,6 @@ class PlanController extends Controller $responsable_aux->save(); } - return response([ "status" => 1, "message" => "!Plan de mejora creado exitosamente", @@ -323,10 +322,10 @@ class PlanController extends Controller } + //confirmar los datos nesesarios public function listPlan() { $id_user = auth()->user()->id; - $planAll = plan::select('plans.id', 'plans.nombre', 'plans.codigo', 'plans.avance', 'plans.estado', 'plans.id_user', 'estandars.name as estandar_name', 'users.name as user_name') ->join('estandars', 'plans.id_estandar', '=', 'estandars.id') ->join('users', 'plans.id_user', '=', 'users.id') @@ -337,7 +336,6 @@ class PlanController extends Controller $plan->esCreador = ($plan->id_user == $id_user) ? true : false; unset($plan->id_user); } - return response([ "status" => 1, "message" => "!Lista de planes de mejora", @@ -358,8 +356,8 @@ class PlanController extends Controller "avance" => "required|integer", ]); $id = $request->id; - $id_user = auth()->user()->id; - if (plan::where(["id_user" => $id_user, "id" => $id])->exists()) { + $id_user = auth()->user(); + if ($id_user->isCreadorPlan($id) or $id_user->isAdmin()) { $plan = plan::find($id); $plan->nombre = $request->nombre; $plan->oportunidad_plan = $request->oportunidad_plan; @@ -385,8 +383,8 @@ class PlanController extends Controller public function deletePlan($id) { - $id_user = auth()->user()->id; - if (plan::where(["id" => $id, "id_user" => $id_user])->exists()) { + $id_user = auth()->user(); + if ($id_user->isCreadorPlan($id) or $id_user->isAdmin()) { $plan = plan::where(["id" => $id, "id_user" => $id_user])->first(); $plan->delete(); return response([ diff --git a/app/Http/Controllers/Api/UserController.php b/app/Http/Controllers/Api/UserController.php index 6b7a9f2..fbad288 100644 --- a/app/Http/Controllers/Api/UserController.php +++ b/app/Http/Controllers/Api/UserController.php @@ -74,7 +74,7 @@ class UserController extends Controller return response()->json([ "status" => 0, "message" => "Perfil de usuario", - "data" => auth()->user() + "data" => auth()->user(), ]); } diff --git a/app/Models/User.php b/app/Models/User.php index 45c816e..4e4585f 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -10,36 +10,49 @@ use Laravel\Sanctum\HasApiTokens; class User extends Authenticatable { - use HasApiTokens, HasFactory, Notifiable; + use HasApiTokens, HasFactory, Notifiable; - protected $table ='users'; + protected $table = 'users'; - protected $fillable = [ - 'name', - 'lastname', - 'email', - 'password', - ]; + protected $fillable = [ + 'name', + 'lastname', + 'email', + 'password', + ]; - public $timestamps = false; + public $timestamps = false; - public function estandars(){ - return $this->hasMany(Estandar::class,'id'); - } - public function plans(){ - return $this->hasMany(Plan::class,'id'); - } - public function evidencias(){ - return $this->hasMany(Evidencia::class,'id'); - } - public function providers(){ - return $this->hasMany(Provider::class,'id_user'); - } + public function estandars() + { + return $this->hasMany(Estandar::class, 'id'); + } + public function plans() + { + return $this->hasMany(Plan::class, 'id'); + } + public function evidencias() + { + return $this->hasMany(Evidencia::class, 'id'); + } + public function providers() + { + return $this->hasMany(Provider::class, 'id_user'); + } - public function roles(){ - return $this->belongsToMany(role::class,'role_user','id_user', 'id_rol'); - } + public function roles() + { + return $this->belongsToMany(role::class, 'role_user', 'id_user', 'id_rol'); + } + public function isAdmin() + { + return $this->roles()->where('name', 'Admin')->exists(); + } + public function isCreadorPlan($id_plan) + { + return plan::where('id', $id_plan)->where('id_user', $this->id)->exists(); + } }