update some bugs

API_tests
Antoine PEREDERII 1 year ago
parent c9b2a2d6c9
commit 9d64b7de40

@ -37,12 +37,11 @@ use Twig\Loader\FilesystemLoader;
use Shared\IHashPassword;
use Shared\HashPassword;
use Shared\Log;
$appFactory = new AppCreator();
$appFactory->registerService(IArgumentResolver::class, ArgumentControllerResolver::class);
$appFactory->registerService(UserManager::class, UserManager::class);
$appFactory->registerSingleton(UserManager::class, UserManager::class);
$appFactory->registerService(DataManager::class, StubData::class);
$appFactory->registerService(IAuthService::class, AuthService::class);
$appFactory->registerSingleton(IAuthService::class, AuthService::class);
$appFactory->registerService(IFriendRequestService::class, RelationshipService::class);
$appFactory->registerService(IHashPassword::class, HashPassword::class);
$appFactory->registerService(INotificationService::class, NotificationService::class);
@ -70,6 +69,7 @@ if (!is_null($app)){
/*$app->use(new LoggingMiddleware());*/
$app->use(new AuthMiddleware($appFactory->getDicontainer()->get(IAuthService::class) ));
$app->mapControllers();
$app->run(RequestFactory::createFromGlobals());
}

@ -34,27 +34,13 @@ class AuthController extends BaseController
#[Route('/login', name: 'login',methods: ['POST'])]
public function login(string $email,string $password, IRequest $request): IResponse {
$error = [];
try {
$log=$email; // should check email with verrify email
$mdp=Validation::clean_string($password);
if($this->userMgr->login($log,$mdp)){
// Log::dd($this->userMgr->getCurrentUser());
// $athleteGateway = new AthleteGateway(new Connexion(DSN, DB_USER, DB_PASSWORD));
// $user = $athleteGateway->getUserByEmail($email);
// $map = new AthleteMapper();
// $userEntity = $map->athleteSqlToEntity($user);
//
// $users = ['username' => $userEntity[0]->getUsername(), 'nom' => $userEntity[0]->getNom(),
// 'prenom' => $userEntity[0]->getPrenom(),'email' => $userEntity[0]->getEmail(), 'sexe' => $userEntity[0]->getSexe(),
// 'taille' => $userEntity[0]->getTaille(), 'poids' => $userEntity[0]->getPoids(), 'motdepasse' => $userEntity[0]->getMotDePasse(),
// 'datenaissance' => $userEntity[0]->getDateNaissance(), 'iscoach' => $userEntity[0]->getIsCoach(), 'img' => 'test'];
return $this->render('./page/home.html.twig', [
'css' => $this->preference->getCookie(),
'pp' => 'test',
// 'user' => $this->userMgr->getCurrentUser()->getUsername(),
// 'role' => $this->userMgr->getCurrentUser()->getRole()
]);
// Log::dd("gg");
return new RedirectResponse('/home');
}
else{
$error [] = "Erreur de connexion. Essayez encore";

@ -13,24 +13,13 @@ class AuthMiddleware extends Middleware {
$this->auth = $auth;
}
public function handle(IRequest $request, callable $next) {
$excludedUrls = ['/login', '/register','/forgetPassword', '/', '/api', '/api/activities'];
// Log::dd($this->auth->getCurrentUser());
$excludedPrefixes = ['/api/activities'];
// Vérifier si l'URL actuelle commence par l'un des préfixes exclus, pour /api/activities/1 par exemple
foreach ($excludedPrefixes as $prefix) {
// Log::dd($request->getRequestUri());
if (strpos($request->getRequestUri(), $prefix) === 0) {
// Si c'est le cas, passer à la requête suivante sans appliquer le middleware
return parent::handle($request, $next);
}
}
$excludedUrls = ['/login', '/register','/forgetPassword', '/', '/mock'];
if ($this->auth->getCurrentUser() === null && !in_array($request->getRequestUri(), $excludedUrls)) {
$resp = new RedirectResponse("/login");
$resp->send();
exit;
}
return parent::handle($request, $next);
}
}

@ -2,11 +2,6 @@
namespace Network;
use App\Router\Session;
use Database\AthleteGateway;
use Database\AthleteMapper;
use Database\CoachMapper;
use Database\Connexion;
use Database\UserGateway;
use Model\User;
use Model\Athlete;
use Model\CoachAthlete;
@ -29,40 +24,14 @@ class AuthService implements IAuthService
public function login(string $email, string $password): bool
{
// $user = $this->userRepository->getItemByEmail($email);
$userGateway = new UserGateway(new Connexion(DSN, DB_USER, DB_PASSWORD));
$userRepository = $userGateway->getUserByEmail($email);
// Log::dd($userRepository[0]['isCoach']);
if($userRepository[0]['isCoach']) {
$map = new CoachMapper();
$coachEntity = $map->coachSqlToEntity($userRepository);
// $user = [];
foreach($coachEntity as $coachs) {
$user = $map->CoachEntityToModel($coachs);
}
} else {
$map = new AthleteMapper();
$athleteEntity = $map->athleteSqlToEntity($userRepository);
foreach($athleteEntity as $coachs) {
$user = $map->AthleteEntityToModel($coachs);
}
}
// Log::dd($user);
// $map->athleteEntityToModel($userRepository)
// $user = ['username' => $userEntity[0]->getUsername(), 'nom' => $userEntity[0]->getNom(),
// 'prenom' => $userEntity[0]->getPrenom(),'email' => $userEntity[0]->getEmail(), 'sexe' => $userEntity[0]->getSexe(),
// 'taille' => $userEntity[0]->getTaille(), 'poids' => $userEntity[0]->getPoids(), 'motdepasse' => $userEntity[0]->getMotDePasse(),
// 'datenaissance' => $userEntity[0]->getDateNaissance(), 'iscoach' => $userEntity[0]->getIsCoach(), 'img' => 'test'];
// Log::dd($this->passwordHacher->isPasswordValid($user->getMotDePasse(),$password));
if ($user === null || !$this->passwordHacher->isPasswordValid($user->getMotDePasse(),$password)) {
$user = $this->userRepository->getItemByEmail($email);
if ($user === null || !$this->passwordHacher->isPasswordValid( $user->getMotDePasse(),$password)) {
return false;
}
$this->currentUser = $user;
// Log::dd(Session::getInstance()->__get(USER));
Session::getInstance()->__set(USER, $this->currentUser->getId());
// Log::dd(Session::getInstance()->__set(USER, $this->currentUser->getId()));
$id = $this->currentUser->getId();
Session::getInstance()->__set(USER, $id);
Session::getInstance()->__get(USER);
return true;
}
@ -91,6 +60,7 @@ class AuthService implements IAuthService
}
$user = new User(
random_int(0, 100),
$nom,
$prenom,
$username,
@ -100,6 +70,7 @@ class AuthService implements IAuthService
$taille,
$poids,
$dateNaissance,
//should use reflexion
$role
);
$this->userRepository->addItem($user);

@ -13,13 +13,14 @@ class Training
private ?String $feedback;
public function __construct(
int $id,
\DateTime $date,
float $latitude,
float $longitude,
?String $description = null,
?String $feedback = null
) {
$this->idTraining = self::generateId();
$this->idTraining = $id;
$this->date = $date;
$this->latitude = $latitude;
$this->longitude = $longitude;

@ -16,7 +16,7 @@ namespace Model;
* @brief Classe représentant un utilisateur.
*/
class User {
private static $lastId = 0;
// private static $lastId = 0;
private int $id;
private String $username;
private string $nom;
@ -44,11 +44,11 @@ class User {
* @param \DateTime $dateNaissance
* @param \Model\Role $role
*/
public function __construct(string $nom, string $prenom, string $username, string $email,
public function __construct(int $id, string $nom, string $prenom, string $username, string $email,
string $motDePasse, string $sexe, float $taille, float $poids, \DateTime $dateNaissance,
Role $role)
{
$this->id = self::generateId();
$this->id = $id;
$this->nom = $nom;
$this->prenom = $prenom;
$this->username = $username;

@ -42,7 +42,7 @@ class UserManager
public function getCurrentUser(): ?User
{
return $this->currentUser;
return $this->currentUser ?? $this->authService->getCurrentUser();
}
/**

@ -27,11 +27,11 @@ class UserRepository implements IUserRepository {
* Constructeur de la classe UserRepository.
*/
public function __construct() {
$this->users[] = new User("Doe", "John", "Doe","john.doe@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'M', 1.80, 75, new \DateTime("1985-05-15"), new CoachAthlete());
$this->users[] = new User("Smith", "Jane","Smith", "jane.smith@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'F', 1.65, 60, new \DateTime("1990-03-10"), new Athlete());
$this->users[] = new User("Martin", "Paul","Martin", "paul.martin@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'M', 1.75, 68, new \DateTime("1988-08-20"), new CoachAthlete());
$this->users[] = new User("Brown", "Anna","Brown", "anna.brown@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'F', 1.70, 58, new \DateTime("1992-11-25"), new Athlete());
$this->users[] = new User("Lee", "Bruce","Lee", "bruce.lee@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'M', 1.72, 70, new \DateTime("1970-02-05"), new Athlete());
$this->users[] = new User(1, "Doe", "John", "Doe","john.doe@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'M', 1.80, 75, new \DateTime("1985-05-15"), new CoachAthlete());
$this->users[] = new User(2, "Smith", "Jane","Smith", "jane.smith@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'F', 1.65, 60, new \DateTime("1990-03-10"), new Athlete());
$this->users[] = new User(3, "Martin", "Paul","Martin", "paul.martin@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'M', 1.75, 68, new \DateTime("1988-08-20"), new CoachAthlete());
$this->users[] = new User(4, "Brown", "Anna","Brown", "anna.brown@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'F', 1.70, 58, new \DateTime("1992-11-25"), new Athlete());
$this->users[] = new User(5, "Lee", "Bruce","Lee", "bruce.lee@example.com", '$2y$10$U59ioMTGZBM2FGQv.3lcbuL0IkO4Fx1jQU7f5hF7o/hvCX2t46mby', 'M', 1.72, 70, new \DateTime("1970-02-05"), new Athlete());
// $this->users[] = new User(1, "Doe", "John", "Doe","john.doe@example.com", "password123", 'M', 1.80, 75, new \DateTime("1985-05-15"), new CoachAthlete());
// $this->users[] = new User(2, "Smith", "Jane","Smith", "jane.smith@example.com", "secure456", 'F', 1.65, 60, new \DateTime("1990-03-10"), new Athlete());
// $this->users[] = new User(3, "Martin", "Paul","Martin", "paul.martin@example.com", "super789", 'M', 1.75, 68, new \DateTime("1988-08-20"), new CoachAthlete());

Loading…
Cancel
Save