08-25-2020 02:56 AM
Hello
Is it possible to restrict the visibility of some content's metadata only for some groups?
For example, the top-secret property should only be visible to Site Managers, not Consumers.
08-25-2020 09:10 AM
May be a hint, you can create your own edit-mode, create-mode, view-mode or field type based freemarker templates and use it in the form config. I dont have full solution yet but this is something which can be tried.
From config reference: https://docs.alfresco.com/5.2/references/forms-reference.html
From within the template, you can call a repository webscript to get the permission ([ALLOWED|DENIED];[USERNAME|GROUPNAME];PERMISSION') for current user and show/hide control based on response.
Example of calling a repo ws from ftl file:
<script type="text/javascript">//<![CDATA[
var checkPermission = function(res){
var result = eval('(' + res.serverResponse.responseText + ')');
// process the response and set any flag for hiding and showing control.
}
Alfresco.util.Ajax.jsonGet({
url : Alfresco.constants.PROXY_URI + "/getPermission?currentUser="+user,
successCallback : {
fn : checkPermission,
scope : this
},
failureCallback : {
fn : function() {},
scope : this
}
});
//]]></script>
08-25-2020 05:27 AM
08-25-2020 07:31 AM
08-25-2020 08:53 AM
Hi @upforsin
Apologies, I skipped over the group requirement. There is a post on a related requirement that might be of interest.
Xenit have a commercial solution that alllows you to "Apply fine-grained mandatory-access-controls based on user-roles and document metadata" - whether this is just for access control or includes control over Share "show/hide" behaviour I don't know.
08-25-2020 09:10 AM
May be a hint, you can create your own edit-mode, create-mode, view-mode or field type based freemarker templates and use it in the form config. I dont have full solution yet but this is something which can be tried.
From config reference: https://docs.alfresco.com/5.2/references/forms-reference.html
From within the template, you can call a repository webscript to get the permission ([ALLOWED|DENIED];[USERNAME|GROUPNAME];PERMISSION') for current user and show/hide control based on response.
Example of calling a repo ws from ftl file:
<script type="text/javascript">//<![CDATA[
var checkPermission = function(res){
var result = eval('(' + res.serverResponse.responseText + ')');
// process the response and set any flag for hiding and showing control.
}
Alfresco.util.Ajax.jsonGet({
url : Alfresco.constants.PROXY_URI + "/getPermission?currentUser="+user,
successCallback : {
fn : checkPermission,
scope : this
},
failureCallback : {
fn : function() {},
scope : this
}
});
//]]></script>
Explore our Alfresco products with the links below. Use labels to filter content by product module.