diff --git a/app/src/main/java/lightcontainer/domains/client/Context.java b/app/src/main/java/lightcontainer/domains/client/Context.java index 7c41b63..a87ef6a 100644 --- a/app/src/main/java/lightcontainer/domains/client/Context.java +++ b/app/src/main/java/lightcontainer/domains/client/Context.java @@ -103,6 +103,7 @@ public class Context { /** * Clé AES de l'utilisateur + * * @return Clé AES de l'utilisateur */ public String getAesKey() { @@ -118,7 +119,8 @@ public class Context { /** * Permet d'ajouter des données pour la requête courrante - * @param key La clé permettant de retrouver la valeur + * + * @param key La clé permettant de retrouver la valeur * @param value La valeur associée à la clé */ public void putDataString(String key, String value) { @@ -127,7 +129,8 @@ public class Context { /** * Permet d'ajouter des données pour la requête courrante - * @param key La clé permettant de retrouver la valeur + * + * @param key La clé permettant de retrouver la valeur * @param value La valeur associée à la clé */ public void putDataInt(String key, int value) { @@ -136,6 +139,7 @@ public class Context { /** * Permet de récupérer des données pour la requête courrante + * * @param key La clé permettant de retrouver la valeur * @return La valeur associée à la clé ou null */ @@ -145,6 +149,7 @@ public class Context { /** * Permet de récupérer des données pour la requête courrante + * * @param key La clé permettant de retrouver la valeur * @return La valeur associée à la clé */ @@ -154,17 +159,22 @@ public class Context { /** * Permet d'ajouter un fichier à l'utilisateur - * @param fileName Nom du fichier hashé + * + * @param fileName Nom du fichier hashé * @param fileNameSalt Salt appliqué sur le nom du fichier - * @param size Taille du fichier - * @param iv IV du fichier - * @param domain Domain dans lequel est stocké le fichier + * @param size Taille du fichier + * @param iv IV du fichier + * @param domain Domain dans lequel est stocké le fichier * @return TRUE si le fichier a pu être enregistré. */ public boolean addFile(String fileName, String fileNameSalt, int size, String iv, String domain) { return this.repository.addFileFor(new File(fileName, fileNameSalt, size, iv, Set.of(domain)), getLogin()); } + public boolean canAddFile() { + return repository.canAddFile(login); + } + public String getDomain() { return this.domain; } diff --git a/app/src/main/java/lightcontainer/storage/AppData.java b/app/src/main/java/lightcontainer/storage/AppData.java index e71295d..474c53b 100644 --- a/app/src/main/java/lightcontainer/storage/AppData.java +++ b/app/src/main/java/lightcontainer/storage/AppData.java @@ -83,6 +83,13 @@ public class AppData { } } + public boolean canAddFile(String login) { + if (this.users.containsKey(login)) { + return this.users.get(login).canAddFile(); + } + return false; + } + public Iterator usersIterator() { return users.values().iterator(); } @@ -104,8 +111,7 @@ public class AppData { if (!this.users.containsKey(userName)) { return false; } else { - this.users.get(userName).addFile(file); - return true; + return this.users.get(userName).addFile(file); } } @@ -155,6 +161,7 @@ public class AppData { /** * Méthode permettant de récupérer la clé AES d'un utilisateur + * * @param login Login de l'utilisateur * @return Clé AES */ diff --git a/app/src/main/java/lightcontainer/storage/Repository.java b/app/src/main/java/lightcontainer/storage/Repository.java index c2211c4..ecbec85 100644 --- a/app/src/main/java/lightcontainer/storage/Repository.java +++ b/app/src/main/java/lightcontainer/storage/Repository.java @@ -55,6 +55,10 @@ public class Repository { return false; } + public boolean canAddFile(String login) { + return appData.canAddFile(login); + } + public boolean deleteFileOf(String fileName, String userName) { if (appData.deleteFileOf(fileName, userName)) { save(); @@ -117,6 +121,7 @@ public class Repository { /** * Méthode permettant de récupérer le chemin de sauvegarde des fichiers + * * @return Chemin de sauvegarde */ public String getStoragePath() { @@ -125,6 +130,7 @@ public class Repository { /** * Méthode permettant de récupérer la clé AES d'un utilisateur + * * @param login Login de l'utilisateur * @return Clé AES */ @@ -133,5 +139,4 @@ public class Repository { } - } diff --git a/app/src/main/java/lightcontainer/storage/User.java b/app/src/main/java/lightcontainer/storage/User.java index 54a4e0a..4b1c1d0 100644 --- a/app/src/main/java/lightcontainer/storage/User.java +++ b/app/src/main/java/lightcontainer/storage/User.java @@ -54,8 +54,16 @@ public class User { * @param file The file to add. * @return False if a file with the same name already exists. Otherwise, adds the file and returns true. */ - public void addFile(File file) { - this.files.put(file.getName(), file); + public boolean addFile(File file) { + if (canAddFile()) { + this.files.put(file.getName(), file); + return true; + } + return false; + } + + public boolean canAddFile() { + return this.files.size() < 50; } /**