Buenas, por favor me podrían decir si se puede bloquear un dashlet para los usuarios no Administradores. Tengo el addon de workflow reporting y solo quiero que los administradores accedan a el. Gracias. Feliz Semana
Puedes decir cuál es el addon?
Hola Douglas, el addon es workflow reporting Workflow Reporting | Alfresco Add-ons - Alfresco Customizations
Gracias
This is an interesting addon that I did not know about. Thank you for sharing it.
Back to your question on how to hide it from non admin users, it seems the addon itself does not offer that option.
In that case, I think the only way you can change that will be by customizing the customise-dashlets webscript's controller (the customise-dashlets.get.js file).
I have done exactly that, and all I can do now in order to try to help you is to share the code I created at the time. It has some comments (in Portuguese though), so I hope you can adapt the idea to your use case.
/* **
DGCloud custom start
A priori serão disponibilizadas as seguintes dashlets:
Painel Inicial
1-Meu Calendário
2-Minhas Atividades
3-Feeds RSS
4-Pesquisa Salva
Meu Escritório
1-Calendário do Site
2-Atividades do Site
3-Conteúdo do Site
4-Links do Site
*/
var dashletsPainelUsuario = ["user-calendar", "my-activities", "rssfeed", "saved-search"];
var dashletsPainelSite = ["calendar", "site-activities", "docsummary", "site-links"];
function searchInArray(value, array) {
var i;
for (i = 0; i < array.length; i++) {
if (array[i] == value) {
return true
}
}
return false;
}
/* **
Copia do original, com as alteracoes destacadas nos comentarios
*/
function customDashletsFilter()
{
// Get available components of family/type dashlet
var webscripts;
if (args.dashboardType == "user")
{
webscripts = sitedata.findWebScripts("user-dashlet");
}
else if (args.dashboardType == "site")
{
webscripts = sitedata.findWebScripts("site-dashlet");
}
if (!webscripts)
{
webscripts = [];
}
var tmp = sitedata.findWebScripts("dashlet");
if (tmp || tmp.length != 0)
{
webscripts = webscripts.concat(tmp);
}
// Transform the webscripts to easy-to-access dashlet items for the template
var availableDashlets = [];
var usergroups;
for (var i = 0; i < webscripts.length; i++)
{
var webscript = webscripts[i];
var uris = webscript.getURIs();
var scriptId, scriptName, shortNameId, descriptionId;
if (uris !== null && uris.length > 0 && webscript.shortName !== null)
{
// Check if the webscript is limited to certain groups
var allowed = true;
for (var fi = 0; fi < webscript.familys.length; fi++)
{
if (webscript.familys[fi].indexOf("group:") == 0)
{
allowed = false;
var group = webscript.familys[fi].substring("group:".length).trim();
group += ""; // make it of type "string" rather than "object" so that indexOf works
if (!usergroups)
{
usergroups = getUserGroups();
}
if (usergroups.indexOf(group) != -1)
{
allowed = true;
break;
}
}
}
if (allowed)
{
// Use the webscript ID to generate a message bundle ID
//
// This should really be retrieved from an explicit value but the web scripts framework does not provide
// a means for storing message bundle IDs, and the web framework is not being used here.
scriptId = webscript.id;
scriptName = scriptId.substring(scriptId.lastIndexOf("/") + 1, scriptId.lastIndexOf("."));
shortNameId = "dashlet." + scriptName + ".shortName";
descriptionId = "dashlet." + scriptName + ".description";
/* **
DGCloud: so adiciona o dashlet na lista se fizer parte das listas de dashlets permitidos
*/
if ((args.dashboardType == "user" && searchInArray(scriptName, dashletsPainelUsuario)) ||
(args.dashboardType == "site" && searchInArray(scriptName, dashletsPainelSite))) {
availableDashlets.push(
{
url: uris[0],
// msg.get(key) returns key if no matching value
shortName: (msg.get(shortNameId) != shortNameId ? msg.get(shortNameId) : webscript.shortName),
description: (msg.get(descriptionId) != descriptionId ? msg.get(descriptionId) : webscript.description)
});
}
}
}
// else skip this webscript since it lacks uri or shortName
}
model.availableDashlets = availableDashlets;
}
customDashletsFilter();
Discussions about Alfresco Content Services and Alfresco Process Services in Spanish
Related:
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.