mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
96 lines
2.7 KiB
PHP
96 lines
2.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Models;
|
|
|
|
use App\Entities\Usuarios\UsersEntity;
|
|
use CodeIgniter\Shield\Models\UserModel as ShieldUserModel;
|
|
|
|
class UserModel extends ShieldUserModel
|
|
{
|
|
protected function initialize(): void
|
|
{
|
|
parent::initialize();
|
|
|
|
$this->allowedFields = [
|
|
...$this->allowedFields,
|
|
'first_name', // Añadido
|
|
'last_name', // Añadido
|
|
'cliente_id', // Añadido
|
|
'comments', // Añadido
|
|
];
|
|
}
|
|
|
|
protected $returnType = UsersEntity::class;
|
|
|
|
protected $useSoftDeletes = true;
|
|
protected $useTimestamps = true;
|
|
protected $createdField = 'created_at';
|
|
protected $updatedField = 'updated_at';
|
|
protected $deletedField = 'deleted_at';
|
|
|
|
protected $validationRules = [
|
|
"first_name" => "required|trim|max_length[150]",
|
|
"last_name" => "required|trim|max_length[150]",
|
|
'new_pwd' => 'permit_empty|min_length[8]',
|
|
'new_pwd_confirm' => 'permit_empty|required_with[new_pwd]|matches[new_pwd]',
|
|
"comments" => "permit_empty|trim|max_length[512]"
|
|
];
|
|
|
|
protected $validationMessages = [
|
|
'first_name' => [
|
|
"max_length" => "Users.validation.first_name.max_length",
|
|
"required" => "Users.validation.first_name.required"
|
|
],
|
|
'last_name' => [
|
|
"max_length" => "Users.validation.last_name.max_length",
|
|
"required" => "Users.validation.last_name.required"
|
|
],
|
|
'new_pwd' => [
|
|
'min_length' => "App.profile_rules_password_m"
|
|
],
|
|
'new_pwd_confirm' => [
|
|
'matches' => "App.profile_rules_password_confirm_m"
|
|
],
|
|
'comments' => [
|
|
"max_length" => "Users.validation.last_name.max_length",
|
|
],
|
|
|
|
];
|
|
|
|
public function getComerciales()
|
|
{
|
|
|
|
$builder = $this->db
|
|
->table("users" . " t1")
|
|
->select(
|
|
"t1.id AS id, CONCAT(t1.first_name, ' ', t1.last_name) AS name"
|
|
);
|
|
|
|
$builder->where('t1.deleted_at', null);
|
|
$builder->where("t2.group", "comercial");
|
|
$builder->join("auth_groups_users t2", "t1.id = t2.user_id", "left");
|
|
|
|
return $builder->get()->getResult();
|
|
|
|
}
|
|
|
|
// Método para comprobar si el email ya está registrado
|
|
public function isEmailUnique($email)
|
|
{
|
|
$builder = $this->db
|
|
->table("auth_identities t1") // La tabla correcta
|
|
->select("t1.secret AS email")
|
|
->where('secret', $email);
|
|
|
|
// Obtener resultados
|
|
$result = $builder->get()->getRow();
|
|
|
|
// Devuelve true si no se encuentra el correo (es único), false en caso contrario
|
|
return $result === null;
|
|
}
|
|
|
|
|
|
}
|