r508 - in trunk: faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions
Author: kmorin Date: 2014-08-08 17:24:12 +0200 (Fri, 08 Aug 2014) New Revision: 508 Url: http://forge.codelutin.com/projects/faxtomail/repository/revisions/508 Log: use mailfolder method instead of recomputing the readable value Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java Modified: trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java =================================================================== --- trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-08-08 15:19:04 UTC (rev 507) +++ trunk/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java 2014-08-08 15:24:12 UTC (rev 508) @@ -534,22 +534,9 @@ @Override public PaginationResult<Email> getEmailForFolder(MailFolder folder, FaxToMailUser currentUser, PaginationParameter page) { - MailFolderTopiaDao mailFolderTopiaDao = getPersistenceContext().getMailFolderDao(); - // check if user can read current folder - MailFolder loopFolder = mailFolderTopiaDao.forTopiaIdEquals(folder.getTopiaId()).findUnique(); - boolean readable = false; - while (!readable && loopFolder != null) { - // user - readable = (loopFolder.getReadRightUsers() != null && loopFolder.getReadRightUsers().contains(currentUser)) || - // groups - (currentUser.getUserGroups() != null && loopFolder.getReadRightGroups() != null && CollectionUtils.containsAny(currentUser.getUserGroups(), loopFolder.getReadRightGroups())); - - loopFolder = loopFolder.getParent(); - } - // perform request or not depending on rigths PaginationResult<Email> result; - if (readable) { + if (folder.isFolderReadable()) { EmailTopiaDao dao = getPersistenceContext().getEmailDao(); result = dao.forMailFolderEquals(folder) .addNull(Email.PROPERTY_ARCHIVE_DATE) Modified: trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java =================================================================== --- trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-08-08 15:19:04 UTC (rev 507) +++ trunk/faxtomail-ui-swing/src/main/java/com/franciaflex/faxtomail/ui/swing/actions/ShowDemandeAction.java 2014-08-08 15:24:12 UTC (rev 508) @@ -64,6 +64,7 @@ FaxToMailUser currentUser = getContext().getCurrentUser(); int answer = -1; + // si le mail est pris par quelqu'un d'autre, le prend-on ou pas ? if (takenBy != null && !currentUser.equals(takenBy)) { String htmlMessage = String.format( AbstractApplicationUIHandler.CONFIRMATION_FORMAT, @@ -77,11 +78,12 @@ JOptionPane.QUESTION_MESSAGE); } + // si on annule, on n'ouvre pas if (answer == JOptionPane.CANCEL_OPTION) { result = false; } else { - + // sinon on ouvre try { // tentative de verrouillages des email existants if (StringUtils.isNotBlank(currentEmail.getTopiaId())) { @@ -89,10 +91,11 @@ serviceContext.getEmailService().lockEmail(currentEmail.getTopiaId(), currentUser); } + // si on ne prend pas, le mail est en readonly if (answer == JOptionPane.NO_OPTION) { currentEmail.setEditable(false); } - // if the user takes the email + // si on prend, on prend et on rend editable else if (answer == JOptionPane.YES_OPTION) { FaxToMailServiceContext serviceContext = getContext().newServiceContext(); serviceContext.getEmailService().takeEmail(currentEmail.getTopiaId(), currentUser); @@ -100,7 +103,9 @@ currentEmail.setEditable(true); } - } catch (AlreadyLockedMailException ex) { + } + // le mail est locké, on ne fait rien + catch (AlreadyLockedMailException ex) { result = false; String htmlMessage = t("faxtomail.alert.alreadyLockedBy.message", decorate(ex.getLockedBy()));
participants (1)
-
kmorin@users.forge.codelutin.com