Merge branch 'master' of codefirst.iut.uca.fr:HeartDev/Web
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
commit
97623ba062
@ -0,0 +1,2 @@
|
||||
AddType text/css .css
|
||||
AddType application/javascript .js
|
@ -1,17 +1,31 @@
|
||||
FROM php:8.2-fpm
|
||||
FROM php:8.2-apache as base
|
||||
# Installation de dépendances nécessaires pour Composer
|
||||
RUN apt-get update && apt-get install -y \
|
||||
git \
|
||||
unzip
|
||||
|
||||
# Installation de Composer
|
||||
# TODO : should use a image with composer install
|
||||
|
||||
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
|
||||
|
||||
RUN docker-php-ext-install pdo pdo_mysql
|
||||
|
||||
COPY . /var/www/
|
||||
# Copy configs
|
||||
COPY ./config/virtual-host.conf /etc/apache2/sites-available/000-default.conf
|
||||
COPY ./config/httpd.conf /etc/apache2/httpd.conf
|
||||
|
||||
# Setup App
|
||||
RUN mkdir -p /app/public && chown -R www-data:www-data /app
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
WORKDIR /var/www/
|
||||
# add sources code
|
||||
COPY . /app
|
||||
|
||||
ENV VOLUME_PATH /app/public
|
||||
|
||||
RUN composer install
|
||||
|
||||
EXPOSE 80
|
||||
|
||||
CMD ["apache2-foreground"]
|
@ -0,0 +1 @@
|
||||
SetEnv ASSET_PREFIX containers/HeartDev-web/
|
@ -1,28 +1,19 @@
|
||||
server {
|
||||
listen 80;
|
||||
index index.php;
|
||||
root /var/www/public;
|
||||
index index.php index.html index.htm;
|
||||
root /usr/share/nginx/html;
|
||||
error_page 404 /index.php;
|
||||
|
||||
location ~ ^/(images|javascript|js|css|flash|media|static)/ {
|
||||
root /var/www/public;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
fastcgi_pass web:9000; # service name defined in docker-compose.yml file like web
|
||||
fastcgi_param REQUEST_METHOD $request_method;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
location ~ /\. {
|
||||
deny all;
|
||||
access_log off;
|
||||
log_not_found off;
|
||||
}
|
||||
|
||||
location / {
|
||||
try_files $uri $uri/ /index.php?$query_string;
|
||||
root /usr/share/nginx/html;
|
||||
try_files $uri /index.php;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,39 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName default
|
||||
|
||||
<Directory />
|
||||
Options FollowSymLinks
|
||||
AllowOverride None
|
||||
Require all denied
|
||||
</Directory>
|
||||
|
||||
<Directory ${VOLUME_PATH}>
|
||||
AllowOverride All
|
||||
Require all granted
|
||||
</Directory>
|
||||
|
||||
DocumentRoot ${VOLUME_PATH}
|
||||
|
||||
AccessFileName .htaccess
|
||||
<FilesMatch "^\.ht">
|
||||
Require all denied
|
||||
</FilesMatch>
|
||||
|
||||
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %O" common
|
||||
LogFormat "%{Referer}i -> %U" referer
|
||||
LogFormat "%{User-agent}i" agent
|
||||
|
||||
CustomLog /proc/self/fd/1 combined
|
||||
|
||||
<FilesMatch \.php$>
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
|
||||
# Multiple DirectoryIndex directives within the same context will add
|
||||
# to the list of resources to look for rather than replace
|
||||
# https://httpd.apache.org/docs/current/mod/mod_dir.html#directoryindex
|
||||
DirectoryIndex disabled
|
||||
DirectoryIndex index.php index.html
|
||||
</VirtualHost>
|
@ -1,563 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Controller;
|
||||
|
||||
use App\Container;
|
||||
use App\Router\Request\IRequest;
|
||||
use App\Router\Response\Response;
|
||||
use Shared\Attributes\Route;
|
||||
use Twig\Environment;
|
||||
use Data\Core\Preferences;
|
||||
use Shared\Log;
|
||||
|
||||
// TODO : Remove this BaseClass
|
||||
class Controller extends BaseController
|
||||
{
|
||||
private Environment $twig;
|
||||
protected Preferences $preference;
|
||||
|
||||
public function __construct()
|
||||
{
|
||||
session_start();
|
||||
$this->preference = new Preferences();
|
||||
}
|
||||
|
||||
#[Route(path: '/', name: 'home', methods: ['GET'])]
|
||||
public function index(): Response
|
||||
{
|
||||
return $this->render('./page/index.html',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/analyses', name: 'analyses', methods: ['GET'])]
|
||||
public function analyses(): Response
|
||||
{
|
||||
return $this->render('./page/analyze.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/activity', name: 'activity', methods: ['GET'])]
|
||||
public function activity(): Response
|
||||
{
|
||||
return $this->render('./page/activity.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
#[Route(path: '/exercices', name: 'exercices', methods: ['POST'])] // 8
|
||||
public function exercices(String $type, String $intensite, String $date, IRequest $req): Response
|
||||
{
|
||||
$exercicesArray = [
|
||||
[
|
||||
'date' => $date,
|
||||
'type' => $type,
|
||||
'intensite' => $intensite,
|
||||
'status' => 'A venur',
|
||||
]
|
||||
];
|
||||
return $this->render('./page/exercice.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => $exercicesArray,
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/search-user', name: 'search-user', methods: ['GET'])]
|
||||
public function searchUser(string $username, IRequest $req): Response
|
||||
{
|
||||
$taberror = [];
|
||||
// FILTER
|
||||
$utiliArray = [
|
||||
[
|
||||
'nom' => 'John',
|
||||
'prenom' => 'Doe',
|
||||
'img' => 'john_doe',
|
||||
'username' => 'johndoe',
|
||||
],
|
||||
[
|
||||
'nom' => 'Alice',
|
||||
'prenom' => 'Smith',
|
||||
'img' => 'alice_smith',
|
||||
'username' => 'alicesmith',
|
||||
],
|
||||
];
|
||||
// if(!Validation::val_string($name)){
|
||||
try {
|
||||
//code...
|
||||
// $model->userMgr->addFriend($name);
|
||||
return $this->render('./page/addfriend.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => $utiliArray,
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => [],
|
||||
'responce' => "Notification d'ajout envoyée à $username"
|
||||
]);
|
||||
} catch (\Throwable $th) {
|
||||
//throw $th;
|
||||
// return $this->render("addfriend.html.twig", ['tabError' => $taberror ]);
|
||||
}
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
#[Route(path: '/search-member', name: 'search-member', methods: ['GET'])]
|
||||
public function searchMember(string $username, IRequest $req): Response
|
||||
{
|
||||
$taberror = [];
|
||||
// FILTER
|
||||
$utiliArray = [
|
||||
[
|
||||
'nom' => 'John',
|
||||
'prenom' => 'Doe',
|
||||
'img' => 'john_doe',
|
||||
'username' => 'johndoe',
|
||||
],
|
||||
[
|
||||
'nom' => 'Alice',
|
||||
'prenom' => 'Smith',
|
||||
'img' => 'alice_smith',
|
||||
'username' => 'alicesmith',
|
||||
],
|
||||
];
|
||||
// if(!Validation::val_string($name)){
|
||||
try {
|
||||
//code...
|
||||
// $model->userMgr->addFriend($name);
|
||||
return $this->render('./page/addmember.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => $utiliArray,
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => [],
|
||||
'responce' => "Notification d'ajout envoyée à $username"
|
||||
]);
|
||||
} catch (\Throwable $th) {
|
||||
//throw $th;
|
||||
// return $this->render("addfriend.html.twig", ['tabError' => $taberror ]);
|
||||
}
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
#[Route(path: '/add-member', name: 'add-member', methods: ['POST'])]
|
||||
public function addmember(string $username, IRequest $req): Response
|
||||
{
|
||||
$taberror = [];
|
||||
$utiliArray = [
|
||||
[
|
||||
'nom' => 'John',
|
||||
'prenom' => 'Doe',
|
||||
'img' => 'john_doe',
|
||||
'username' => 'johndoe',
|
||||
],
|
||||
[
|
||||
'nom' => 'Alice',
|
||||
'prenom' => 'Smith',
|
||||
'img' => 'alice_smith',
|
||||
'username' => 'alicesmith',
|
||||
],
|
||||
];
|
||||
// if(!Validation::val_string($name)){
|
||||
try {
|
||||
//code...
|
||||
// $model->userMgr->addFriend($name);
|
||||
return $this->render('./page/addmember.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => $utiliArray,
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => [],
|
||||
'responce' => "Notification d'ajout envoyée à $username"
|
||||
]);
|
||||
} catch (\Throwable $th) {
|
||||
//throw $th;
|
||||
// return $this->render("addfriend.html.twig", ['tabError' => $taberror ]);
|
||||
}
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
#[Route(path: '/member', name: 'member', methods: ['GET'])]
|
||||
public function member(): Response
|
||||
{
|
||||
$utiliArray = [
|
||||
[
|
||||
'nom' => 'John',
|
||||
'prenom' => 'Doe',
|
||||
'img' => 'john_doe',
|
||||
'username' => 'johndoe',
|
||||
],
|
||||
[
|
||||
'nom' => 'Alice',
|
||||
'prenom' => 'Smith',
|
||||
'img' => 'alice_smith',
|
||||
'username' => 'alicesmith',
|
||||
],
|
||||
];
|
||||
return $this->render('./page/addmember.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => $utiliArray,
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => [],
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
#[Route(path: '/friendlist', name: 'friendlist', methods: ['POST'])]
|
||||
public function friendlist(string $username, IRequest $req): Response
|
||||
{
|
||||
$utiliArray = [
|
||||
[
|
||||
'nom' => 'John',
|
||||
'prenom' => 'Doe',
|
||||
'img' => 'john_doe',
|
||||
'username' => 'johndoe',
|
||||
],
|
||||
[
|
||||
'nom' => 'Alice',
|
||||
'prenom' => 'Smith',
|
||||
'img' => 'alice_smith',
|
||||
'username' => 'alicesmith',
|
||||
],
|
||||
];
|
||||
/* TODO */
|
||||
|
||||
// -> Enlever ou bloquer un utilisateur en fonction de son username
|
||||
|
||||
return $this->render('./page/friend.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => $utiliArray,
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => [],
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/friendlist', name: 'friendlist2', methods: ['GET'])]
|
||||
public function friendlist2(): Response
|
||||
{
|
||||
$utiliArray = [
|
||||
[
|
||||
'nom' => 'John',
|
||||
'prenom' => 'Doe',
|
||||
'img' => 'test',
|
||||
'status' => 'johndoe',
|
||||
'username' => 'jdoe',
|
||||
],
|
||||
[
|
||||
'nom' => 'Alice',
|
||||
'prenom' => 'Smith',
|
||||
'img' => 'test2',
|
||||
'status' => 'alicesmith',
|
||||
'username' => 'asmith',
|
||||
],
|
||||
];
|
||||
return $this->render('./page/friend.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => $utiliArray,
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => [],
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/coaching', name: 'coaching', methods: ['GET'])]
|
||||
public function coaching(): Response
|
||||
{
|
||||
return $this->render('./page/coaching.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/mail', name: 'mail', methods: ['GET'])]
|
||||
public function mail(): Response
|
||||
{
|
||||
return $this->render('./page/mail.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/import', name: 'import', methods: ['GET'])]
|
||||
public function import(): Response
|
||||
{
|
||||
return $this->render('./page/import.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
#[Route(path: '/profile', name: 'profile', methods: ['GET'])]
|
||||
public function profile(): Response
|
||||
{
|
||||
return $this->render('./page/profile.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
#[Route(path: '/psettings', name: 'psettings', methods: ['POST'])]
|
||||
public function psettings(string $nom,string $prenom,string $dateNaissance,string $mail,string $tel, IRequest $req): Response
|
||||
{
|
||||
|
||||
|
||||
return $this->render('./page/settings.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => $prenom,
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
#[Route(path: '/login', name: 'login', methods: ['POST'])]
|
||||
public function login(string $username,string $mdp, IRequest $req): Response
|
||||
{
|
||||
|
||||
// CONFIRMER LES DONNESS !!!!! IMPORTANT
|
||||
|
||||
return $this->render('./page/home.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/log', name: 'log', methods: ['GET'])]
|
||||
public function login2(): Response
|
||||
{
|
||||
|
||||
// CONFIRMER LES DONNESS !!!!! IMPORTANT
|
||||
|
||||
return $this->render('./page/login.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/register', name: 'register', methods: ['POST'])]
|
||||
public function register(string $username,string $mdp,string $confirmMdp,string $nom,string $prenom,string $dateNaissance,string $sexe,string $taille,string $poids, IRequest $req): Response
|
||||
{
|
||||
|
||||
// CONFIRMER LES DONNESS !!!!! IMPORTANT
|
||||
|
||||
return $this->render('./page/home.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/regist', name: 'regist', methods: ['GET'])]
|
||||
public function register2(): Response
|
||||
{
|
||||
|
||||
// CONFIRMER LES DONNESS !!!!! IMPORTANT
|
||||
|
||||
return $this->render('./page/register.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/pass', name: 'pass', methods: ['GET'])]
|
||||
public function pass(): Response
|
||||
{
|
||||
|
||||
// CONFIRMER LES DONNESS !!!!! IMPORTANT
|
||||
|
||||
return $this->render('./page/password.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
|
||||
#[Route(path: '/password', name: 'password', methods: ['POST'])]
|
||||
public function password(string $email, IRequest $req): Response
|
||||
{
|
||||
|
||||
// CONFIRMER LES DONNESS !!!!! IMPORTANT
|
||||
|
||||
return $this->render('./page/login.html.twig',[
|
||||
'css' => $this->preference->getCookie(),
|
||||
'pp' => "test2",
|
||||
'user' => "Doe",
|
||||
'role' => "Athlète",
|
||||
'friendship' => [],
|
||||
'analyzes' => [],
|
||||
'mails' => [],
|
||||
'users' => [],
|
||||
'infoUser' => [],
|
||||
'exos' => [],
|
||||
'member' => []
|
||||
]);
|
||||
}
|
||||
}
|
Loading…
Reference in new issue