Vérification du nombre de fichiers présents pour un utilisateur avant de lui permettre d'ajouter un fichier

This commit is contained in:
Maximilien LEDOUX 2022-03-12 18:10:01 +01:00
parent 64fd230294
commit 203ceabdf1

View File

@ -56,42 +56,47 @@ public class SavefileRule extends ProtocolReader {
super.read(reader); super.read(reader);
System.out.printf("Sauvegarde du fichier : %s %d\n", filename, size); System.out.printf("Sauvegarde du fichier : %s %d\n", filename, size);
try { if (getContext().canAddFile()) {
FileReceiver fileReceiver = new FileReceiver(storagePath); try {
FileReceiver fileReceiver = new FileReceiver(storagePath);
// Ajout login devant le nom du fichier // Ajout login devant le nom du fichier
this.filename = getContext().getLogin() + "_" + this.filename; this.filename = getContext().getLogin() + "_" + this.filename;
// Hashage du nom du fichier // Hashage du nom du fichier
ShaHasher hasher = new ShaHasher(this.filename); ShaHasher hasher = new ShaHasher(this.filename);
this.filename = hasher.nextHashing(); this.filename = hasher.nextHashing();
String fileNameSalt = hasher.getSalt(); String fileNameSalt = hasher.getSalt();
String key = getContext().getAesKey(); String key = getContext().getAesKey();
String iv = AES_GCM.generateIV(); String iv = AES_GCM.generateIV();
// retrieve file and new size // retrieve file and new size
int encryptedFileSize = fileReceiver.receiveFile(reader, this.filename, this.size, key, iv); int encryptedFileSize = fileReceiver.receiveFile(reader, this.filename, this.size, key, iv);
if (encryptedFileSize < 0) throw new IOException(); if (encryptedFileSize < 0) throw new IOException();
String fileHash = SHA.hashFile(storagePath, this.filename); String fileHash = SHA.hashFile(storagePath, this.filename);
// On met les données de la requête actuelle // On met les données de la requête actuelle
getContext().putDataString("fileName", filename); getContext().putDataString("fileName", filename);
getContext().putDataInt("size", size); getContext().putDataInt("size", size);
getContext().putDataString("iv", iv); getContext().putDataString("iv", iv);
getContext().putDataString("fileNameSalt", fileNameSalt); getContext().putDataString("fileNameSalt", fileNameSalt);
this.setResultCommand(protocolRep.executeWriter(getContext(), SendfileRule.NAME, this.filename, String.valueOf(encryptedFileSize), fileHash), ResultCmdReceiver.STOREBACKEND); this.setResultCommand(protocolRep.executeWriter(getContext(), SendfileRule.NAME, this.filename, String.valueOf(encryptedFileSize), fileHash), ResultCmdReceiver.STOREBACKEND);
} catch (IOException | SHA.ShaException e) { } catch (IOException | SHA.ShaException e) {
this.setResultCommand(protocolRep.executeWriter(getContext(), SaveFileErrorRule.NAME), ResultCmdReceiver.CLIENT);
e.printStackTrace();
}
} else {
this.setResultCommand(protocolRep.executeWriter(getContext(), SaveFileErrorRule.NAME), ResultCmdReceiver.CLIENT); this.setResultCommand(protocolRep.executeWriter(getContext(), SaveFileErrorRule.NAME), ResultCmdReceiver.CLIENT);
e.printStackTrace();
} }
} }
} }
/** /**
* Cette méthode est appelée lors de l'exécution de la règle * Cette méthode est appelée lors de l'exécution de la règle
*
* @param data Paramètres pour créer la commande. * @param data Paramètres pour créer la commande.
*/ */
@Override @Override