* [Implenta] confirmación de contraseñas para eliminar artículos.
* [Actualiza] mensajes en los modelos.
This commit is contained in:
parent
12e781557a
commit
a3e66c6794
|
@ -23,8 +23,8 @@ require_once 'models/adminModel.php';
|
|||
class adminController {
|
||||
private const limit = 10;
|
||||
|
||||
// Renderiza la página de administración para aprobar un artículo
|
||||
// y realiza búsquedas con el método POST.
|
||||
// Renderiza la página de administración con la lista de artículos
|
||||
// en espera de aprobación y realiza búsquedas con el método POST.
|
||||
static public function approve_articles() {
|
||||
$max = 246;
|
||||
$search = utils::validate_search(NABU_ROUTES['approve-articles'], $max);
|
||||
|
@ -54,10 +54,10 @@ class adminController {
|
|||
// Renderiza la página de administración para editar un artículo
|
||||
// y actualiza los datos de un artículo con el método POST.
|
||||
static public function review_article() {
|
||||
$validations = new validations(NABU_ROUTES['approve-articles']);
|
||||
|
||||
$messages = messages::get();
|
||||
|
||||
$validations = new validations(NABU_ROUTES['approve-articles']);
|
||||
|
||||
// Valida la URL del artículo.
|
||||
$data = $validations -> validate($_GET, array(
|
||||
array('field' => 'slug', 'min_length' => 1, 'max_length' => 255)
|
||||
|
@ -92,7 +92,7 @@ class adminController {
|
|||
|
||||
$form = array_merge($_POST, $_FILES);
|
||||
|
||||
// Valida el formulario para actualizar los datos de un artículo.
|
||||
// Valida el formulario que actualiza los datos de un artículo.
|
||||
$data = $validations -> validate($form, array(
|
||||
array('field' => 'cover', 'type' => 'image', 'optional' => true),
|
||||
array('field' => 'title', 'trim_all' => true, 'min_length' => 1, 'max_length' => 246),
|
||||
|
@ -159,10 +159,62 @@ class adminController {
|
|||
|
||||
// Renderiza la página para eliminar un artículo.
|
||||
static public function delete_article() {
|
||||
$token = csrf::generate();
|
||||
$messages = messages::get();
|
||||
|
||||
require_once 'views/pages/confirm-password.php';
|
||||
$validations = new validations(NABU_ROUTES['approve-articles']);
|
||||
|
||||
// Valida la URL del artículo.
|
||||
$data = $validations -> validate($_GET, array(
|
||||
array('field' => 'slug', 'min_length' => 1, 'max_length' => 255)
|
||||
));
|
||||
|
||||
$slug = $data['slug'];
|
||||
|
||||
$view = NABU_ROUTES['delete-article'] . '&slug=' . $slug;
|
||||
|
||||
if (empty($_POST['confirm-password-form'])) {
|
||||
unset($validations, $data, $slug);
|
||||
|
||||
$token = csrf::generate();
|
||||
|
||||
require_once 'views/pages/confirm-password.php';
|
||||
|
||||
exit();
|
||||
}
|
||||
|
||||
csrf::validate($_POST['csrf']);
|
||||
|
||||
$validations -> route = $view;
|
||||
|
||||
// Valida el formulario para confirmar la contraseña del usuario.
|
||||
$data = $validations -> validate($_POST, array(
|
||||
array('field' => 'password', 'min_length' => 6, 'max_length' => 255, 'not_spaces' => true, 'equal' => $_POST['confirm-password'])
|
||||
));
|
||||
|
||||
$adminModel = new adminModel();
|
||||
|
||||
$id = $_SESSION['user']['id'];
|
||||
|
||||
$admin = $adminModel -> get_admin($id);
|
||||
|
||||
if (empty($admin))
|
||||
utils::redirect(NABU_ROUTES['logout']);
|
||||
|
||||
// Valida la contraseña del usuario.
|
||||
if (!password_verify($data['password'], $admin['password'])) {
|
||||
messages::add('La contraseña es incorrecta');
|
||||
utils::redirect($view);
|
||||
}
|
||||
|
||||
// Obtiene los datos del artículo.
|
||||
$article = $adminModel -> get_article($slug);
|
||||
|
||||
if (empty($article))
|
||||
utils::redirect(NABU_ROUTES['approve-articles']);
|
||||
|
||||
messages::add('El artículo se ha eliminado corractamente');
|
||||
|
||||
utils::redirect(NABU_ROUTES['approve-articles']);
|
||||
}
|
||||
|
||||
// Renderiza la página para autorizar la publicación de un artículo.
|
||||
|
|
|
@ -260,7 +260,7 @@ class profilesController {
|
|||
|
||||
$validations = new validations($view);
|
||||
|
||||
// Valida el formulario para eliminar una cuenta de usuario.
|
||||
// Valida el formulario para confirmar la contraseña del usuario.
|
||||
$data = $validations -> validate($_POST, array(
|
||||
array('field' => 'password', 'min_length' => 6, 'max_length' => 255, 'not_spaces' => true, 'equal' => $_POST['confirm-password'])
|
||||
));
|
||||
|
|
|
@ -213,9 +213,11 @@ class usersController {
|
|||
|
||||
messages::check($view);
|
||||
|
||||
$role = $user['role'];
|
||||
|
||||
// Redirecciona al panel de administración en base al role.
|
||||
if ($user['role'] == 'admin')
|
||||
utils::redirect(NABU_ROUTES['admin']);
|
||||
if ($role == 'admin' || $role == 'moderator')
|
||||
utils::redirect(NABU_ROUTES['approve-articles']);
|
||||
|
||||
// Redirecciona al perfil del usuario.
|
||||
utils::redirect(NABU_ROUTES['profile'] . '&user=' . urlencode($user['username']));
|
||||
|
|
|
@ -77,7 +77,7 @@ class adminModel extends dbConnection {
|
|||
return $articles;
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para mostrar los artículos en espera de aprobación');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para listar los artículos en espera de aprobación');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -109,7 +109,7 @@ class adminModel extends dbConnection {
|
|||
return $prepare -> fetch();
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para buscar la portada del artículo');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para buscar la portada de un artículo');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,31 @@ class adminModel extends dbConnection {
|
|||
$this -> pdo -> prepare($query) -> execute($data);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para actualizar los datos del artículo');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para actualizar los datos de un artículo');
|
||||
}
|
||||
}
|
||||
|
||||
// @return los datos de un usuario administrador.
|
||||
public function get_admin(int $id) {
|
||||
$query = 'SELECT id, role_id AS role, username, email, password FROM users '.
|
||||
'WHERE id = ? AND activated = TRUE AND (role_id = 1 OR role_id = 2)';
|
||||
|
||||
try {
|
||||
$prepare = $this -> pdo -> prepare($query);
|
||||
|
||||
$prepare -> execute(array($id));
|
||||
|
||||
$user = $prepare -> fetch();
|
||||
|
||||
if (empty($user))
|
||||
return array();
|
||||
|
||||
$user['role'] = $this -> role($user['role']);
|
||||
|
||||
return $user;
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para obtener los datos de un usuario administrador');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ class articlesModel extends dbConnection {
|
|||
return $article;
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para validar si tu publicación es única');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para obtener el identificador de un artículo');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -50,7 +50,7 @@ class articlesModel extends dbConnection {
|
|||
$this -> pdo -> prepare($query) -> execute($data);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para registrar tu publicación');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para registrar una publicación');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -31,7 +31,7 @@ class authenticationModel extends dbConnection {
|
|||
$this -> pdo -> prepare($query) -> execute($authentication);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para registrar tu clave de verificación de dirección de correo electrónico');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para registrar una clave de verificación de dirección de correo electrónico');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -54,7 +54,7 @@ class authenticationModel extends dbConnection {
|
|||
return $user;
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para validar tu dirección de correo electrónico');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para obtener los datos de autenticación de dirección de correo electrónico');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -72,7 +72,7 @@ class authenticationModel extends dbConnection {
|
|||
$this -> pdo -> prepare($query_profile) -> execute($id);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para activar tu cuenta de usuario');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para activar una cuenta de usuario');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ class profilesModel extends dbConnection {
|
|||
return $prepare -> fetch();
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para mostrar los datos de tu perfil');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para obtener los datos de perfil de un usuario');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ class profilesModel extends dbConnection {
|
|||
$this -> pdo -> prepare($query) -> execute($data);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para actualizar los datos de tu perfil');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para actualizar los datos de perfil de un usuario');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -73,7 +73,7 @@ class profilesModel extends dbConnection {
|
|||
return $prepare -> fetch();
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para buscar tus imágenes de perfil');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para buscar las imágenes de perfil de un usuario');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,7 +89,7 @@ class profilesModel extends dbConnection {
|
|||
$this -> pdo -> prepare($query_disable) -> execute($id);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para eliminar tu cuenta de usuario');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para eliminar el perfil de un usuario');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ class usersModel extends dbConnection {
|
|||
return $users;
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para validar si tu apodo y dirección de correo electrónico son únicos');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para obtener los datos de varios usuarios');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -68,7 +68,7 @@ class usersModel extends dbConnection {
|
|||
$this -> pdo -> prepare($query) -> execute($data);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para registrar tu cuenta de usuario');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para registrar una cuenta de usuario');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -94,7 +94,7 @@ class usersModel extends dbConnection {
|
|||
return $user;
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para validar si tu apodo y dirección de correo electrónico son únicos');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para obtener los datos de un usuario');
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -114,7 +114,7 @@ class usersModel extends dbConnection {
|
|||
$this -> pdo -> prepare($query) -> execute($data);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para actualizar tus datos personales');
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para actualizar los datos personales de un usuario');
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue