mirror of
https://github.com/klmp200/PQT_Gestionnaire_vente_stock.git
synced 2024-12-22 15:31:08 +00:00
Module Server : ajout javadoc clss AccountService, ajout émthd getAccountList() aux clss AccountService et Dao associées
This commit is contained in:
parent
183ee248ce
commit
60fb6a069c
@ -3,8 +3,17 @@ package com.pqt.server.module.account;
|
||||
import com.pqt.core.entities.user_account.Account;
|
||||
import com.pqt.core.entities.user_account.AccountLevel;
|
||||
|
||||
//TODO écrire Javadoc
|
||||
import java.util.List;
|
||||
|
||||
//TODO ajouter logs
|
||||
/**
|
||||
* Cette classe correspond au service de gestion des comptes utilisateurs. Il permet la vérification de l'existance
|
||||
* d'un compte, de son état (connecté/déconnecté), de changer son état ainsi que de récupérer son niveau d'accréditation.
|
||||
*
|
||||
* @author Guillaume "Cess" Prost
|
||||
* @see AccountLevel
|
||||
* @see Account
|
||||
*/
|
||||
public class AccountService {
|
||||
|
||||
private IAccountDao dao;
|
||||
@ -13,19 +22,99 @@ public class AccountService {
|
||||
dao = new FileAccountDao();
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si un compte utilisateur donné est actuellement connecté. Le compte utilisateur doit être existant
|
||||
* pour être connecté.
|
||||
* <p/>
|
||||
* Les informations contenues dans l'objet {@code account} passé en paramètre ne sont pas directements utilisées,
|
||||
* elles servent juste à déterminer le compte utilisateur réel correspondant. <b>Il est nécessaire de s'assurer
|
||||
* que les données passées en paramètres soient justes avant de faire appel à cette méthode.</b>
|
||||
* <p/>
|
||||
* Pour cette méthode, seul le nom d'utilisateur est pris en compte pour établir une correspondance.
|
||||
* <p/>
|
||||
* Dans le cas où aucune correspondance ne peut être faite entre les informations fournies et les données
|
||||
* enregistrées, la valeur {@code false} sera renvoyée.
|
||||
*
|
||||
* @param account Objet {@link Account} dont les informations seront utilisées pour déterminer le compte concerné.
|
||||
*
|
||||
* @return {@code true} si une correspondance a pû être établie et que le compte correspondant est connecté,
|
||||
* {@code false} sinon.
|
||||
*/
|
||||
public boolean isAccountConnected(Account account) {
|
||||
return dao.isAccountConnected(account);
|
||||
}
|
||||
|
||||
public boolean submitAccountCredentials(Account acc, boolean desiredState) {
|
||||
return dao.submitAccountCredentials(acc, desiredState);
|
||||
/**
|
||||
* Soumet une demande de changement d'état pour un compte utilisateur. Les états possibles sont "connecté" ({@code true})
|
||||
* et "déconnecté" ({@code false}).
|
||||
* <p/>
|
||||
* Les informations contenues dans l'objet {@code account} passé en paramètre ne sont pas directements utilisées,
|
||||
* elles servent juste à déterminer le compte utilisateur réel correspondant. <b>Il est nécessaire de s'assurer
|
||||
* que les données passées en paramètres soient justes avant de faire appel à cette méthode.</b>
|
||||
* <p/>
|
||||
* Pour cette méthode, seul le nom d'utilisateur est pris en compte pour établir une correspondance. Le mot de passe
|
||||
* est uniquement requis pour une connexion, et pas pour une déconnexion.
|
||||
* <p/>
|
||||
* Une fois la correspondance effectuée, une tentative de changement d'état sera faite pour le compte correspondant.
|
||||
* Cette tentative peut échouer si :
|
||||
* <ul>
|
||||
* <li>Le compte est déjà dans l'état désiré</li>
|
||||
* <li>Le mot de passe ne correspond pas (uniquement pour une connexion)</li>
|
||||
* </ul>
|
||||
* Dans le cas d'un échec, l'état du compte reste inchangé et la valeur booléenne {@code false} est renvoyée,
|
||||
* sans plus de détails. Si le changement d'état a eu lieu, la valeur booléenne {@code true} est renvoyée.
|
||||
*
|
||||
* @param account Objet {@link Account} dont les informations seront utilisées pour déterminer le compte concerné.
|
||||
* @param desiredState L'état dans lequel le compte doit se trouver une fois le changement fait.
|
||||
* @return {@code true} si le changement d'état a eu lieu, {@code false} sinon.
|
||||
*/
|
||||
public boolean submitAccountCredentials(Account account, boolean desiredState) {
|
||||
return dao.submitAccountCredentials(account, desiredState);
|
||||
}
|
||||
|
||||
/**
|
||||
* Vérifie si un compte utilisateur donné existe dans la base de donnée du serveur.
|
||||
* <p/>
|
||||
* Les informations contenues dans l'objet {@code account} passé en paramètre ne sont pas directements utilisées,
|
||||
* elles servent juste à déterminer le compte utilisateur réel correspondant. <b>Il est nécessaire de s'assurer
|
||||
* que les données passées en paramètres soient justes avant de faire appel à cette méthode.</b>
|
||||
* <p/>
|
||||
* Pour cette méthode, seul le nom d'utilisateur est pris en compte pour établir une correspondance.
|
||||
*
|
||||
* @param account Objet {@link Account} dont les informations seront utilisées pour déterminer le compte concerné.
|
||||
* @return {@code true} si une correspondance a pû être établie entre les données fournies et un compte dans la base
|
||||
* de données, {@code false} sinon.
|
||||
*/
|
||||
public boolean isAccountRegistered(Account account){
|
||||
return dao.isAccountRegistered(account);
|
||||
}
|
||||
|
||||
/**
|
||||
* Récupère le niveau de permission du compte utilisateur correspondant aux informations fournies en paramètre.
|
||||
* <p/>
|
||||
* Les informations contenues dans l'objet {@code account} passé en paramètre ne sont pas directements utilisées,
|
||||
* elles servent juste à déterminer le compte utilisateur réel correspondant. <b>Il est nécessaire de s'assurer
|
||||
* que les données passées en paramètres soient justes avant de faire appel à cette méthode.</b>
|
||||
* <p/>
|
||||
* Pour cette méthode, seul le nom d'utilisateur est pris en compte pour établir une correspondance.
|
||||
*
|
||||
* @param account Objet {@link Account} dont les informations seront utilisées pour déterminer le compte concerné.
|
||||
* @return Le niveau de permission {@link AccountLevel} du compte correspondant aux informations si une correspondance
|
||||
* a pû être établie entre {@code account} et un compte utilisateur de la base de donnée, et {@code null} si aucune
|
||||
* correspondance n'a pû être faite.
|
||||
*/
|
||||
public AccountLevel getAccountPermissionLevel(Account account){
|
||||
return dao.getAccountPermissionLevel(account);
|
||||
}
|
||||
|
||||
/**
|
||||
* Renvoie la liste des comptes utilisateurs contenus dans la base de données sous forme d'une liste d'objets
|
||||
* {@link Account}. <b>Seuls les noms d'utilisateurs ainsi que les niveaux de permissions sont récupérés, les
|
||||
* autres champs étant volontairement initialisés avec une valeur {@code null}.</b>
|
||||
* @return Une liste d'objet {@link Account} représsentant les différents comptes utilisateurs existant dans la base
|
||||
* de données.
|
||||
*/
|
||||
public List<Account> getAccountList(){
|
||||
return dao.getAccountList();
|
||||
}
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import com.pqt.server.tools.security.IHashTool;
|
||||
import com.pqt.server.tools.security.MD5HashTool;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
//TODO écrire Javadoc
|
||||
//TODO ajouter logs
|
||||
@ -20,7 +21,7 @@ public class FileAccountDao implements IAccountDao {
|
||||
private IHashTool hashTool;
|
||||
private ISerialFileManager<AccountEntry> fileManager;
|
||||
|
||||
public FileAccountDao() {
|
||||
FileAccountDao() {
|
||||
accountEntries = new HashSet<>();
|
||||
connectedAccount = new HashSet<>();
|
||||
hashTool = new MD5HashTool();
|
||||
@ -89,6 +90,11 @@ public class FileAccountDao implements IAccountDao {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Account> getAccountList() {
|
||||
return accountEntries.stream().map(accountEntry -> new Account(accountEntry.getUsername(), null, accountEntry.getLevel())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
private void saveToFile(){
|
||||
fileManager.saveSetToFile(accountEntries);
|
||||
}
|
||||
|
@ -3,6 +3,8 @@ package com.pqt.server.module.account;
|
||||
import com.pqt.core.entities.user_account.Account;
|
||||
import com.pqt.core.entities.user_account.AccountLevel;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
//TODO écrire Javadoc
|
||||
public interface IAccountDao {
|
||||
|
||||
@ -13,4 +15,6 @@ public interface IAccountDao {
|
||||
boolean isAccountRegistered(Account account);
|
||||
|
||||
AccountLevel getAccountPermissionLevel(Account account);
|
||||
|
||||
List<Account> getAccountList();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user