You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2016/04/07 16:57:47 UTC

[2/3] syncope git commit: [SYNCOPE-788] Feature provided

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/bulk/BulkActionModal_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/bulk/BulkActionModal_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/bulk/BulkActionModal_it.properties
deleted file mode 100644
index 55f9a34..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/bulk/BulkActionModal_it.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-bulk.action=Operazioni di gruppo
-close=Chiudi

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/bulk/BulkActionModal_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/bulk/BulkActionModal_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/bulk/BulkActionModal_pt_BR.properties
deleted file mode 100644
index 353e95c..0000000
--- a/client/console/src/main/resources/org/apache/syncope/client/console/bulk/BulkActionModal_pt_BR.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-bulk.action=A\u00e7\u00e3o Composta
-close=Fechar

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties
index bae38da..7362fcc 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel.properties
@@ -35,3 +35,5 @@ any.new=New ${anyTO.type}
 any.finish=Submit ${anyTO.type}
 any.cancel=Cancel ${anyTO.type}
 any.attr.display=Attributes to be displayed
+bulk.action=Bulk action
+any.propagation.tasks=Propagation tasks for ${type} ${key}

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties
index 77b8ba8..58a3558 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_it.properties
@@ -35,3 +35,5 @@ any.new=Nuovo ${anyTO.type}
 any.attr.display=Attributi da mostrare
 any.finish=Invia ${anyTO.type}
 any.cancel=Annulla ${anyTO.type}
+bulk.action=Operazioni di gruppo
+any.propagation.tasks=Task di propagazione per ${type} ${key}

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties
index 84ecd6d..8b5cc59 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/panels/DirectoryPanel_pt_BR.properties
@@ -35,3 +35,5 @@ any.new=Novo ${anyTO.type}
 any.attr.display=Atributos a ser exibido
 any.finish=Apresentar ${anyTO.type}
 any.cancel=Cancelar ${anyTO.type}
+bulk.action=A\u00e7\u00e3o Composta
+any.propagation.tasks=Propagation tasks for ${type} ${key}

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal.properties b/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal.properties
index 8882ab6..ef1cdf0 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal.properties
@@ -17,4 +17,3 @@
 resourceName=Resource
 connObjectLink=Remote ID
 status=Status
-bulk.action=Bulk action

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_it.properties
index 0714c13..948b49d 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_it.properties
@@ -17,4 +17,3 @@
 resourceName=Risorsa
 connObjectLink=ID Remoto
 status=Stato
-bulk.action=Azione di massa

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_pt_BR.properties
index 8882ab6..ef1cdf0 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/status/StatusModal_pt_BR.properties
@@ -17,4 +17,3 @@
 resourceName=Resource
 connObjectLink=Remote ID
 status=Status
-bulk.action=Bulk action

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties
index a882f45..a1c2b96 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel.properties
@@ -15,8 +15,8 @@
 # specific language governing permissions and limitations
 # under the License.
 operation=Operation
-anyTypeKind=Involved object
-anyKey=Local id
-connObjectKey=Remote Id
+anyTypeKind=Object Type
+anyKey=Local Key
+connObjectKey=Remote Key
 start=Start
 end=End

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties
index 13e1fb1..60c13cf 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_it.properties
@@ -15,8 +15,8 @@
 # specific language governing permissions and limitations
 # under the License.
 operation=Operazione
-anyTypeKind=Oggetto coinvolto
-anyKey=Id locale
-connObjectKey=Id remoto
+anyTypeKind=Tipo Oggetto
+anyKey=Key Locale
+connObjectKey=Key Remota
 start=Inizio
 end=Fine

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties
index a882f45..a1c2b96 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/tasks/PropagationTaskDirectoryPanel_pt_BR.properties
@@ -15,8 +15,8 @@
 # specific language governing permissions and limitations
 # under the License.
 operation=Operation
