Author: echatellier Date: 2014-07-18 12:17:20 +0200 (Fri, 18 Jul 2014) New Revision: 423 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/423 Log: Deverrouillage automatique des demandes qui ne conernent pas la demande qui vient d'?\195?\170tre verrouill?\195?\169e (ancien lock) Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-07-18 09:56:25 UTC (rev 422) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailService.java 2014-07-18 10:17:20 UTC (rev 423) @@ -568,18 +568,26 @@ */ public Email lockEmail(String emailId, FaxToMailUser currentUser) { EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); + + // verrouillage du mail courant Email email = emailDao.findByTopiaId(emailId); email.setLockedBy(currentUser); email = emailDao.update(email); getPersistenceContext().commit(); if (log.isDebugEnabled()) { - log.debug("[LOCK] " + emailId + " locked by " + currentUser.getFirstName() + " " + currentUser.getLastName()); + log.debug("[LOCK] " + emailId + " locked by " + currentUser.getLogin()); } - - // TODO echatellier : les utilisateurs peuvent avoir plusieurs verrous actif dans le - // cas des interfaces à onglet et des demandes groupé - // on pourrait peut-etre supprimer automatiquement les locks sur les autres demande - // si elle ne sont pas groupées + + // dévérouillage automatique des mails qui ne font pas partit du même group que celui du mail + // qui vient d'être locké + List<Email> mailsToUnlock = emailDao.forLockedByEquals(currentUser).addNotEquals(Email.PROPERTY_EMAIL_GROUP, email.getEmailGroup()).findAll(); + for (Email mailToUnlock : mailsToUnlock) { + mailToUnlock.setLockedBy(null); + mailToUnlock = emailDao.update(mailToUnlock); + if (log.isDebugEnabled()) { + log.debug("[UNLOCK] " + mailToUnlock.getTopiaId() + " unlocked (automatic)"); + } + } return email; } @@ -596,7 +604,7 @@ email = emailDao.update(email); getPersistenceContext().commit(); if (log.isDebugEnabled()) { - log.debug("[UNLOCK] " + emailId + " unlocked "); + log.debug("[UNLOCK] " + emailId + " unlocked"); } return email; }
participants (1)
-
echatellier@users.forge.codelutin.com