This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository coselmar. See http://git.codelutin.com/coselmar.git commit db2e7e2f3bd84df459d6f92676151777457ba2e7 Author: Yannick Martel <martel@©odelutin.com> Date: Wed Feb 4 11:22:40 2015 +0100 add restricted document in documents list (update database request) --- .../coselmar/persistence/entity/DocumentTopiaDao.java | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/coselmar-persistence/src/main/java/fr/ifremer/coselmar/persistence/entity/DocumentTopiaDao.java b/coselmar-persistence/src/main/java/fr/ifremer/coselmar/persistence/entity/DocumentTopiaDao.java index 7bd5fc8..acbcd41 100644 --- a/coselmar-persistence/src/main/java/fr/ifremer/coselmar/persistence/entity/DocumentTopiaDao.java +++ b/coselmar-persistence/src/main/java/fr/ifremer/coselmar/persistence/entity/DocumentTopiaDao.java @@ -59,7 +59,8 @@ public class DocumentTopiaDao extends AbstractDocumentTopiaDao<Document> { public List<Document> findAllFilterByUser(CoselmarUser currentUser, List<String> keywords) { - StringBuilder hqlBuilder = new StringBuilder("FROM " + Document.class.getName() + " D"); + StringBuilder hqlBuilder = new StringBuilder("SELECT D FROM " + Document.class.getName() + " D" + + " LEFT OUTER JOIN D." + Document.PROPERTY_RESTRICTED_LIST + " CUG "); Map<String, Object> args = new HashMap<>(); @@ -67,11 +68,13 @@ public class DocumentTopiaDao extends AbstractDocumentTopiaDao<Document> { String privacyPublicCondition = DaoUtils.getQueryForAttributeEquals("D", Document.PROPERTY_PRIVACY, args, Privacy.PUBLIC, ""); hqlBuilder.append(" WHERE ( " + privacyPublicCondition); - // Can list his own private document - String privacyPrivateCondition = DaoUtils.getQueryForAttributeEquals("D", Document.PROPERTY_PRIVACY, args, Privacy.PRIVATE, ""); - String ownerCondition = DaoUtils.andAttributeEquals("D", Document.PROPERTY_OWNER, args, currentUser); + // Can list his own document + String ownerCondition = DaoUtils.orAttributeEquals("D", Document.PROPERTY_OWNER, args, currentUser); + hqlBuilder.append(ownerCondition); - hqlBuilder.append(" OR ( " + privacyPrivateCondition + " " + ownerCondition + " ) )"); + // For limited access, check if user is in a restricted list + String participantCondition = DaoUtils.orAttributeContains("CUG", CoselmarUserGroup.PROPERTY_MEMBERS, args, currentUser); + hqlBuilder.append(participantCondition + ")"); // Manage keywords search in : title, summary, authors and keywords -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.