-anyTypeKind=Involved object
-anyKey=Local id
-connObjectKey=Remote Id
+anyTypeKind=Object Type
+anyKey=Local Key
+connObjectKey=Remote Key
 start=Start
 end=End

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
index 50d3c6c..eeb94e4 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wicket/markup/html/form/ActionLinksPanel.html
@@ -41,11 +41,10 @@ under the License.
     <span wicket:id="panelResetTime">[plus]</span>
     <span wicket:id="panelClone">[plus]</span>
     <span wicket:id="panelCreate">[plus]</span>
-    <span wicket:id="panelUserTemplate">[plus]</span>
-    <span wicket:id="panelGroupTemplate">[plus]</span>
     <span wicket:id="panelReset">[plus]</span>
     <span wicket:id="panelEdit">[plus]</span>
     <span wicket:id="panelExport">[plus]</span>
+    <span wicket:id="panelPropagationTasks">[plus]</span>
     <span wicket:id="panelDelete">[plus]</span>
     <span wicket:id="panelSelect">[select]</span>
     <span wicket:id="panelClose">[close]</span>
@@ -63,7 +62,7 @@ under the License.
     <span wicket:id="panelZoomOut">[plus]</span>
 
     <wicket:fragment wicket:id="fragmentMustChangePassword">
-      <a href="#" wicket:id="MustChangePasswordLink" class="btn"><i class="fa fa-lock" alt="must change password icon" title="Force change password"></i></a>
+      <a href="#" wicket:id="MustChangePasswordLink" class="btn"><i class="fa fa-lock" alt="must change password icon" title="Toggle must change password"></i></a>
     </wicket:fragment>
 
     <wicket:fragment wicket:id="fragmentClaim">
@@ -122,12 +121,8 @@ under the License.
       <a href="#" wicket:id="resetLink" class="btn"><img id="actionLink" src="img/actions/reset.png" alt="reset icon" title="Reset sync token"/></a>
     </wicket:fragment>
 
-    <wicket:fragment wicket:id="fragmentUserTemplate">
-      <a href="#" wicket:id="userTemplateLink" class="btn"><img id="actionLink" src="img/actions/user_template.png" alt="user template icon" title="Specify user template"/></a>
-    </wicket:fragment>
-
-    <wicket:fragment wicket:id="fragmentGroupTemplate">
-      <a href="#" wicket:id="groupTemplateLink" class="btn"><img id="actionLink" src="img/actions/groups-icon.png" alt="group template icon"  title="Specify group template"/></a>
+    <wicket:fragment wicket:id="fragmentPropagationTasks">
+      <a href="#" wicket:id="propagationTasksLink" class="btn"><i class="fa fa-arrow-right" alt="PropagationTasks icon" title="PropagationTasks"></i></a>
     </wicket:fragment>
 
     <wicket:fragment wicket:id="fragmentDelete">

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html
----------------------------------------------------------------------
diff --git a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html
index 7a00891..cdbfa80 100644
--- a/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html
+++ b/client/console/src/main/resources/org/apache/syncope/client/console/wizards/WizardMgtPanel.html
@@ -17,35 +17,31 @@ specific language governing permissions and limitations
 under the License.
 -->
 <html xmlns="http://www.w3.org/1999/xhtml" xmlns:wicket="http://wicket.apache.org">
-  <head>
-    <title></title>
-  </head>
-  <body>
-    <wicket:panel>
-      <span wicket:id="container">
-        <wicket:container wicket:id="content" />
-      </span>
+  <wicket:panel>
+    <span wicket:id="container">
+      <wicket:container wicket:id="content"/>
+    </span>
 
-      <wicket:fragment wicket:id="wizard">
-        <span wicket:id="wizard"/>
-      </wicket:fragment>
+    <wicket:fragment wicket:id="wizard">
+      <span wicket:id="wizard"/>
+    </wicket:fragment>
 
-      <wicket:fragment wicket:id="default">
+    <wicket:fragment wicket:id="default">
 
-        <wicket:child />
+      <wicket:child/>
 
