From 1bc57a5051b52165266cd978b6bea5b789908fca Mon Sep 17 00:00:00 2001 From: cbo Date: Sun, 4 Aug 2024 20:08:42 +0000 Subject: [PATCH] 1.7.5 --- config/global.ini | 2 +- content/articles/2.md | 1 + content/pages/contact.md | 39 ++--- content/pages/data.md | 67 ++++++-- html/about/index.php | 7 +- html/account/index.php | 4 - html/adhesion/index.php | 242 +++++++++++++++++++--------- html/admin/adherents.php | 29 +++- html/admin/adhesions-non-payees.php | 36 ++++- html/admin/adhesions.php | 23 ++- html/admin/index.php | 25 ++- html/editor/index.php | 1 - html/index.php | 2 +- html/src/css/style.css | 8 +- html/upload/index.php | 1 - include/panels.php | 5 +- 16 files changed, 349 insertions(+), 143 deletions(-) diff --git a/config/global.ini b/config/global.ini index 9246bfec..c05d8991 100755 --- a/config/global.ini +++ b/config/global.ini @@ -24,7 +24,7 @@ pageTitle = "Association E59" pageName = "E59" headerTitle = "E59" headerSubtitle = "Rassembler pour innover" -footerText = "© Association E59 - v1.7" +footerText = "© Association E59 - v1.7 - Politique de confidentialité" [darkThemes] 0 = '.body {--text: #ffffff; --background: #0e0e0e; --panel-background: #0e0e0e; --buttons: #ffffff} textarea, .form, .select-input, .text-input, .file-input input, .date-input {border:1px solid #a0a0a0} .button, button {color: #0E0E0E}' diff --git a/content/articles/2.md b/content/articles/2.md index 80fac3af..265f77b9 100755 --- a/content/articles/2.md +++ b/content/articles/2.md @@ -13,6 +13,7 @@ Voici la liste des participants :
- Maëlyne MONTOUT (Développeuse)
- Akram SHAL (Développeur)

+
Le code source de la plateforme est disponible ici =>

Pour toute question adressez vous à [Jan BELLON](mailto:jan@intra.e59.fr) \ No newline at end of file diff --git a/content/pages/contact.md b/content/pages/contact.md index 40ba46c5..f7f1e20e 100755 --- a/content/pages/contact.md +++ b/content/pages/contact.md @@ -1,29 +1,18 @@ -# Contacts -### Téléphone -+33 1 84 73 01 95 +# Contact +01 84 73 01 95
+[association@e59.fr](mailto:association@e59.fr) -# Conseil d'Administration -## Service Informatique & Matériel (SIM) -### Directeur : [eliott@e59.fr](mailto:eliott@e59.fr) -### Responsables : -[akram@e59.fr](mailto:akram@e59.fr)
-[damien@e59.fr](mailto:damien@e59.fr)
-[emilien@e59.fr](mailto:emilien@e59.fr)
+IUT de Vélizy - 10-12 avenue de l'Europe, 78140 Vélizy-Villacoublay + -## Service Finances -### Directeur/Trésorier : [louis@e59.fr](mailto:louis@e59.fr)
+## Conseil d'Administration +[sim@e59.fr](mailto:sim@e59.fr)

+[finances@e59.fr](finances:club@e59.fr)

+[legal@e59.fr](mailto:legal@e59.fr)

+[communication@e59.fr](mailto:communication@e59.fr)

