mirror of
https://github.com/klmp200/PQT_Gestionnaire_vente_stock.git
synced 2024-12-22 23:41:09 +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.Account;
|
||||||
import com.pqt.core.entities.user_account.AccountLevel;
|
import com.pqt.core.entities.user_account.AccountLevel;
|
||||||
|
|
||||||
//TODO écrire Javadoc
|
import java.util.List;
|
||||||
|
|
||||||
//TODO ajouter logs
|
//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 {
|
public class AccountService {
|
||||||
|
|
||||||
private IAccountDao dao;
|
private IAccountDao dao;
|
||||||
@ -13,19 +22,99 @@ public class AccountService {
|
|||||||
dao = new FileAccountDao();
|
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) {
|
public boolean isAccountConnected(Account account) {
|
||||||
return dao.isAccountConnected(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){
|
public boolean isAccountRegistered(Account account){
|
||||||
return dao.isAccountRegistered(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){
|
public AccountLevel getAccountPermissionLevel(Account account){
|
||||||
return dao.getAccountPermissionLevel(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 com.pqt.server.tools.security.MD5HashTool;
|
||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
//TODO écrire Javadoc
|
//TODO écrire Javadoc
|
||||||
//TODO ajouter logs
|
//TODO ajouter logs
|
||||||
@ -20,7 +21,7 @@ public class FileAccountDao implements IAccountDao {
|
|||||||
private IHashTool hashTool;
|
private IHashTool hashTool;
|
||||||
private ISerialFileManager<AccountEntry> fileManager;
|
private ISerialFileManager<AccountEntry> fileManager;
|
||||||
|
|
||||||
public FileAccountDao() {
|
FileAccountDao() {
|
||||||
accountEntries = new HashSet<>();
|
accountEntries = new HashSet<>();
|
||||||
connectedAccount = new HashSet<>();
|
connectedAccount = new HashSet<>();
|
||||||
hashTool = new MD5HashTool();
|
hashTool = new MD5HashTool();
|
||||||
@ -89,6 +90,11 @@ public class FileAccountDao implements IAccountDao {
|
|||||||
return null;
|
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(){
|
private void saveToFile(){
|
||||||
fileManager.saveSetToFile(accountEntries);
|
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.Account;
|
||||||
import com.pqt.core.entities.user_account.AccountLevel;
|
import com.pqt.core.entities.user_account.AccountLevel;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
//TODO écrire Javadoc
|
//TODO écrire Javadoc
|
||||||
public interface IAccountDao {
|
public interface IAccountDao {
|
||||||
|
|
||||||
@ -13,4 +15,6 @@ public interface IAccountDao {
|
|||||||
boolean isAccountRegistered(Account account);
|
boolean isAccountRegistered(Account account);
|
||||||
|
|
||||||
AccountLevel getAccountPermissionLevel(Account account);
|
AccountLevel getAccountPermissionLevel(Account account);
|
||||||
|
|
||||||
|
List<Account> getAccountList();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user