-        <wicket:enclosure child="add">
-          <div class="modal-footer" style="text-align: right">
-            <a haref="#"  class="btn btn-primary btn-circle btn-lg" wicket:id="add">
-              <i class="glyphicon glyphicon-plus"></i>
-            </a>
-          </div>
-        </wicket:enclosure>
-      </wicket:fragment>
+      <wicket:enclosure child="add">
+        <div class="modal-footer" style="text-align: right">
+          <a haref="#"  class="btn btn-primary btn-circle btn-lg" wicket:id="add">
+            <i class="glyphicon glyphicon-plus"></i>
+          </a>
+        </div>
+      </wicket:enclosure>
+    </wicket:fragment>
 
-      <div wicket:id="modal" />
-      <div wicket:id="alternativeDefaultModal" />
-      <div wicket:id="displayAttributeModal" />
-    </wicket:panel>
-  </body>
+    <div wicket:id="modal"/>
+    <div wicket:id="alternativeDefaultModal"/>
+    <div wicket:id="displayAttributeModal"/>
+    <div wicket:id="utilityModal"/>
+  </wicket:panel>
 </html>

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyEntitlement.java
----------------------------------------------------------------------
diff --git a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyEntitlement.java b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyEntitlement.java
index 55bf8f6..1320efe 100644
--- a/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyEntitlement.java
+++ b/common/lib/src/main/java/org/apache/syncope/common/lib/types/AnyEntitlement.java
@@ -26,4 +26,7 @@ public enum AnyEntitlement {
     UPDATE,
     DELETE;
 
+    public String getFor(final String anyTypeKey) {
+        return anyTypeKey + "_" + name();
+    }
 }

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
----------------------------------------------------------------------
diff --git a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
index b74cd4f..188cf0d 100644
--- a/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
+++ b/core/logic/src/main/java/org/apache/syncope/core/logic/AnyObjectLogic.java
@@ -38,7 +38,6 @@ import org.apache.syncope.common.lib.types.AnyEntitlement;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
 import org.apache.syncope.common.lib.types.ClientExceptionType;
 import org.apache.syncope.common.lib.types.PatchOperation;
-import org.apache.syncope.core.provisioning.api.EntitlementsHolder;
 import org.apache.syncope.core.persistence.api.dao.AnyObjectDAO;
 import org.apache.syncope.core.persistence.api.dao.search.OrderByClause;
 import org.apache.syncope.core.persistence.api.dao.search.SearchCond;
@@ -101,8 +100,7 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
         }
 
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(searchCond.hasAnyTypeCond(), AnyEntitlement.SEARCH)),
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(searchCond.hasAnyTypeCond())),
                 realm);
 
         return searchDAO.count(effectiveRealms, searchCond, AnyTypeKind.ANY_OBJECT);
@@ -118,8 +116,7 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
         }
 
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(searchCond.hasAnyTypeCond(), AnyEntitlement.SEARCH)),
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(searchCond.hasAnyTypeCond())),
                 realm);
 
         List<AnyObject> matchingAnyObjects = searchDAO.search(
@@ -145,8 +142,7 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
         }
 
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(before.getLeft().getType(), AnyEntitlement.CREATE)),
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(before.getLeft().getType())),
                 before.getLeft().getRealm());
         securityChecks(effectiveRealms, before.getLeft().getRealm(), null);
 
@@ -167,8 +163,7 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
                 ? before.getLeft().getRealm().getValue()
                 : anyObjectTO.getRealm();
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(anyObjectTO.getType(), AnyEntitlement.UPDATE)),
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(anyObjectTO.getType())),
                 realm);
         securityChecks(effectiveRealms, realm, before.getLeft().getKey());
 
@@ -183,8 +178,7 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
         Pair<AnyObjectTO, List<LogicActions>> before = beforeDelete(anyObject);
 
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(before.getLeft().getType(), AnyEntitlement.DELETE)),
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(before.getLeft().getType())),
                 before.getLeft().getRealm());
         securityChecks(effectiveRealms, before.getLeft().getRealm(), before.getLeft().getKey());
 
