1
0
mirror of https://github.com/sismics/docs.git synced 2025-12-15 02:36:24 +00:00

#83: Use ACLs for tag operations

This commit is contained in:
jendib
2016-05-05 22:36:53 +02:00
parent 37fc2d09bb
commit 1b1d5e9b4c
5 changed files with 28 additions and 25 deletions

View File

@@ -215,16 +215,15 @@ public class TagDao {
StringBuilder sb = new StringBuilder("select t.TAG_ID_C as c0, t.TAG_NAME_C as c1, t.TAG_COLOR_C as c2, t.TAG_IDPARENT_C as c3 ");
sb.append(" from T_TAG t ");
// TODO Use ACLs
// Add search criterias
if (criteria.getId() != null) {
criteriaList.add("t.TAG_ID_C = :id");
parameterMap.put("id", criteria.getId());
}
if (criteria.getUserId() != null) {
criteriaList.add("t.TAG_IDUSER_C = :userId");
parameterMap.put("userId", criteria.getUserId());
if (criteria.getTargetIdList() != null) {
sb.append(" left join T_ACL a on a.ACL_TARGETID_C in (:targetIdList) and a.ACL_SOURCEID_C = t.TAG_ID_C and a.ACL_PERM_C = 'READ' and a.ACL_DELETEDATE_D is null ");
parameterMap.put("targetIdList", criteria.getTargetIdList());
}
if (criteria.getDocumentId() != null) {
sb.append(" join T_DOCUMENT_TAG dt on dt.DOT_IDTAG_C = t.TAG_ID_C and dt.DOT_DELETEDATE_D is null ");

View File

@@ -1,5 +1,7 @@
package com.sismics.docs.core.dao.jpa.criteria;
import java.util.List;
/**
* Tag criteria.
*
@@ -12,9 +14,9 @@ public class TagCriteria {
private String id;
/**
* User ID.
* ACL target ID list.
*/
private String userId;
private List<String> targetIdList;
/**
* Document ID.
@@ -40,12 +42,12 @@ public class TagCriteria {
return this;
}
public String getUserId() {
return userId;
public List<String> getTargetIdList() {
return targetIdList;
}
public TagCriteria setUserId(String userId) {
this.userId = userId;
public TagCriteria setTargetIdList(List<String> targetIdList) {
this.targetIdList = targetIdList;
return this;
}