Add verification for images and add Utilisateur classes.

This commit is contained in:
2026-04-07 12:10:39 +02:00
parent f633d4f73d
commit aa1ec2296f
8 changed files with 122 additions and 16 deletions

View File

@@ -25,7 +25,7 @@ class IngredientsAPIController extends Controller {
if( !$name || $name == "" )
JSONResponse::sendError( [ 'error' => 'Name not defined' ] );
$urlOrError = UploadFiles::uploadFile( $fileNameField );
$urlOrError = UploadFiles::uploadFile( $fileNameField, UploadFiles::IMAGE_MIME_TYPES );
if( is_int( $urlOrError ) ){
JSONResponse::sendError( [ 'error' => $urlOrError ] );
}

View File

@@ -80,7 +80,7 @@ class RecettesAPIController extends Controller {
JSONResponse::sendError( [ 'error' => "One required fields is missing" ] );
// Upload & Vérification de l'image.
$urlOrError = UploadFiles::uploadFile( $fileField );
$urlOrError = UploadFiles::uploadFile( $fileField, UploadFiles::IMAGE_MIME_TYPES );
if( is_int( $urlOrError ) ){
JSONResponse::sendError( [ 'error' => $urlOrError ] );
}
@@ -171,7 +171,7 @@ class RecettesAPIController extends Controller {
}
// Upload & Vérification de l'image.
$urlOrError = UploadFiles::uploadFile( $fileField );
$urlOrError = UploadFiles::uploadFile( $fileField, UploadFiles::IMAGE_MIME_TYPES );
if( is_int( $urlOrError ) ){
// Ingore image.
} else {

View File

@@ -43,12 +43,14 @@ class AuthentificationController extends Controller {
Request::setCORS();
$username = Request::get( 'username' );
$password = Request::get( 'password' );
$username = Request::post( 'username' );
$password = Request::post( 'password' );
// TODO : Récupération de l'utilisateur et verify_password.
$userId = new UtilisateurRepository()->login( $username, $password );
if( !$userId ) {
return JSONResponse::sendError();
}
$userId = 1;
Authentification::loginUser( $userId );
return JSONResponse::sendSuccess( [ 'user_id' => $userId ] );

View File

@@ -0,0 +1,20 @@
<?php
namespace App\Domain\Utilisateurs;
use App\Domain\Model;
//use App\Helpers\Markdown;
class Utilisateur extends Model {
public int $num_user;
public string $username;
public string $userpassword;
public function getID(): int
{
return $this->num_user;
}
}

View File

@@ -0,0 +1,80 @@
<?php
namespace App\Domain\Utilisateurs;
use App\Domain\Model;
use App\Domain\Repository;
/**
* Classe qui permet de faire le lien entre la BDD et le site pour les utilisateurs.
*/
class UtilisateurRepository extends Repository {
public static function getEntity(): string
{
return Utilisateur::class;
}
public static function getStructure(): array
{
return [
'table' => 'User',
'columns' => [
'num_user', 'username', 'userpassword'
]
];
}
/**
* Permet d'obtenir une liste de toutes les recettes objet Utilisateur.
*
* @return Utilisateur[]|null
*/
public function getAll(): ?array {
$sqlQuery = "SELECT * FROM {$this->tableName};";
$results = $this->selectGetAll($sqlQuery);
if( $results === null )
return null;
return $results;
}
/**
* Permet d'avoir un utilisateur par un ID.
*
* @param int $id
* @return Utilisateur|null
*/
public function getByID( int $id ): ?Utilisateur {
$sqlQuery = "SELECT * FROM {$this->tableName} WHERE num_user = {$id}";
$results = $this->selectGetAll($sqlQuery);
if( $results === null || count( $results ) > 1 )
return null;
return $results[0];
}
public function login(string $name, string $pass): int|bool{
$users = new UtilisateurRepository()->getAll();
foreach($users as $user){
if((strcmp($name,$user->username)==0) and (strcmp($pass,$user->userpassword)==0))return $user->num_user;
}
return false;
}
public function add( Model $utilisateurs ): bool {
return $this->addEntity( $utilisateurs );
}
public function update( Model $utilisateurs ): bool {
return $this->updateEntity( $utilisateurs, 'num_user' );
}
public function delete( Model $utilisateurs ): bool {
return $this->deleteEntity( $utilisateurs, 'num_user' );
}
}