@@ -199,12 +193,11 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
     @Override
     public AnyObjectTO unlink(final Long key, final Collection<String> resources) {
         // security checks
-        AnyObjectTO anyObject = binder.getAnyObjectTO(key);
+        AnyObjectTO anyObjectTO = binder.getAnyObjectTO(key);
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(anyObject.getType(), AnyEntitlement.UPDATE)),
-                anyObject.getRealm());
-        securityChecks(effectiveRealms, anyObject.getRealm(), anyObject.getKey());
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(anyObjectTO.getType())),
+                anyObjectTO.getRealm());
+        securityChecks(effectiveRealms, anyObjectTO.getRealm(), anyObjectTO.getKey());
 
         AnyObjectPatch patch = new AnyObjectPatch();
         patch.setKey(key);
@@ -222,12 +215,11 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
     @Override
     public AnyObjectTO link(final Long key, final Collection<String> resources) {
         // security checks
-        AnyObjectTO anyObject = binder.getAnyObjectTO(key);
+        AnyObjectTO anyObjectTO = binder.getAnyObjectTO(key);
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(anyObject.getType(), AnyEntitlement.UPDATE)),
-                anyObject.getRealm());
-        securityChecks(effectiveRealms, anyObject.getRealm(), anyObject.getKey());
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(anyObjectTO.getType())),
+                anyObjectTO.getRealm());
+        securityChecks(effectiveRealms, anyObjectTO.getRealm(), anyObjectTO.getKey());
 
         AnyObjectPatch patch = new AnyObjectPatch();
         patch.setKey(key);
@@ -247,12 +239,11 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
             final Long key, final Collection<String> resources, final boolean nullPriorityAsync) {
 
         // security checks
-        AnyObjectTO anyObject = binder.getAnyObjectTO(key);
+        AnyObjectTO anyObjectTO = binder.getAnyObjectTO(key);
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(anyObject.getType(), AnyEntitlement.UPDATE)),
-                anyObject.getRealm());
-        securityChecks(effectiveRealms, anyObject.getRealm(), anyObject.getKey());
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(anyObjectTO.getType())),
+                anyObjectTO.getRealm());
+        securityChecks(effectiveRealms, anyObjectTO.getRealm(), anyObjectTO.getKey());
 
         AnyObjectPatch patch = new AnyObjectPatch();
         patch.setKey(key);
@@ -276,12 +267,11 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
             final boolean nullPriorityAsync) {
 
         // security checks
-        AnyObjectTO anyObject = binder.getAnyObjectTO(key);
+        AnyObjectTO anyObjectTO = binder.getAnyObjectTO(key);
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(anyObject.getType(), AnyEntitlement.UPDATE)),
-                anyObject.getRealm());
-        securityChecks(effectiveRealms, anyObject.getRealm(), anyObject.getKey());
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(anyObjectTO.getType())),
+                anyObjectTO.getRealm());
+        securityChecks(effectiveRealms, anyObjectTO.getRealm(), anyObjectTO.getKey());
 
         AnyObjectPatch patch = new AnyObjectPatch();
         patch.setKey(key);
@@ -301,12 +291,11 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
             final Long key, final Collection<String> resources, final boolean nullPriorityAsync) {
 
         // security checks
-        AnyObjectTO anyObject = binder.getAnyObjectTO(key);
+        AnyObjectTO anyObjectTO = binder.getAnyObjectTO(key);
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(anyObject.getType(), AnyEntitlement.UPDATE)),
-                anyObject.getRealm());
-        securityChecks(effectiveRealms, anyObject.getRealm(), anyObject.getKey());
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(anyObjectTO.getType())),
+                anyObjectTO.getRealm());
+        securityChecks(effectiveRealms, anyObjectTO.getRealm(), anyObjectTO.getKey());
 
         List<PropagationStatus> statuses = provisioningManager.deprovision(key, resources, nullPriorityAsync);
 
