branch develop-1.1.x updated (92ae41b -> d65839e)
This is an automated email from the git hooks/post-receive script. New change to branch develop-1.1.x in repository faxtomail. See http://git.codelutin.com/faxtomail.git from 92ae41b [jgitflow-maven-plugin]Updating develop poms back to pre merge state new 5602d1e retour en arrière sur l'héritage des droits de lecture new d65839e fix tests The 2 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit d65839e081c27d0bba4d4c02561c72d5081630a3 Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 10 12:28:43 2015 +0100 fix tests commit 5602d1e6c947a0831f31b9084b5e1379d8fe3df1 Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 10 10:48:53 2015 +0100 retour en arrière sur l'héritage des droits de lecture Summary of changes: .../persistence/entities/EmailTopiaDao.java | 1 - .../persistence/entities/MailFolderTopiaDao.java | 9 +----- .../services/service/ConfigurationServiceImpl.java | 6 ---- .../services/service/EmailServiceImpl.java | 29 +++++++++++++++++- .../services/service/MailFolderService.java | 2 -- .../services/service/MailFolderServiceImpl.java | 12 ++------ .../services/service/InitTestDataImpl.java | 35 ++++++++-------------- .../src/main/webapp/js/configuration.js | 14 --------- 8 files changed, 45 insertions(+), 63 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-1.1.x in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit 5602d1e6c947a0831f31b9084b5e1379d8fe3df1 Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 10 10:48:53 2015 +0100 retour en arrière sur l'héritage des droits de lecture --- .../persistence/entities/EmailTopiaDao.java | 1 - .../persistence/entities/MailFolderTopiaDao.java | 9 +------ .../services/service/ConfigurationServiceImpl.java | 6 ----- .../services/service/EmailServiceImpl.java | 29 +++++++++++++++++++++- .../services/service/MailFolderService.java | 2 -- .../services/service/MailFolderServiceImpl.java | 12 +++------ .../src/main/webapp/js/configuration.js | 14 ----------- 7 files changed, 32 insertions(+), 41 deletions(-) diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java index 3c4c215..2e61f5c 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/EmailTopiaDao.java @@ -447,7 +447,6 @@ public class EmailTopiaDao extends AbstractEmailTopiaDao<Email> { // Email.PROPERTY_HISTORY + "." + History.PROPERTY_FIELDS, // Email.PROPERTY_EMAIL_GROUP + "." + EmailGroup.PROPERTY_EMAIL) for (Email email : result.getElements()) { - Hibernate.initialize(email.getMailFolder()); //Hibernate.initialize(email.getPriority()); //Hibernate.initialize(email.getDemandType()); //Hibernate.initialize(email.getClient()); diff --git a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailFolderTopiaDao.java b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailFolderTopiaDao.java index 61180f7..47738fa 100644 --- a/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailFolderTopiaDao.java +++ b/faxtomail-persistence/src/main/java/com/franciaflex/faxtomail/persistence/entities/MailFolderTopiaDao.java @@ -55,14 +55,7 @@ public class MailFolderTopiaDao extends AbstractMailFolderTopiaDao<MailFolder> { } public Collection<MailFolder> getReadableFolders(FaxToMailUser user) { - return getReadableFolders(user, true); - } - - public Collection<MailFolder> getReadableFolders(FaxToMailUser user, boolean filterArchiveFoldes) { - String query = newFromClause("mf") + " where (:user in elements(mf.readRightUsers) or exists (from mf.readRightGroups g where g in (:groups)))"; - if (filterArchiveFoldes) { - query += " and mf.archiveFolder = false"; - } + String query = newFromClause("mf") + " where (:user in elements(mf.readRightUsers) or exists (from mf.readRightGroups g where g in (:groups))) and mf.archiveFolder = false"; HashMap<String, Object> map = Maps.newHashMap(); map.put("user", user); map.put("groups", user.getUserGroups()); diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationServiceImpl.java index 9a2e02b..4a10c85 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/ConfigurationServiceImpl.java @@ -312,12 +312,6 @@ public class ConfigurationServiceImpl extends FaxToMailServiceSupport implements currentMailFolder.setCompany(parent.getCompany()); } - // set the reading rights on all the children for the search to be easier - if (parent != null) { - currentMailFolder.addAllReadRightUsers(parent.getReadRightUsers()); - currentMailFolder.addAllReadRightGroups(parent.getReadRightGroups()); - } - if (!currentMailFolder.isPersisted()) { currentMailFolder = dao.create(currentMailFolder); } diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java index 61fbda9..8a4c670 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/EmailServiceImpl.java @@ -943,10 +943,37 @@ public class EmailServiceImpl extends FaxToMailServiceSupport implements EmailSe } } + /** + * Calcule recursivement l'ensemble des répertoires lisible par un utilisateur récursivement. + * + * @param readMailFolders result mail folders + * @param mailFolders mail folder to allow + */ + protected void computeUserReadableFolder(Set<MailFolder> readMailFolders, Iterable<MailFolder> mailFolders) { + if (mailFolders != null) { + for (MailFolder mailFolder : mailFolders) { + readMailFolders.add(mailFolder); + computeUserReadableFolder(readMailFolders, mailFolder.getChildren()); + } + } + } + @Override public PaginationResult<Email> search(SearchFilter emailFilter, FaxToMailUser user, PaginationParameter pagination) { - Set<MailFolder> readMailFolders = getMailFolderService().getAllMailFoldersWithReadingRights(user); + // compute rigths + MailFolderTopiaDao mailFolderDao = getPersistenceContext().getMailFolderDao(); + Set<MailFolder> readMailFolders = new HashSet<MailFolder>(); + // read rights for user + Iterable<MailFolder> mailFolders = mailFolderDao.forReadRightUsersContains(user).findAll(); + computeUserReadableFolder(readMailFolders, mailFolders); + // read rigths for groups + if (user.getUserGroups() != null) { + for (FaxToMailUserGroup group : user.getUserGroups()) { + mailFolders = mailFolderDao.forReadRightGroupsContains(group).findAll(); + computeUserReadableFolder(readMailFolders, mailFolders); + } + } // compute search EmailTopiaDao emailDao = getPersistenceContext().getEmailDao(); diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java index 69789fe..94d126c 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderService.java @@ -53,8 +53,6 @@ public interface MailFolderService extends FaxToMailService { List<MailFolder> getRootMailFoldersWithReadingRights(FaxToMailUser user); - Set<MailFolder> getAllMailFoldersWithReadingRights(FaxToMailUser user); - List<MailFolder> getRootMailFoldersWithMoveRights(FaxToMailUser user); List<MailFolder> getMailFolders(Collection<String> ids); diff --git a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java index b89d4c0..6f1f27e 100644 --- a/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java +++ b/faxtomail-service/src/main/java/com/franciaflex/faxtomail/services/service/MailFolderServiceImpl.java @@ -129,19 +129,13 @@ public class MailFolderServiceImpl extends FaxToMailServiceSupport implements Ma } if (folder != null) { - browseReadableFolders(folder, user, false); + browseReadableFolders(folder, result, user, false); } } return result; } - @Override - public Set<MailFolder> getAllMailFoldersWithReadingRights(FaxToMailUser user) { - MailFolderTopiaDao dao = getPersistenceContext().getMailFolderDao(); - return new HashSet<>(dao.getReadableFolders(user, false)); - } - - protected void browseReadableFolders(MailFolder folder, FaxToMailUser user, boolean writable) { + protected void browseReadableFolders(MailFolder folder, List<MailFolder> readableRoots, FaxToMailUser user, boolean writable) { folder.setFolderReadable(true); if (!writable && folder.sizeWriteRightGroups() > 0) { @@ -154,7 +148,7 @@ public class MailFolderServiceImpl extends FaxToMailServiceSupport implements Ma if (folder.isChildrenNotEmpty()) { for (MailFolder child : folder.getChildren()) { - browseReadableFolders(child, user, writable); + browseReadableFolders(child, readableRoots, user, writable); } } diff --git a/faxtomail-ui-web/src/main/webapp/js/configuration.js b/faxtomail-ui-web/src/main/webapp/js/configuration.js index ed5cadc..3ed2b2e 100644 --- a/faxtomail-ui-web/src/main/webapp/js/configuration.js +++ b/faxtomail-ui-web/src/main/webapp/js/configuration.js @@ -92,20 +92,6 @@ ConfigurationModule.controller('ConfigurationController', ['$scope', 'Configurat mailFolder.$cumulativeCount = folderCount; cumulativeCount += folderCount; - // et on supprime les droits de lecture qui sont déjà dans les parents - angular.forEach(mailFolder.readRightUsers, function(user) { - if (parent.readRightUsers.containsByTopiaId(user)) { - var index = mailFolder.readRightUsers.indexOfByTopiaId(user); - mailFolder.readRightUsers.splice(index, 1); - } - }); - - angular.forEach(mailFolder.readRightGroups, function(group) { - if (parent.readRightGroups.containsByTopiaId(group)) { - var index = mailFolder.readRightGroups.indexOfByTopiaId(group); - mailFolder.readRightGroups.splice(index, 1); - } - }); }); } return cumulativeCount; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop-1.1.x in repository faxtomail. See http://git.codelutin.com/faxtomail.git commit d65839e081c27d0bba4d4c02561c72d5081630a3 Author: Kevin Morin <morin@codelutin.com> Date: Tue Nov 10 12:28:43 2015 +0100 fix tests --- .../services/service/InitTestDataImpl.java | 35 ++++++++-------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestDataImpl.java b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestDataImpl.java index 10eb700..7e03e55 100644 --- a/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestDataImpl.java +++ b/faxtomail-service/src/test/java/com/franciaflex/faxtomail/services/service/InitTestDataImpl.java @@ -143,24 +143,20 @@ public class InitTestDataImpl extends FaxToMailServiceSupport implements InitTes MailFolderTopiaDao folderDao = getPersistenceContext().getMailFolderDao(); Map<String, MailFolder> foldersByName = new HashMap<>(); MailFolder franciaflex = folderDao.create(MailFolder.PROPERTY_NAME, "Franciaflex", - MailFolder.PROPERTY_COMPANY, "FXCOMP", - MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(marc)); + MailFolder.PROPERTY_COMPANY, "FXCOMP"); // categories MailFolder chargesClientelle = folderDao.create(MailFolder.PROPERTY_NAME, "Chargés de clientèle", MailFolder.PROPERTY_PARENT, franciaflex, MailFolder.PROPERTY_REPLY_ADDRESSES, Lists.newArrayList("no-reply@franciaflex.com"), - MailFolder.PROPERTY_COMPANY, "FXCOMP", - MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(marc)); + MailFolder.PROPERTY_COMPANY, "FXCOMP"); franciaflex.addChildren(chargesClientelle); foldersByName.put(chargesClientelle.getName(), chargesClientelle); MailFolder sav = folderDao.create(MailFolder.PROPERTY_NAME, "SAV", MailFolder.PROPERTY_PARENT, franciaflex, MailFolder.PROPERTY_WAITING_STATES, waitingStates.subList(0, 1), - MailFolder.PROPERTY_COMPANY, "FXCOMP", - MailFolder.PROPERTY_READ_RIGHT_GROUPS, groups23, - MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(marc)); + MailFolder.PROPERTY_COMPANY, "FXCOMP"); franciaflex.addChildren(sav); foldersByName.put(sav.getName(), sav); @@ -168,50 +164,45 @@ public class InitTestDataImpl extends FaxToMailServiceSupport implements InitTes MailFolder cyrilFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Cyril", MailFolder.PROPERTY_PARENT, chargesClientelle, MailFolder.PROPERTY_WAITING_STATES, waitingStates.subList(1, 2), - MailFolder.PROPERTY_COMPANY, "FXCOMP", - MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(cyril, marc)); + MailFolder.PROPERTY_COMPANY, "FXCOMP"); chargesClientelle.addChildren(cyrilFolder); foldersByName.put(cyrilFolder.getName(), cyrilFolder); MailFolder claireFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Claire", MailFolder.PROPERTY_PARENT, chargesClientelle, - MailFolder.PROPERTY_COMPANY, "FXCOMP", - MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(marc)); + MailFolder.PROPERTY_COMPANY, "FXCOMP"); chargesClientelle.addChildren(claireFolder); foldersByName.put(claireFolder.getName(), claireFolder); MailFolder agatheFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Agathe", MailFolder.PROPERTY_PARENT, chargesClientelle, MailFolder.PROPERTY_WAITING_STATES, waitingStates.subList(2, 3), - MailFolder.PROPERTY_COMPANY, "FXCOMP", - MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(marc)); + MailFolder.PROPERTY_COMPANY, "FXCOMP"); chargesClientelle.addChildren(agatheFolder); foldersByName.put(agatheFolder.getName(), agatheFolder); MailFolder marcFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Marc", MailFolder.PROPERTY_PARENT, sav, - MailFolder.PROPERTY_COMPANY, "FXCOMP", - MailFolder.PROPERTY_READ_RIGHT_GROUPS, groups23, - MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(marc)); + MailFolder.PROPERTY_COMPANY, "FXCOMP"); sav.addChildren(marcFolder); foldersByName.put(marcFolder.getName(), marcFolder); MailFolder fredericFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Frédéric", MailFolder.PROPERTY_PARENT, sav, - MailFolder.PROPERTY_COMPANY, "FXCOMP", - MailFolder.PROPERTY_READ_RIGHT_GROUPS, groups23, - MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(marc)); + MailFolder.PROPERTY_COMPANY, "FXCOMP"); sav.addChildren(fredericFolder); foldersByName.put(fredericFolder.getName(), fredericFolder); MailFolder jeanneFolder = folderDao.create(MailFolder.PROPERTY_NAME, "Jeanne", MailFolder.PROPERTY_PARENT, sav, - MailFolder.PROPERTY_COMPANY, "FXCOMP", - MailFolder.PROPERTY_READ_RIGHT_GROUPS, groups23, - MailFolder.PROPERTY_READ_RIGHT_USERS, Lists.newArrayList(marc)); + MailFolder.PROPERTY_COMPANY, "FXCOMP"); sav.addChildren(jeanneFolder); foldersByName.put(jeanneFolder.getName(), jeanneFolder); + // droits global à marc pour tout + franciaflex.addReadRightUsers(marc); + franciaflex = folderDao.update(franciaflex); + // import test csv List<Range> ranges = null; try (InputStream is = InitTestDataImpl.class.getResourceAsStream("/csv/ranges.csv")) { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm