agregar acciones de update,delete al admin

master
Christian Dacid Sullca Puma 2022-10-21 01:33:03 -05:00
parent 6ee8e49b60
commit 07db23de0c
4 changed files with 47 additions and 36 deletions

View File

@ -1,6 +1,6 @@
<?php
namespace App\Http\Controllers\api;
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Facades\Socialite;

View File

@ -16,14 +16,14 @@ use App\Models\ProblemasOportunidades;
use App\Models\Recursos;
use App\Models\Responsables;
//plan::where(["id_user" => $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([

View File

@ -74,7 +74,7 @@ class UserController extends Controller
return response()->json([
"status" => 0,
"message" => "Perfil de usuario",
"data" => auth()->user()
"data" => auth()->user(),
]);
}

View File

@ -13,7 +13,7 @@ class User extends Authenticatable
use HasApiTokens, HasFactory, Notifiable;
protected $table ='users';
protected $table = 'users';
protected $fillable = [
'name',
@ -24,22 +24,35 @@ class User extends Authenticatable
public $timestamps = false;
public function estandars(){
return $this->hasMany(Estandar::class,'id');
public function estandars()
{
return $this->hasMany(Estandar::class, 'id');
}
public function plans(){
return $this->hasMany(Plan::class,'id');
public function plans()
{
return $this->hasMany(Plan::class, 'id');
}
public function evidencias(){
return $this->hasMany(Evidencia::class,'id');
public function evidencias()
{
return $this->hasMany(Evidencia::class, 'id');
}
public function providers(){
return $this->hasMany(Provider::class,'id_user');
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();
}
}