Eliminando usuarios

This commit is contained in:
2021-04-30 03:04:32 -04:00
parent d3c7c81661
commit 9fdf9723be
2 changed files with 54 additions and 14 deletions

View File

@@ -63,14 +63,14 @@ class UsuariosController extends Controller {
if (!$logged_user->canManageUsers()) { if (!$logged_user->canManageUsers()) {
return response()->json([ return response()->json([
'error' => 'not_allowed', 'error' => 'not_allowed',
'message' => 'El usuario no tiene permisos para crear usuarios' 'message' => 'El usuario ' . $logged_user->id . ' no tiene permisos para crear usuarios'
], 403); ], 403);
} }
if (!$logged_user->hasPermissionsOnRestaurant($restaurant)) { if (!$logged_user->hasPermissionsOnRestaurant($restaurant)) {
return response()->json([ return response()->json([
'error' => 'not_allowed', 'error' => 'not_allowed',
'message' => 'El usuario no puede crear un usuario en un restaurant al que no pertenece' 'message' => 'El usuario ' . $logged_user->id . ' no puede crear un usuario en el restaurant ' . $restaurant->id . ' porque que no pertenece a el'
], 403); ], 403);
} }
@@ -132,14 +132,14 @@ class UsuariosController extends Controller {
if (!$logged_user->canManageUsers()) { if (!$logged_user->canManageUsers()) {
return response()->json([ return response()->json([
'error' => 'not_allowed', 'error' => 'not_allowed',
'message' => 'El usuario no tiene permisos para modificar usuarios' 'message' => 'El usuario ' . $logged_user->id . ' no tiene permisos para modificar usuarios'
], 403); ], 403);
} }
if (!$logged_user->hasPermissionsOverUser($usuario)) { if (!$logged_user->hasPermissionsOverUser($usuario)) {
return response()->json([ return response()->json([
'error' => 'not_allowed', 'error' => 'not_allowed',
'message' => 'El usuario no tiene permisos para modificar a este usuario' 'message' => 'El usuario ' . $logged_user->id . ' no tiene permisos para modificar al usuario ' . $usuario->id
], 403); ], 403);
} }
@@ -169,8 +169,44 @@ class UsuariosController extends Controller {
return response()->json(["usuario" => $usuario]); return response()->json(["usuario" => $usuario]);
} }
public function delete(Request $request) { public function delete(Request $request, $id) {
/** @var Usuario $logged_user */
$logged_user = $request->user;
$usuario = Usuario::findByIdOrAuth0Id($id);
if (!$usuario) {
return response()->json([
'error' => 'not_found',
'message' => 'El usuario con id ' . $id . ' no existe'
], 404);
} }
if (!$logged_user->canManageUsers()) {
return response()->json([
'error' => 'not_allowed',
'message' => 'El usuario ' . $logged_user->id . ' no tiene permisos para modificar usuarios'
], 403);
}
if (!$logged_user->hasPermissionsOverUser($usuario)) {
return response()->json([
'error' => 'not_allowed',
'message' => 'El usuario ' . $logged_user->id . ' no tiene permisos para modificar al usuario ' . $usuario->id
], 403);
}
$auth0 = app(Auth0Service::class);
$auth0Response = $auth0->deleteUser($usuario->auth0_id);
if ($auth0Response && array_key_exists('error', $auth0Response)) {
return response()->json([
'error' => $auth0Response['errorCode'],
'message' => $auth0Response['message'],
], $auth0Response['statusCode']);
}
$usuario->delete();
return response()->json([], 204);
}
} }

View File

@@ -71,17 +71,21 @@ class Auth0Service extends ServiceProvider {
$payload = ["connection" => env('AUTH0_CONNECTION')]; $payload = ["connection" => env('AUTH0_CONNECTION')];
if ($email) if ($email) $payload["email"] = $email;
$payload["email"] = $email; if ($username) $payload["username"] = $username;
if ($username) if ($password) $payload["password"] = $password;
$payload["username"] = $username; if ($metadata) $payload["app_metadata"] = $metadata;
if ($password)
$payload["password"] = $password;
if ($metadata)
$payload["app_metadata"] = $metadata;
return Http::withToken($this->getToken()) return Http::withToken($this->getToken())
->patch($endpoint, $payload) ->patch($endpoint, $payload)
->json(); ->json();
} }
public function deleteUser($auth0_id) {
$endpoint = env('AUTH0_DOMAIN') . 'api/v2/users/' . $auth0_id;
return Http::withToken($this->getToken())
->delete($endpoint)
->json();
}
} }