[Elimina] el perfil y la cuenta de un usuario
This commit is contained in:
parent
aaafe0899c
commit
535d3ad122
|
@ -73,11 +73,13 @@ class profilesController {
|
|||
static public function edit_profile() {
|
||||
utils::check_session(NABU_ROUTES['home']);
|
||||
|
||||
$id = $_SESSION['user']['id'];
|
||||
|
||||
if (empty($_POST['edit-profile-form'])) {
|
||||
$profilesModel = new profilesModel();
|
||||
|
||||
// Obtiene los datos de perfil del usuario de sesión.
|
||||
$profile = $profilesModel -> get('id', $_SESSION['user']['id']);
|
||||
$profile = $profilesModel -> get('id', $id);
|
||||
|
||||
unset($profilesModel);
|
||||
|
||||
|
@ -119,8 +121,6 @@ class profilesController {
|
|||
if (empty($data))
|
||||
utils::redirect($view);
|
||||
|
||||
$id = $_SESSION['user']['id'];
|
||||
|
||||
$profilesModel = new profilesModel();
|
||||
|
||||
// Obtiene los datos de perfil actual del usuario.
|
||||
|
@ -274,6 +274,30 @@ class profilesController {
|
|||
));
|
||||
|
||||
$id = $_SESSION['user']['id'];
|
||||
|
||||
$profilesModel = new profilesModel();
|
||||
|
||||
$profile = $profilesModel -> get('id', $id);
|
||||
|
||||
if (empty($profile))
|
||||
utils::redirect(NABU_ROUTES['logout']);
|
||||
|
||||
// Valida la contraseña del usuario.
|
||||
if (!password_verify($data['password'], $profile['password'])) {
|
||||
messages::add('La contraseña es incorrecta');
|
||||
utils::redirect($view);
|
||||
}
|
||||
|
||||
// Elimina la foto de perfil.
|
||||
utils::remove_image('avatar', $profile['avatar']);
|
||||
|
||||
// Elimina el fondo de perfil.
|
||||
utils::remove_image('background', $profile['background']);
|
||||
|
||||
// Elimina el perfil y desactiva la cuenta del usuario.
|
||||
$profilesModel -> delete($id);
|
||||
|
||||
utils::redirect(NABU_ROUTES['logout']);
|
||||
}
|
||||
|
||||
static public function favorites() {
|
||||
|
|
|
@ -25,7 +25,7 @@ class profilesModel extends dbConnection {
|
|||
|
||||
// @return un array asociativo con los datos de perfil de un usuario.
|
||||
public function get(string $column, $pattern) {
|
||||
$query = 'SELECT u.name, u.username, p.avatar, p.background, p.description '.
|
||||
$query = 'SELECT u.name, u.username, u.password, p.avatar, p.background, p.description '.
|
||||
'FROM users AS u INNER JOIN profiles AS p ON u.id = p.id ' .
|
||||
'WHERE u.' . $column . ' = ? LIMIT 1';
|
||||
|
||||
|
@ -77,6 +77,22 @@ class profilesModel extends dbConnection {
|
|||
}
|
||||
}
|
||||
|
||||
// Elimina el perfil de un usuario y desactiva su cuenta.
|
||||
public function delete(int $id) {
|
||||
$query_delete = 'DELETE FROM profiles WHERE id = ?';
|
||||
$query_disable = 'UPDATE users SET email = NULL, activated = FALSE WHERE id = ?';
|
||||
|
||||
$id = array($id);
|
||||
|
||||
try {
|
||||
$this -> pdo -> prepare($query_delete) -> execute($id);
|
||||
$this -> pdo -> prepare($query_disable) -> execute($id);
|
||||
}
|
||||
catch (PDOException $e) {
|
||||
$this -> errors($e -> getMessage(), 'tuvimos un problema para eliminar tu cuenta de usuario');
|
||||
}
|
||||
}
|
||||
|
||||
public function __destruct() {
|
||||
parent::__destruct();
|
||||
$this -> pdo = null;
|
||||
|
|
|
@ -25,7 +25,7 @@ class usersModel extends dbConnection {
|
|||
|
||||
// @return una lista de arrays asociativos con los datos de los usuarios.
|
||||
public function find(string $username, string $email) {
|
||||
$query = 'SELECT u.id, u.username, u.email, u.password, u.activated, u.registration_date,' .
|
||||
$query = 'SELECT u.id, u.username, u.email, u.password, u.activated, ' .
|
||||
'a.hash, a.expiration FROM users AS u ' .
|
||||
'LEFT JOIN authentications AS a ON u.id = a.id ' .
|
||||
'WHERE u.username = ? OR u.email = ? LIMIT 2';
|
||||
|
|
Loading…
Reference in a new issue