-## Service Communication -### Directeur : [jan@e59.fr](mailto:jan@e59.fr)
-### Responsables : -@Nozeroy (Discord)
+## Clubs +Club Réseaux - IUT de Vélizy : [club@e59.fr](mailto:club@e59.fr)
-## Service Légal -### Directrice : [maelyne@e59.fr](mailto:maelyne@e59.fr)
-### Responsables : -[emilien@e59.fr](mailto:emilien@e59.fr)
- -### Association -Club Réseaux : [club@e59.fr](mailto:club@e59.fr)
-E59-UVSQ : [asso.uvsq@e59.fr](mailto:asso.uvsq@e59.fr)
-Discord : [https://discord.gg/K6WwKYR8EV](https://discord.gg/K6WwKYR8EV)
+## Associations +[asso.uvsq@e59.fr](mailto:asso.uvsq@e59.fr)

diff --git a/content/pages/data.md b/content/pages/data.md index b5118f27..dbbd659c 100755 --- a/content/pages/data.md +++ b/content/pages/data.md @@ -1,13 +1,62 @@ -# Utilisation des données
+# Politique de Confidentialité
-Seuls les cookies nécessaires au bon fonctionnement du site sont stockés sur la machine de l'utilisateur.
+### Date de dernière mise à jour : 04/08/2024

-Il est possible de supprimer votre compte et toutes les données associées dans les [Paramètres](/settings)
+Nous nous engageons à protéger la vie privée de nos utilisateurs. Cette politique de confidentialité explique comment nous collectons, utilisons, divulguons et protégeons vos informations personnelles lorsque vous visitez notre site web.

-###Liste des données personnelles stockées :
-- Nom d'utilisateur
-- E-mail
-- Mot de passe chiffré
-- Adresse IP +## 1. Collecte des Informations
+Nous collectons différentes types d'informations, y compris :
+
+- **Informations que vous nous fournissez directement :** Lorsque vous vous inscrivez sur notre site, passez une commande, vous abonnez à notre newsletter ou interagissez autrement avec nos services, nous pouvons collecter des informations telles que votre nom, adresse e-mail, adresse postale, numéro de téléphone et informations de paiement.
+
+- **Informations collectées automatiquement :** Lorsque vous naviguez sur notre site, nous pouvons recueillir automatiquement des informations sur votre appareil et votre utilisation de notre site, telles que votre adresse IP, type de navigateur, pages visitées et temps passé sur notre site.
+
+- **Cookies et technologies similaires :** Nous utilisons des cookies et des technologies similaires pour améliorer votre expérience sur notre site, analyser l'utilisation du site et diffuser des publicités personnalisées.
-Pour toute question veuillez contacter le service [SIM](mailto:sim@e59.fr) \ No newline at end of file + +
+## 2. Utilisation des Informations
+Nous utilisons les informations collectées pour :
+
+- Fournir, exploiter et améliorer nos services.
+- Traiter vos commandes et gérer vos paiements.
+- Communiquer avec vous au sujet de votre compte, de vos commandes et de nos services.
+- Analyser l'utilisation de notre site pour améliorer nos services.
+- Respecter les obligations légales et réglementaires.
+ + +
+## 3. Partage des Informations
+Nous ne vendons pas vos informations personnelles à des tiers. Nous pouvons partager vos informations avec des tiers dans les circonstances suivantes :
+
+- **Prestataires de services :** Nous partageons vos informations avec des prestataires de services qui nous aident à exploiter notre site et à fournir nos services (par exemple, traitement des paiements, livraison des commandes).
+- **Obligations légales :** Nous pouvons divulguer vos informations si la loi l'exige ou si nous croyons en toute bonne foi que cette divulgation est nécessaire pour protéger nos droits, votre sécurité ou celle des autres.
+- **Transactions commerciales :** En cas de fusion, acquisition ou vente de tout ou partie de nos actifs, vos informations peuvent être transférées à la société acquéreuse. +
+ + +## 4. Sécurité des Informations
+Nous mettons en œuvre des mesures de sécurité raisonnables pour protéger vos informations personnelles contre l'accès non autorisé, l'altération, la divulgation ou la destruction. Cependant, aucune méthode de transmission sur Internet ou de stockage électronique n'est totalement sécurisée, et nous ne pouvons garantir la sécurité absolue de vos informations.
+
+## 5. Vos Droits
+Vous avez le droit de :
+
+- Accéder à vos informations personnelles que nous détenons.
+- Demander la correction ou la suppression de vos informations personnelles.
+- Vous opposer au traitement de vos informations personnelles.
+- Demander la limitation du traitement de vos informations personnelles.
+- Retirer votre consentement à tout moment, lorsque le traitement est basé sur votre consentement.
+ + +
+Pour exercer ces droits, veuillez nous contacter à [adresse e-mail de contact].
+
+## 6. Modifications de la Politique de Confidentialité
+Nous pouvons mettre à jour cette politique de confidentialité de temps à autre. Toute modification sera publiée sur cette page avec une nouvelle date de mise à jour. Nous vous encourageons à consulter cette politique régulièrement pour rester informé de nos pratiques en matière de confidentialité.
+
+## 7. Contact
+Si vous avez des questions ou des préoccupations concernant cette politique de confidentialité, veuillez nous contacter à :
+
+10-12 avenue de l'Europe, 78140 Vélizy-Villacoublay
+01 84 73 01 95
+[association@e59.fr](mailto:association@e59.fr)
\ No newline at end of file diff --git a/html/about/index.php b/html/about/index.php index 36901673..6bd9262a 100755 --- a/html/about/index.php +++ b/html/about/index.php @@ -10,7 +10,12 @@ require("../../include/panels.php"); - + diff --git a/html/account/index.php b/html/account/index.php index 49149ff1..886bfbad 100755 --- a/html/account/index.php +++ b/html/account/index.php @@ -50,7 +50,6 @@ if (isset($_FILES['newPP']) && $_FILES['newPP']['error'] == 0) { } else { $status = "Erreur SQL"; } - $request->close(); } else { $status = "Le fichier doit être au format PNG ou JPG"; } @@ -90,7 +89,6 @@ if (isset($_FILES['newBanner']) && $_FILES['newBanner']['error'] == 0) { } else { $status = "Erreur SQL"; } - $request->close(); } else { $status = "Le fichier doit être au format PNG ou JPG"; } @@ -108,14 +106,12 @@ if (isset($_POST['userDisplayName']) || isset($_POST['userBio'])) { $status = "Informations mises à jour"; $_SESSION['userDisplayName'] = htmlspecialchars($_POST['userDisplayName']); } - $request->close(); } $request = $pdo->prepare("SELECT username, display_name, profile_picture, banner, bio FROM users WHERE ID = :userID"); $request->bindParam(":userID", $_SESSION['userID']); $request->execute(); $result = $request->fetchAll(PDO::FETCH_ASSOC); -$request->close(); if($result) { $userName = $result[0]['username']; diff --git a/html/adhesion/index.php b/html/adhesion/index.php index 22c57ede..493cd19f 100755 --- a/html/adhesion/index.php +++ b/html/adhesion/index.php @@ -18,79 +18,112 @@ require("../../include/panels.php"); $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlDatabasePass); -if (isset($_POST['lastname']) && isset($_POST['firstname']) && isset($_POST['email']) && isset($_POST['club']) && isset($_POST['born'])) { - if (empty($_POST['lastname']) || empty($_POST['firstname']) || empty($_POST['email']) || empty($_POST['born'])) { - $status = "Veuillez remplir tous les champs"; +$userID = $_SESSION['userID']; + +$stepOneSQLReq = "SELECT ID FROM adhesion_requests WHERE userid = :userid"; +$stepOneReq = $pdo->prepare($stepOneSQLReq); +$stepOneReq->bindParam(":userid", $userID); +$stepOneReq->execute(); + +$stepTwoSQLReq = "SELECT ID FROM adhesions_non_payees WHERE userid = :userid"; +$stepTwoReq = $pdo->prepare($stepTwoSQLReq); +$stepTwoReq->bindParam(":userid", $userID); +$stepTwoReq->execute(); + +$stepThreeSQLReq = "SELECT ID FROM adherents WHERE userid = :userid"; +$stepThreeReq = $pdo->prepare($stepThreeSQLReq); +$stepThreeReq->bindParam(":userid", $userID); +$stepThreeReq->execute(); + +$stepOne = $stepOneReq->fetchAll(PDO::FETCH_ASSOC); +$stepTwo = $stepTwoReq->fetchAll(PDO::FETCH_ASSOC); +$stepThree = $stepThreeReq->fetchAll(PDO::FETCH_ASSOC); + +if ($stepOne) { + $step = 1; +} else if ($stepTwo) { + $step = 2; +} else if ($stepThree) { + $step = 3; +} else { + $step = 0; +} + +if (isset($_POST['lastname']) && isset($_POST['firstname']) && isset($_POST['email']) && isset($_POST['club']) && isset($_POST['born']) && $step == 0) { + if ($_POST['valide'] != "accepte") { + $status = "Vous devez vous engager à restpecter les statuts et le règlement intérieur"; } else { - if (preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $_POST['email']) == false) { - $status = "Veuillez entrer un email valide"; + if (empty($_POST['lastname']) || empty($_POST['firstname']) || empty($_POST['email']) || empty($_POST['born'])) { + $status = "Veuillez remplir tous les champs"; } else { - $email = isset($_POST['email']) ? strtolower($_POST['email']) : NULL; - $lastname = htmlspecialchars($_POST['lastname']); - $firstname = htmlspecialchars($_POST['firstname']); - $club = empty($_POST['club']) ? "Sans club" : htmlspecialchars($_POST['club']); - $born = htmlspecialchars($_POST['born']); - $promo = empty($_POST['promo']) ? "Sans promo" : htmlspecialchars($_POST['promo']); - $userID = $_SESSION['userID']; - - $sqlRequest = "SELECT ID FROM adhesion_requests WHERE userid = :userid"; - $request = $pdo->prepare($sqlRequest); - $request->bindParam(":userid", $userID); - $request->execute(); - $result = $request->fetchAll(PDO::FETCH_ASSOC); - - if($result) { - $requestAlreadySent = true; + if (preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $_POST['email']) == false) { + $status = "Veuillez entrer un email valide"; } else { - $requestAlreadySent = false; - $request = $pdo->prepare("INSERT INTO adhesion_requests (firstname, lastname, born, promo, club, email, userid) VALUES (:firstname, :lastname, :born, :promo, :club, :email, :userid)"); - $request->bindParam(':firstname', $firstname); - $request->bindParam(':lastname', $lastname); - $request->bindParam(':born', $born); - $request->bindParam(':promo', $promo); - $request->bindParam(':club', $club); - $request->bindParam(':email', $email); - $request->bindParam(':userid', $userID); - - if ($request->execute()) { - $status = "Demande d'adhésion envoyée, vous recevrez la réponse du CA par mail."; - $mail = new PHPMailer(true); - - try { - // Paramètres du serveur - $mail->isSMTP(); // Utiliser SMTP - $mail->Host = 'outlook.office365.com'; // Serveur SMTP Exchange - $mail->SMTPAuth = true; // Activer l'authentification SMTP - $mail->Username = 'smtp@e59.fr'; // Nom d'utilisateur SMTP - $mail->Password = 'WTFdoto5678TFWT'; // Mot de passe SMTP - $mail->SMTPSecure = 'tls'; // Activer le cryptage TLS - $mail->Port = 587; // Port TCP pour TLS - - // Destinataires - $mail->setFrom('service-adhesions@e59.fr', 'Adhesions'); - $mail->addAddress('asso.uvsq@e59.fr', 'E59-UVSQ'); // Ajouter un destinataire - - // Contenu de l'e-mail - $mail->isHTML(true); // Set email format to HTML - $mail->Subject = 'Nouvelle demande d\'adhesion'; - $mail->Body = '

Nouvelle demande d\'adhesion pour ' . $club . '

Nom Prenom : ' . $firstname . ' ' . $lastname . '

Email : ' . $email . '

Date de naissance : ' . $born . '

Promo : ' . $promo . '

Rendez-vous sur https://e59.fr/phpmyadmin pour supprimer la demande une fois validee

'; - $mail->AltBody = 'Nouvelle demande d\'adhésion pour ' . $club . ' | Nom Prénom : ' . $firstname . ' ' . $lastname . ' | Email : ' . $email . ' | Date de naissance : ' . $born . ' | Promo : ' . $promo; - - $mail->send(); - } catch (Exception $e) { - $status = "Erreur interne : {$mail->ErrorInfo}"; - } + $email = isset($_POST['email']) ? strtolower($_POST['email']) : NULL; + $lastname = htmlspecialchars($_POST['lastname']); + $firstname = htmlspecialchars($_POST['firstname']); + $club = empty($_POST['club']) ? "Sans club" : htmlspecialchars($_POST['club']); + $born = htmlspecialchars($_POST['born']); + $promo = empty($_POST['promo']) ? "Sans promo" : htmlspecialchars($_POST['promo']); + + $sqlRequest = "SELECT ID FROM adhesion_requests WHERE userid = :userid"; + $request = $pdo->prepare($sqlRequest); + $request->bindParam(":userid", $userID); + $request->execute(); + $result = $request->fetchAll(PDO::FETCH_ASSOC); + + if($result) { + $requestAlreadySent = true; } else { - $status = "Erreur SQL"; + $requestAlreadySent = false; + $request = $pdo->prepare("INSERT INTO adhesion_requests (firstname, lastname, born, promo, club, email, userid) VALUES (:firstname, :lastname, :born, :promo, :club, :email, :userid)"); + $request->bindParam(':firstname', $firstname); + $request->bindParam(':lastname', $lastname); + $request->bindParam(':born', $born); + $request->bindParam(':promo', $promo); + $request->bindParam(':club', $club); + $request->bindParam(':email', $email); + $request->bindParam(':userid', $userID); + + if ($request->execute()) { + $status = "Demande d'adhésion envoyée, vous recevrez la réponse du CA par mail."; + $mail = new PHPMailer(true); + + try { + // Paramètres du serveur + $mail->isSMTP(); // Utiliser SMTP + $mail->Host = 'outlook.office365.com'; // Serveur SMTP Exchange + $mail->SMTPAuth = true; // Activer l'authentification SMTP + $mail->Username = 'smtp@e59.fr'; // Nom d'utilisateur SMTP + $mail->Password = 'WTFdoto5678TFWT'; // Mot de passe SMTP + $mail->SMTPSecure = 'tls'; // Activer le cryptage TLS + $mail->Port = 587; // Port TCP pour TLS + + // Destinataires + $mail->setFrom('service-adhesions@e59.fr', 'Adhesions'); + $mail->addAddress('asso.uvsq@e59.fr', 'E59-UVSQ'); // Ajouter un destinataire + + // Contenu de l'e-mail + $mail->isHTML(true); // Set email format to HTML + $mail->Subject = 'Nouvelle demande d\'adhesion'; + $mail->Body = '

Nouvelle demande d\'adhesion

Nom Prenom : ' . $firstname . ' ' . $lastname . '

Email : ' . $email . '

Date de naissance : ' . $born . '

Promo : ' . $promo . '

Rendez-vous sur https://e59.fr/admin/adhesions.php pour valider la demande lors du CA

'; + $mail->AltBody = 'Nouvelle demande d\'adhésion : Nom Prenom : ' . $firstname . ' ' . $lastname . ' | Email : ' . $email . ' | Date de naissance : ' . $born . ' | Promo : ' . $promo; + + $mail->send(); + } catch (Exception $e) { + $status = "Erreur interne : {$mail->ErrorInfo}"; + } + } else { + $status = "Erreur SQL"; + } } } } } } - - - +$checkColor = "#99D366"; +$pendingColor = "#878787"; ?> @@ -102,13 +135,75 @@ if (isset($_POST['lastname']) && isset($_POST['firstname']) && isset($_POST['ema @@ -130,10 +225,10 @@ if (isset($_POST['lastname']) && isset($_POST['firstname']) && isset($_POST['ema
-
Adhérer à l'association
+
Adhésion
prepare($sqlRequest); $request->bindParam(":userID", $_SESSION['userID']); @@ -144,21 +239,24 @@ if (isset($_POST['lastname']) && isset($_POST['firstname']) && isset($_POST['ema $request = $pdo->prepare($sqlRequest); $request->execute(); $clubs = $request->fetchAll(PDO::FETCH_ASSOC); + + $clubOptions = array(); + foreach($clubs as $club) { - $club_names[] = $club["name"]; + $clubOptions[$club["ID"]] = $club["name"]; } textInput("text", "", "lastname", "Nom", isset($_POST['lastname']) ? $_POST['lastname'] : ""); textInput("text", "", "firstname", "Prénom", isset($_POST['firstname']) ? $_POST['firstname'] : ""); textInput("email", "", "email", "Email", isset($_POST['email']) ? $_POST['email'] : $user[0]['email']); - textInput("text", "", "promo", "Promo", isset($_POST['promo']) ? $_POST['promo'] : ""); - //selectInput("club", "Club", $club_names, isset($_POST['club']) ? $_POST['club'] : $club_names[0]); + textInput("text", "", "promo", "Formation - Année", isset($_POST['promo']) ? $_POST['promo'] : ""); + selectInput("club", "Club", $clubOptions, isset($_POST['club']) ? $_POST['club'] : $clubOptions[0]); dateInput("born", "Né le", "1930-01-01", isset($_POST['born']) ? $_POST['born'] : "2005-01-01"); - echo (''); - echo ('
Vous serez invité à payer la cotisation annuelle fixée à 1€/an une fois votre demande validée par le conseil d\'administration.
'); + echo ('
'); + echo ('
'); echo ('Annuler'); } else { - echo ("Votre demande d'adhésion est en cours de traitement"); + echo ('DemandeenvoyéeDemandevalidéeCotisationpayée'); } ?>
diff --git a/html/admin/adherents.php b/html/admin/adherents.php index abfab6d6..70a9060e 100644 --- a/html/admin/adherents.php +++ b/html/admin/adherents.php @@ -114,7 +114,7 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData flex-direction: column; } .user-row { - margin: 1em; + margin: 0.5em; border-bottom: 1px solid var(--text); padding: 1em 1em 1em 1em; } @@ -130,6 +130,16 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData .users { min-height: 25em; } + .admin-links { + margin-bottom: 4em; + } + .admin-links a { + margin: 0.5em; + display: inline-block; + } + main .content { + padding-top: 7em; + } @@ -152,23 +162,34 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData
'); + echo ('Utilisateurs'); + echo ('Demandes d\'adhésion'); + echo ('Adhésions non payées'); + echo ('Adhérents'); + echo ('PHPMyAdmin
'); + echo (''); $shapePath = ''; textInput("text", $shapePath, "search", "Chercher", ""); echo ('
'); $search = isset($_GET['search']) ? '%' . $_GET['search'] . '%' : '%%'; - $sqlRequest = "SELECT adherents.ID, adherents.firstname, adherents.lastname, adherents.email, adherents.validation_date FROM adherents"; + $sqlRequest = "SELECT adherents.ID, adherents.firstname, adherents.lastname, adherents.email, adherents.club, adherents.validation_date FROM adherents WHERE adherents.lastname LIKE :search OR adherents.firstname LIKE :search"; $request = $pdo->prepare($sqlRequest); + $request->bindParam(":search", $search); $request->execute(); $result = $request->fetchAll(PDO::FETCH_ASSOC); if ($result) { echo ('
'); foreach($result as $row) { + $clubFormatted = str_pad($row['club'], 2, "0", STR_PAD_LEFT); + $idFormatted = str_pad($row['ID'], 4, "0", STR_PAD_LEFT); + $memberID = "59" . $clubFormatted . $idFormatted; echo ('
'); echo ('
'); - echo ('
' . $row['firstname'] . ' ' . $row['lastname'] . '
' . $row['validation_date'] . '
'); + echo ('
' . $memberID . '
' . $row['firstname'] . ' ' . $row['lastname'] . '
' . $row['validation_date'] . '
'); } echo ('
'); } else { @@ -176,8 +197,6 @@ $pdo = sqlConnect($sqlDatabaseHost, $sqlDatabaseName, $sqlDatabaseUser, $sqlData } ?> -
Demandes d'adhésion
-
Adhésions non payées