2008-08-27 12 views
5

Ich versuche dynamische dynamische Menüs (Steuerblock bearbeiten) in SharePoint 2007 einzurichten. Mein Ziel ist es, bestimmte Funktionen basierend auf der Gruppenmitgliedschaft des aktuellen Benutzers verfügbar zu haben.Dynamisch anzeigen Menüelement "Steuerblock bearbeiten" in SharePoint

Ich weiß, dass das CustomAction-Tag, das die Erstellung dieses Menüelements steuert, über ein Rights-Attribut verfügt. Das Problem, das ich damit habe, ist, dass die Gruppen, die ich verwende, identische Rechte auf der Site haben (ViewListItems, ManageAlerts, etc). Die Gruppen, die wir eingerichtet haben, befassen sich mehr mit Funktionen wie Manager, Mitarbeiter usw. Wir möchten in der Lage sein, einer Gruppe ein benutzerdefiniertes Feature zuzuweisen und die mit diesem Feature verknüpften Menüelemente nur für Mitglieder dieser Gruppe sichtbar zu machen . Jeder Benutzer verfügt über die gleichen grundlegenden Standortberechtigungen, verfügt jedoch über zusätzliche Optionen basierend auf seinen Anmeldeinformationen.

Ich habe mehrere Artikel über das Ändern der Core.js-Datei zum Verstecken von Elementen im Kontextmenü gesehen, aber sie sind ein Alles-oder-Nichts-Ansatz. Es gibt einen interessanten Beitrag unter http://blog.thekid.me.uk/archive/2008/04/29/sharepoint-custom-actions-in-a-list-view-webpart.aspx, der zeigt, wie das Menü Aktionen dynamisch geändert werden kann. Es ist trivial, dieses Beispiel zu ändern, um die Benutzergruppe zu überprüfen und das Menü basierend auf der Mitgliedschaft ein- oder auszublenden. Leider scheint dieses Beispiel nicht für Kontextmenüelemente zu gelten, wie dies hier gezeigt ist http://forums.msdn.microsoft.com/en-US/sharepointdevelopment/thread/c2259839-24c4-4a7e-83e5-3925cdd17c44/.

Kennt jemand einen Weg, dies ohne Javascript zu tun? Wenn nicht, was ist der beste Weg, um die Benutzergruppe von Javascript zu überprüfen?

+0

er Titel dieser Frage angemessen mehr sein würde, wenn es wurde „Dynamisch das Listenelement Menü in Sharepoint-Drop-Down-Modifikation“ .. Kann ein Moderator updaten? –

Antwort

2

Es gibt zwei verschiedene JavaScript-Funktionen, die Sie zum dynamischen Hinzufügen von Menüelementen zu Dropdown-Listenelementen verwenden können. Core.js (C: \ Programme \ Gemeinsame Dateien \ Microsoft Shared \ Webservererweiterungen \ 12 \ TEMPLATE \ LAYOUTS \ 1033 \ CORE.JS) prüft beim Erstellen der Menüelemente für ein ausgewähltes Listenelement auf das Vorhandensein dieser Methoden. "Custom_AddDocLibMenuItems" und "Custom_AddListMenuItems" sind die Namen der Javascript-Methoden.

Ein Artikel, den ich glaube, Sie Ihr spezifisches Problem, dynamische Menüpunkt Anpassung auf Benutzerrolle Mitgliedschaft basiert lösen können, finden Sie hier:

MSDN: Customizing the Context Menu of Document Library Items (man beachte das Verfahren genau das gleiche für jeden Listentyp)

Dieser Artikel beschreibt, wie Server-Side-Code ausgeführt werden kann, die Menüpunkte zu definieren, die angezeigt wird:

[...] in komplexeren Fällen, können Sie aus der Liste der verfügbaren Befehle abrufen müssen der Server, weil nur die Sie können Ihre Geschäftslogik ausführen und vielleicht die Befehle von einer benutzerdefinierten Datenbank abrufen. Normalerweise möchten Sie dies tun, wenn Sie eine Workflow-Lösung implementieren, bei der jedes Dokument seinen eigenen Prozessstatus mit zugehörigen Befehlen hat.

Die Lösung für diese Situation besteht darin, dass Custom_AddDocLibMenuItems dynamisch eine benutzerdefinierte ASP.NET-Seite aufruft. Diese Seite übernimmt die ID der Dokumentbibliothek und das spezifische Element in der Abfragezeichenfolge und gibt eine XML-Zeichenfolge zurück, die alle Informationen zu den für das jeweilige Dokument verfügbaren Befehlen enthält. Diese Befehle sind entsprechend dem Prozessstatus des Dokuments (oder einer anderen benutzerdefinierten Geschäftslogik) verfügbar. [...]

Verwandte Themen