phpDocumentor

user.php

création de comptes et gestion de son compte par un utilisateur - 9-11/8/2023.

Table of Contents

Constants

USER_TABLE_SCHEMA  = ['description' => "Ce dictionnaire définit le schéma d'une table SQL avec:\n" . " - le champ 'comment' précisant la table concernée,\n" . " - le champ obligatoire 'columns' définissant le dictionnaire des colonnes avec pour chaque entrée:\n" . " - la clé définissant le nom SQL de la colonne,\n" . " - le champ 'type' obligatoire définissant le type SQL de la colonne,\n" . " - le champ 'keyOrNull' définissant si la colonne est ou non une clé et si elle peut ou non être nulle\n" . " - le champ 'comment' précisant un commentaire sur la colonne.\n" . " - pour les colonnes de type 'enum' correspondant à une énumération le champ 'enum'\n" . " définit les valeurs possibles dans un dictionnaire où chaque entrée a:\n" . " - pour clé la valeur de l'énumération et\n" . " - pour valeur une définition et/ou un commentaire sur cette valeur.", 'comment' => "table des utilisateurs", 'columns' => ['email' => ['type' => 'varchar(256)', 'keyOrNull' => 'primary key', 'comment' => "adresse email"], 'epasswd' => ['type' => 'longtext', 'comment' => "mot de passe encrypté, null à la créatin d'un compte temporaire non valide"], 'newepasswd' => ['type' => 'longtext', 'comment' => "nouveau mot de passe encrypté, utilisé en cas de chgt de mot de passe"], 'role' => ['type' => 'enum', 'enum' => ['normal' => "utilisateur normal ayant le droit de consulter les cartes, d'en ajouter et d'en supprimer", 'admin' => "administrateur ayant en plus de l'utilisateur normal des droits supplémentaires,\n" . "notamment le droit de changer le rôle des utilisateurs", 'restricted' => "utilisateur ayant le droit de consulter les cartes mais pas d'en ajouter, ni d'en supprimer", 'banned' => "utilisateur banni n'ayant aucun droit, et n'ayant pas le droit de réactiver son compte", 'suspended' => "utilisateur suspendu en l'absence de confirmation pendant un délai d'un an,\n" . "il n'a plus aucun droit jusqu'à ce qu'il réactive son compte.\n" . "Il peut réactiver son compte soit en cliquant sur le lien qui lui a été envoyé par mail,\n" . "soit en exécutant le processus de création de compte", 'closed' => "utilisateur ayant demandé à fermer son compte et pouvant le réactiver\n" . "en exécutant à nouveau le processus de création de compte", 'temp' => "utilisateur en cours de création dont la validité n'a pas été vérifiée,\n" . "et n'ayant aucun droit en attendant sa validation par mail", 'system' => "utilisateur utilisé en interne à ShomGT"], 'comment' => "rôle de l'utilisateur"], 'secret' => ['type' => 'varchar(256)', 'comment' => "secret envoyé par email et attendu en retour, null ssi le secret a été utilisé"], 'createdt' => ['type' => 'datetime', 'keyOrNull' => 'not null', 'comment' => "date et heure de création initiale du compte"], 'sent' => ['type' => 'datetime', 'comment' => "date et heure d'envoi du dernier mail de validation, null ssi le lien du mail a été activé"], 'valid' => ['type' => 'datetime', 'comment' => "date et heure de dernière validation, null ssi compte non validé"], 'extra' => ['type' => 'JSON', 'comment' => "données complémentaires stockées en JSON, notamment la liste des codes des zones dans le champ zones"], 'comment' => ['type' => 'longtext', 'comment' => "commentaire en texte libre"]]]
Définition du schéma de la table user selon la structuration définie dans son champ description.
ZONES_ZEE  = [ //'FR'=> "France entière", 'FX-MMN' => "Métropole - Zone Manche et Mer du Nord", 'FX-Atl' => "Métropole - Zone Maritime Atlantique", 'FX-Med' => "Métropole - Zone Méditerranée", 'GP' => "Guadeloupe", 'MQ' => "Martinique", 'GF' => "Guyane", 'BL' => "Saint-Barthelémy", 'MF' => "Saint-Martin", 'PM' => "Saint-Pierre-et-Miquelon", 'RE' => "La Réunion", 'YT' => "Mayotte", 'TF' => "TAAF", 'CP' => "Clipperton", 'PF' => "Polynésie Française", 'WF' => "Wallis-et-Futuna", 'NC' => "Nouvelle-Calédonie", ]
Liste des zones de la ZEE sous la forme [{nom} => {label}].

Functions

createUserTable()  : void
création de la table des utilisateurs
userRole()  : string|null
renvoit le role de l'utilisateur $user
migrationAddExtraToUserTable()  : void
Fonction de migration d'ajout d'un champ extra dans la table user s'il n'existe pas
badEmail()  : string|null
validation de l'email, renvoit null si valid, sinon l'erreur
badPasswd()  : string|null
validation du mot de passe, renvoit null si ok, sinon l'erreur
sendMail()  : void
Envoie un email avec le lien contenant le secret

Constants

USER_TABLE_SCHEMA

Définition du schéma de la table user selon la structuration définie dans son champ description.

public array{description: string, comment: string, columns: array} USER_TABLE_SCHEMA = ['description' => "Ce dictionnaire définit le schéma d'une table SQL avec:\n" . " - le champ 'comment' précisant la table concernée,\n" . " - le champ obligatoire 'columns' définissant le dictionnaire des colonnes avec pour chaque entrée:\n" . " - la clé définissant le nom SQL de la colonne,\n" . " - le champ 'type' obligatoire définissant le type SQL de la colonne,\n" . " - le champ 'keyOrNull' définissant si la colonne est ou non une clé et si elle peut ou non être nulle\n" . " - le champ 'comment' précisant un commentaire sur la colonne.\n" . " - pour les colonnes de type 'enum' correspondant à une énumération le champ 'enum'\n" . " définit les valeurs possibles dans un dictionnaire où chaque entrée a:\n" . " - pour clé la valeur de l'énumération et\n" . " - pour valeur une définition et/ou un commentaire sur cette valeur.", 'comment' => "table des utilisateurs", 'columns' => ['email' => ['type' => 'varchar(256)', 'keyOrNull' => 'primary key', 'comment' => "adresse email"], 'epasswd' => ['type' => 'longtext', 'comment' => "mot de passe encrypté, null à la créatin d'un compte temporaire non valide"], 'newepasswd' => ['type' => 'longtext', 'comment' => "nouveau mot de passe encrypté, utilisé en cas de chgt de mot de passe"], 'role' => ['type' => 'enum', 'enum' => ['normal' => "utilisateur normal ayant le droit de consulter les cartes, d'en ajouter et d'en supprimer", 'admin' => "administrateur ayant en plus de l'utilisateur normal des droits supplémentaires,\n" . "notamment le droit de changer le rôle des utilisateurs", 'restricted' => "utilisateur ayant le droit de consulter les cartes mais pas d'en ajouter, ni d'en supprimer", 'banned' => "utilisateur banni n'ayant aucun droit, et n'ayant pas le droit de réactiver son compte", 'suspended' => "utilisateur suspendu en l'absence de confirmation pendant un délai d'un an,\n" . "il n'a plus aucun droit jusqu'à ce qu'il réactive son compte.\n" . "Il peut réactiver son compte soit en cliquant sur le lien qui lui a été envoyé par mail,\n" . "soit en exécutant le processus de création de compte", 'closed' => "utilisateur ayant demandé à fermer son compte et pouvant le réactiver\n" . "en exécutant à nouveau le processus de création de compte", 'temp' => "utilisateur en cours de création dont la validité n'a pas été vérifiée,\n" . "et n'ayant aucun droit en attendant sa validation par mail", 'system' => "utilisateur utilisé en interne à ShomGT"], 'comment' => "rôle de l'utilisateur"], 'secret' => ['type' => 'varchar(256)', 'comment' => "secret envoyé par email et attendu en retour, null ssi le secret a été utilisé"], 'createdt' => ['type' => 'datetime', 'keyOrNull' => 'not null', 'comment' => "date et heure de création initiale du compte"], 'sent' => ['type' => 'datetime', 'comment' => "date et heure d'envoi du dernier mail de validation, null ssi le lien du mail a été activé"], 'valid' => ['type' => 'datetime', 'comment' => "date et heure de dernière validation, null ssi compte non validé"], 'extra' => ['type' => 'JSON', 'comment' => "données complémentaires stockées en JSON, notamment la liste des codes des zones dans le champ zones"], 'comment' => ['type' => 'longtext', 'comment' => "commentaire en texte libre"]]]

USER_TABLE_SCHEMA

ZONES_ZEE

Liste des zones de la ZEE sous la forme [{nom} => {label}].

public array<string, string> ZONES_ZEE = [ //'FR'=> "France entière", 'FX-MMN' => "Métropole - Zone Manche et Mer du Nord", 'FX-Atl' => "Métropole - Zone Maritime Atlantique", 'FX-Med' => "Métropole - Zone Méditerranée", 'GP' => "Guadeloupe", 'MQ' => "Martinique", 'GF' => "Guyane", 'BL' => "Saint-Barthelémy", 'MF' => "Saint-Martin", 'PM' => "Saint-Pierre-et-Miquelon", 'RE' => "La Réunion", 'YT' => "Mayotte", 'TF' => "TAAF", 'CP' => "Clipperton", 'PF' => "Polynésie Française", 'WF' => "Wallis-et-Futuna", 'NC' => "Nouvelle-Calédonie", ]

Pour la définition de la zone d'intérêt, la valeur 'FR' est inutile car elle correspond à quasiment toutes les cartes.

Functions

createUserTable()

création de la table des utilisateurs

createUserTable() : void

userRole()

renvoit le role de l'utilisateur $user

userRole(string|null $user) : string|null
Parameters
$user : string|null
Return values
string|null

migrationAddExtraToUserTable()

Fonction de migration d'ajout d'un champ extra dans la table user s'il n'existe pas

migrationAddExtraToUserTable() : void

badEmail()

validation de l'email, renvoit null si valid, sinon l'erreur

badEmail(string $email) : string|null
Parameters
$email : string
Return values
string|null

badPasswd()

validation du mot de passe, renvoit null si ok, sinon l'erreur

badPasswd(string $passwd, string $passwd2) : string|null
Parameters
$passwd : string
$passwd2 : string
Return values
string|null

sendMail()

Envoie un email avec le lien contenant le secret

sendMail(string $action, string $email, int $secret[, string|null $passwd = null ]) : void
Parameters
$action : string
$email : string
$secret : int
$passwd : string|null = null

        
On this page

Search results