2016-06-08 11 views
0

Ich habe ein benutzerdefiniertes Dashlet erstellt und es zum Website-Dashboard hinzugefügt.Angepasste Dashlet nur für bestimmte Benutzer im Website-Dashboard anzeigen

Aber jetzt ist meine Anforderung, dass ich diese benutzerdefinierte nur für Site Manager anzeigen möchte und ich es für alle anderen Benutzer ausblenden möchte.

Kann mir jemand dabei helfen? Wie kann benutzerdefiniertes Dashlet für alle Verbraucher und Mitarbeiter ausgeblendet werden?

Vielen Dank im Voraus.

Antwort

1

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

+0

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 –

+0

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. –