@@ -325,12 +314,11 @@ public class AnyObjectLogic extends AbstractAnyLogic<AnyObjectTO, AnyObjectPatch
             final boolean nullPriorityAsync) {
 
         // security checks
-        AnyObjectTO anyObject = binder.getAnyObjectTO(key);
+        AnyObjectTO anyObjectTO = binder.getAnyObjectTO(key);
         Set<String> effectiveRealms = getEffectiveRealms(
-                AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                        getFor(anyObject.getType(), AnyEntitlement.UPDATE)),
-                anyObject.getRealm());
-        securityChecks(effectiveRealms, anyObject.getRealm(), anyObject.getKey());
+                AuthContextUtils.getAuthorizations().get(AnyEntitlement.SEARCH.getFor(anyObjectTO.getType())),
+                anyObjectTO.getRealm());
+        securityChecks(effectiveRealms, anyObjectTO.getRealm(), anyObjectTO.getKey());
 
         List<PropagationStatus> statuses = provisioningManager.provision(key, resources, nullPriorityAsync);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java
index 999660e..da1f497 100644
--- a/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java
+++ b/core/persistence-api/src/main/java/org/apache/syncope/core/persistence/api/dao/TaskDAO.java
@@ -36,10 +36,10 @@ public interface TaskDAO extends DAO<Task, Long> {
     <T extends Task> List<T> findAll(TaskType type);
 
     <T extends Task> List<T> findAll(
-            TaskType type, ExternalResource resource, AnyTypeKind anyTypeKind, Long anyTypeKey,
+            TaskType type, ExternalResource resource, AnyTypeKind anyTypeKind, Long anyKey,
             int page, int itemsPerPage, List<OrderByClause> orderByClauses);
 
-    int count(TaskType type, ExternalResource resource, AnyTypeKind anyTypeKind, Long anyTypeKey);
+    int count(TaskType type, ExternalResource resource, AnyTypeKind anyTypeKind, Long anyKey);
 
     <T extends Task> T save(T task);
 

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
index f758ad9..a000511 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAAnyObjectDAO.java
@@ -35,7 +35,6 @@ import org.apache.commons.collections4.Predicate;
 import org.apache.commons.collections4.Transformer;
 import org.apache.syncope.common.lib.types.AnyEntitlement;
 import org.apache.syncope.common.lib.types.AnyTypeKind;
-import org.apache.syncope.core.provisioning.api.EntitlementsHolder;
 import org.apache.syncope.core.spring.security.AuthContextUtils;
 import org.apache.syncope.core.spring.security.DelegatedAdministrationException;
 import org.apache.syncope.core.provisioning.api.utils.EntityUtils;
@@ -106,8 +105,8 @@ public class JPAAnyObjectDAO extends AbstractAnyDAO<AnyObject> implements AnyObj
 
     @Override
     protected void securityChecks(final AnyObject anyObject) {
-        Set<String> authRealms = AuthContextUtils.getAuthorizations().get(EntitlementsHolder.getInstance().
-                getFor(anyObject.getType().getKey(), AnyEntitlement.READ));
+        Set<String> authRealms = AuthContextUtils.getAuthorizations().get(
+                AnyEntitlement.READ.getFor(anyObject.getType().getKey()));
         boolean authorized = IterableUtils.matchesAny(authRealms, new Predicate<String>() {
 
             @Override

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
----------------------------------------------------------------------
diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
index 3a16b8e..9eedb70 100644
--- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
+++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPATaskDAO.java
@@ -122,7 +122,7 @@ public class JPATaskDAO extends AbstractDAO<Task, Long> implements TaskDAO {
             final TaskType type,
             final ExternalResource resource,
             final AnyTypeKind anyTypeKind,
-            final Long anyTypeKey) {
+            final Long anyKey) {
 
         if (resource != null
                 && type != TaskType.PROPAGATION && type != TaskType.PUSH && type != TaskType.PULL) {
@@ -130,7 +130,7 @@ public class JPATaskDAO extends AbstractDAO<Task, Long> implements TaskDAO {
             throw new IllegalArgumentException(type + " is not related to " + ExternalResource.class.getSimpleName());
         }
 
-        if ((anyTypeKind != null || anyTypeKey != null) && type != TaskType.PROPAGATION) {
+        if ((anyTypeKind != null || anyKey != null) && type != TaskType.PROPAGATION) {
             throw new IllegalArgumentException(type + " is not related to users, groups or any objects");
         }
 
@@ -139,8 +139,8 @@ public class JPATaskDAO extends AbstractDAO<Task, Long> implements TaskDAO {
         if (resource != null) {
             queryString.append("AND t.resource=:resource ");
         }
-        if (anyTypeKind != null && anyTypeKey != null) {
-            queryString.append("AND t.anyTypeKind=:anyTypeKind AND t.anyTypeKey=:anyTypeKey ");
+        if (anyTypeKind != null && anyKey != null) {
+            queryString.append("AND t.anyTypeKind=:anyTypeKind AND t.anyKey=:anyKey ");
         }
 
         return queryString;
@@ -172,21 +172,21 @@ public class JPATaskDAO extends AbstractDAO<Task, Long> implements TaskDAO {
             final TaskType type,
             final ExternalResource resource,
             final AnyTypeKind anyTypeKind,
-            final Long anyTypeKey,
+            final Long anyKey,
             final int page,
             final int itemsPerPage,
             final List<OrderByClause> orderByClauses) {
 
-        StringBuilder queryString = buildFindAllQuery(type, resource, anyTypeKind, anyTypeKey).
+        StringBuilder queryString = buildFindAllQuery(type, resource, anyTypeKind, anyKey).
                 append(toOrderByStatement(getEntityReference(type), orderByClauses));
 
         Query query = entityManager().createQuery(queryString.toString());
         if (resource != null) {
             query.setParameter("resource", resource);
         }
-        if (anyTypeKind != null && anyTypeKey != null) {
+        if (anyTypeKind != null && anyKey != null) {
             query.setParameter("anyTypeKind", anyTypeKind);
-            query.setParameter("anyTypeKey", anyTypeKey);
+            query.setParameter("anyKey", anyKey);
         }
 
         query.setFirstResult(itemsPerPage * (page <= 0
@@ -205,18 +205,18 @@ public class JPATaskDAO extends AbstractDAO<Task, Long> implements TaskDAO {
             final TaskType type,
             final ExternalResource resource,
             final AnyTypeKind anyTypeKind,
-            final Long anyTypeKey) {
+            final Long anyKey) {
 
-        StringBuilder queryString = buildFindAllQuery(type, resource, anyTypeKind, anyTypeKey);
+        StringBuilder queryString = buildFindAllQuery(type, resource, anyTypeKind, anyKey);
 
         Query query = entityManager().createQuery(StringUtils.replaceOnce(
                 queryString.toString(), "SELECT t", "SELECT COUNT(t)"));
         if (resource != null) {
             query.setParameter("resource", resource);
         }
-        if (anyTypeKind != null && anyTypeKey != null) {
+        if (anyTypeKind != null && anyKey != null) {
             query.setParameter("anyTypeKind", anyTypeKind);
-            query.setParameter("anyTypeKey", anyTypeKey);
+            query.setParameter("anyKey", anyKey);
         }
 
         return ((Number) query.getSingleResult()).intValue();

http://git-wip-us.apache.org/repos/asf/syncope/blob/93cf2296/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java
----------------------------------------------------------------------
diff --git a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java
index d67362f..53a86f5 100644
--- a/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java
+++ b/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/EntitlementsHolder.java
@@ -50,19 +50,15 @@ public final class EntitlementsHolder {
         this.values.addAll(values);
     }
 
-    public String getFor(final String anyTypeKey, final AnyEntitlement operation) {
-        return anyTypeKey + "_" + operation.name();
-    }
-
     public void addFor(final String anyType) {
         for (AnyEntitlement operation : AnyEntitlement.values()) {
-            this.values.add(getFor(anyType, operation));
+            this.values.add(operation.getFor(anyType));
         }
     }
 
     public void removeFor(final String anyType) {
         for (AnyEntitlement operation : AnyEntitlement.values()) {
-            this.values.remove(getFor(anyType, operation));
+            this.values.remove(operation.getFor(anyType));
         }
     }