227 lines
4.9 KiB
PHP
227 lines
4.9 KiB
PHP
<?php
|
|
/**
|
|
* Classe LogValidate.class.php
|
|
* @filesource
|
|
* @autor Kenio de Souza
|
|
* @copyright Copyright 2024 - Souza Consultoria Tecnológica
|
|
* @package vendor
|
|
* @subpackage controller/log
|
|
* @version 1.0
|
|
* @date 07/08/2024
|
|
*/
|
|
|
|
|
|
/** Defino o local onde esta a classe */
|
|
namespace vendor\controller\log;
|
|
|
|
/** Importação de classes */
|
|
use vendor\controller\main\Main;
|
|
|
|
class LogValidate
|
|
{
|
|
/** Declaro as variavéis da classe */
|
|
private $Main = null;
|
|
private $errors = array();
|
|
private $info = null;
|
|
private $logId = null;
|
|
private $clientId = null;
|
|
private $datePost = null;
|
|
private $file = null;
|
|
private $key = null;
|
|
private $b64 = null;
|
|
|
|
/** Construtor da classe */
|
|
function __construct()
|
|
{
|
|
|
|
/** Instânciamento da classe de validação */
|
|
$this->Main = new Main();
|
|
|
|
}
|
|
|
|
/** Método trata campo key */
|
|
public function setKey(string $key) : void
|
|
{
|
|
|
|
$this->key = !empty($key) ? $this->Main->antiInjection($key) : null;
|
|
|
|
/** Verifica se a chave foi informada */
|
|
if(!empty($key))
|
|
{
|
|
|
|
// Verifica se a senha tem pelo menos 8 caracteres
|
|
if (strlen($this->key) < 8) {
|
|
|
|
array_push($this->errors, 'A senha deve ter pelo menos 8 caracteres.');
|
|
}
|
|
|
|
// Verifica se a senha contém pelo menos uma letra maiúscula
|
|
if (!preg_match('/[A-Z]/', $this->key)) {
|
|
|
|
array_push($this->errors, 'A senha deve conter pelo menos uma letra maiúscula.');
|
|
}
|
|
|
|
// Verifica se a senha contém pelo menos uma letra minúscula
|
|
if (!preg_match('/[a-z]/', $this->key)) {
|
|
|
|
array_push($this->errors, 'A senha deve conter pelo menos uma letra minúscula.');
|
|
}
|
|
|
|
// Verifica se a senha contém pelo menos um número
|
|
if (!preg_match('/\d/', $this->key)) {
|
|
|
|
array_push($this->errors, 'A senha deve conter pelo menos um número.');
|
|
}
|
|
|
|
// Verifica se a senha contém pelo menos um caractere especial
|
|
if (!preg_match('/[\W_]/', $this->key)) {
|
|
|
|
array_push($this->errors, 'A senha deve conter pelo menos um caractere especial.');
|
|
}
|
|
|
|
} else {
|
|
|
|
/** Adição de elemento */
|
|
array_push($this->errors, 'É preciso informar uma chave válida');
|
|
}
|
|
}
|
|
|
|
/** Método trata campo log_id */
|
|
public function setLogId(int $logId) : void
|
|
{
|
|
|
|
/** Trata a entrada da informação */
|
|
$this->logId = isset($logId) ? $this->Main->antiInjection($logId) : null;
|
|
|
|
/** Verifica se a informação foi informada */
|
|
if(empty($this->logId))
|
|
{
|
|
|
|
/** Adição de elemento */
|
|
array_push($this->errors, 'O campo "log_id", deve ser informado');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/** Método trata campo client_id */
|
|
public function setClientId(int $clientId) : void
|
|
{
|
|
|
|
/** Trata a entrada da informação */
|
|
$this->clientId = isset($clientId) ? $this->Main->antiInjection($clientId) : null;
|
|
|
|
/** Verifica se a informação foi informada */
|
|
if(empty($this->clientId))
|
|
{
|
|
|
|
/** Adição de elemento */
|
|
array_push($this->errors, 'O campo "client_id", deve ser informado');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/** Método trata campo date_post */
|
|
public function setDatePost(string $datePost) : void
|
|
{
|
|
|
|
/** Trata a entrada da informação */
|
|
$this->datePost = isset($datePost) ? $this->Main->antiInjection($datePost) : null;
|
|
|
|
/** Verifica se a informação foi informada */
|
|
if(empty($this->datePost))
|
|
{
|
|
|
|
/** Adição de elemento */
|
|
array_push($this->errors, 'O campo "date_post", deve ser informado');
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/** Método trata campo file */
|
|
public function setFile(string $file) : void
|
|
{
|
|
|
|
/** Trata a entrada da informação */
|
|
$this->file = isset($file) ? base64_decode($this->Main->antiInjection($file)) : null;
|
|
|
|
/** Verifica se a informação foi informada */
|
|
if(empty($this->file))
|
|
{
|
|
|
|
/** Adição de elemento */
|
|
array_push($this->errors, 'O campo "file", deve ser informado');
|
|
|
|
}
|
|
}
|
|
|
|
/** Método retorna campo log_id */
|
|
public function getLogId() : ? int
|
|
{
|
|
|
|
/** Retorno da informação */
|
|
return (int)$this->logId;
|
|
|
|
}
|
|
|
|
/** Método retorna campo client_id */
|
|
public function getClientId() : ? int
|
|
{
|
|
|
|
/** Retorno da informação */
|
|
return (int)$this->clientId;
|
|
|
|
}
|
|
|
|
/** Método retorna campo date_post */
|
|
public function getDatePost() : ? string
|
|
{
|
|
|
|
/** Retorno da informação */
|
|
return (string)$this->datePost;
|
|
|
|
}
|
|
|
|
/** Método retorna campo file */
|
|
public function getFile() : ? string
|
|
{
|
|
|
|
/** Retorno da informação */
|
|
return (string)$this->file;
|
|
|
|
}
|
|
|
|
public function getErrors(): ? string
|
|
{
|
|
|
|
/** Verifico se deve informar os erros */
|
|
if (count($this->errors)) {
|
|
|
|
/** Verifica a quantidade de erros para informar a legenda */
|
|
$this->info = count($this->errors) > 1 ? '<center>Os seguintes erros foram encontrados</center>' : '<center>O seguinte erro foi encontrado</center>';
|
|
|
|
/** Lista os erros */
|
|
foreach ($this->errors as $keyError => $error) {
|
|
|
|
/** Monto a mensagem de erro */
|
|
$this->info .= '</br>' . ($keyError + 1) . ' - ' . $error;
|
|
|
|
}
|
|
|
|
/** Retorno os erros encontrados */
|
|
return (string)$this->info;
|
|
|
|
} else {
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
function __destruct(){}
|
|
|
|
}
|
|
|