[Implementa] búsqueda de usuarios y role_format se cambia a connection.php

This commit is contained in:
Ricardo García Jiménez 2021-09-26 22:04:37 -05:00
parent a1132a825f
commit c26247d637
3 changed files with 39 additions and 12 deletions

View file

@ -38,6 +38,8 @@ class usersController {
$usersModel = new usersModel();
$users = $usersModel -> find($data['username'], $data['email']);
// Genera una llave aleatoria de verificación de dirección de e-mail.
$key = bin2hex(random_bytes(32));

View file

@ -57,6 +57,21 @@ class connection {
messages::errors('¡Lo sentimos mucho! 😞, ' . $error . ', por favor inténtelo más tarde', 500);
}
// @return el alias de un 'id de role'.
protected function role_format($id) {
$role = 'user';
if ($id == 1) {
$role = 'admin';
}
if ($id == 2) {
$role = 'moderator';
}
return $role;
}
// Finaliza la conexión con la base de datos.
public function __destruct() {
$this -> pdo = null;

View file

@ -7,19 +7,29 @@ class usersModel extends connection {
parent::__construct();
}
// @return el alias de un 'id de role'.
private function role_format($id) {
$role = 'user';
// @return un lista de arrays asociativos con los datos de usuarios.
public function find(string $username, string $email) {
$query = 'SELECT u.id, u.role_id AS role, u.username, u.email, u.password, u.activated, u.creation_date,' .
'v.hash, v.expiration AS hash_expiration FROM users AS u ' .
'LEFT JOIN verifications AS v on u.id = v.id ' .
'WHERE u.username = ? OR u.email = ? LIMIT 2';
if ($id == 1) {
$role = 'admin';
try {
$prepare = $this -> pdo -> prepare($query);
$prepare -> execute(array($username, $email));
$users = $prepare -> fetchAll();
if (empty($users)) {
return array();
}
return $users;
}
if ($id == 2) {
$role = 'moderator';
catch(PDOException $e) {
$this -> errors($e -> getMessage(), 'tuvimos un problema para validar si tu apodo y dirección de correo electrónico son únicos');
}
return $role;
}
// Registra un nuevo usuario.
@ -35,12 +45,12 @@ class usersModel extends connection {
}
}
// Obtiene los datos de un solo usuario.
// @return un array asociativo con los datos de un solo usuario.
public function get(string $column, $pattern) {
$query = 'SELECT u.id, u.role_id AS role, u.username, u.email, u.password, u.activated, u.creation_date,' .
'v.hash, v.expiration AS hash_expiration FROM users AS u ' .
'LEFT JOIN verifications AS v on u.id = v.id ' .
'WHERE ' . $column . ' = ? LIMIT 1';
'WHERE u.' . $column . ' = ? LIMIT 1';
try {
$prepare = $this -> pdo -> prepare($query);