In Ihrem Controller Javascript (aka .get.js-Datei) eine zusätzliche remote.call hinzufügen, um die Gruppen des aktuellen Benutzers zu erhalten wie:
var groupResult = remote.call("/api/people/" + stringUtils.urlEncode(user.name) + "?groups=true");
das Ergebnis verwenden und es eval, dann schicken Sie es an Dein Freimarker Dashlet.
--- Aktualisieren --- Sie können auch das standardmäßige Share-Header-Webscript betrachten. Werfen Sie einen Blick auf die Datei org \ alfresco \ share \ Importe \ share-header.lib.js
Das Snippet:
// Call the repository to see if the user is site manager or not
var userIsSiteManager = false,
userIsMember = false;
json = remote.call("/api/sites/" + page.url.templateArgs.site + "/memberships/" + encodeURIComponent(user.name));
if (json.status == 200)
{
var obj = eval('(' + json + ')');
if (obj)
{
userIsMember = true;
userIsSiteManager = obj.role == "SiteManager";
}
}
siteData = {};
siteData.profile = profile;
siteData.userIsSiteManager = userIsSiteManager;
siteData.userIsMember = userIsMember;
// Store this in the model to allow for repeat calls to the function (and therefore
// prevent multiple REST calls to the Repository)...
// It also needs to be set in the model as the "userIsSiteManager" is required by the template...
model.siteData = siteData;
so dass diese in Freemarker in einer if-Anweisung verwenden
Hi Tahir, können Sie bitte mehr Klarheit über Ihre Lösung geben. eigentlich bin ich ein bisschen neu im alfresco, also habe ich weniger Verständnis für neue dinge wie diese. Können Sie bitte einige einfache und geeignete Schritte dafür bieten? Das wird sehr hilfreich für mich sein –
Hallo Deeps, ich werde ein Update posten. Dann wiederum, wenn Sie eine Vorspeise sind, dann brauchen Sie mehr Zeit, um nicht die ganze Arbeit für Sie zu erledigen;). Also forschen Sie ein wenig an der Anpassung, bis Sie vertraut sind und das implementieren. –