From 5f827524165ac2fb0525c023333334a2b064e372 Mon Sep 17 00:00:00 2001 From: jendib Date: Sat, 12 Dec 2015 01:56:54 +0100 Subject: [PATCH] Quota updates are not polluting the audit log anymore --- .../sismics/docs/core/dao/jpa/UserDao.java | 20 +++++++++++++++++++ .../docs/rest/resource/AppResource.java | 2 +- .../docs/rest/resource/FileResource.java | 4 ++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/UserDao.java b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/UserDao.java index 9d6d154a..55f1a134 100644 --- a/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/UserDao.java +++ b/docs-core/src/main/java/com/sismics/docs/core/dao/jpa/UserDao.java @@ -110,6 +110,26 @@ public class UserDao { return user; } + /** + * Updates a user's quota. + * + * @param user User to update + * @return Updated user + */ + public User updateQuota(User user) { + EntityManager em = ThreadLocalContext.get().getEntityManager(); + + // Get the user + Query q = em.createQuery("select u from User u where u.id = :id and u.deleteDate is null"); + q.setParameter("id", user.getId()); + User userFromDb = (User) q.getSingleResult(); + + // Update the user + userFromDb.setStorageQuota(user.getStorageQuota()); + + return user; + } + /** * Update the user password. * diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java index 256a4c16..4eb030c8 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/AppResource.java @@ -304,7 +304,7 @@ public class AppResource extends BaseResource { // Save all users for (User user : userMap.values()) { if (user.getDeleteDate() == null) { - userDao.update(user); + userDao.updateQuota(user); } } diff --git a/docs-web/src/main/java/com/sismics/docs/rest/resource/FileResource.java b/docs-web/src/main/java/com/sismics/docs/rest/resource/FileResource.java index 4ddc0621..4b37e080 100644 --- a/docs-web/src/main/java/com/sismics/docs/rest/resource/FileResource.java +++ b/docs-web/src/main/java/com/sismics/docs/rest/resource/FileResource.java @@ -157,7 +157,7 @@ public class FileResource extends BaseResource { // Update the user quota user.setStorageCurrent(user.getStorageCurrent() + fileData.length); - userDao.update(user); + userDao.updateQuota(user); // Raise a new file created event if we have a document if (documentId != null) { @@ -369,7 +369,7 @@ public class FileResource extends BaseResource { java.nio.file.Path storedFile = DirectoryUtil.getStorageDirectory().resolve(id); try { user.setStorageCurrent(user.getStorageCurrent() - Files.size(storedFile)); - userDao.update(user); + userDao.updateQuota(user); } catch (IOException e) { // The file doesn't exists on disk, which is weird, but not fatal }