Einer unserer Kunden hatte die Anforderung an uns gestellt, dass User abhängig von der SharePoint Gruppe in der sie sich befinden, auf unterschiedliche Startseiten gelangen sollen. Nach kurzer Überlegung wie dies umgesetzt werden kann, kam ich zu folgender Lösung. Mittels JavaScript lese ich die Gruppen des aktuellen Users aus und wenn er in der erforderlichen Gruppe ist, wird er automatisch auf die entsprechende Startseite weitergeleitet. Dazu habe ich der Startseite einen Content-Editor Webpart mit folgendem Inhalt hinzugefügt:

function CheckIfCurrentUserMemberOfGroup(groupName, OnComplete) {
        // ClientContext auslesen.
        var currentContext = new SP.ClientContext.get_current();
        var currentWeb = currentContext.get_web();

        // Aktuellen User laden.
        var currentUser = currentContext.get_web().get_currentUser();
        currentContext.load(currentUser);

        // Alle Gruppen laden.
        var allGroups = currentWeb.get_siteGroups();
        currentContext.load(allGroups);

        // Benötigte Gruppe laden.
        var group = allGroups.getByName(groupName);
        currentContext.load(group);

        // Alle User in dieser Gruppe laden.
        var groupUsers = group.get_users();
        currentContext.load(groupUsers);

        currentContext.executeQueryAsync(OnSuccess,OnFailure);

        function OnSuccess(sender, args) {
            var userInGroup = false;
            var groupUserEnumerator = groupUsers.getEnumerator();
            while (groupUserEnumerator.moveNext()) {
                var groupUser = groupUserEnumerator.get_current();
                // Wenn die ID des aktuellen Users mit der ID des Users
                // aus der Gruppe übereinstimmt
                if (groupUser.get_id() == currentUser.get_id()) {
                    userInGroup = true;
                    break;
                }
            }  
            OnComplete(userInGroup);
        }

        function OnFailure(sender, args) {
            OnComplete(false);
        }    
}

Verwendung:

function CheckIfCurrentUserHasContribPerms() 
{
  CheckIfCurrentUserMemberOfGroup("Smarter", function (isCurrentUserInGroup) {
    if(isCurrentUserInGroup)
    {
        // Der aktuelle User ist in der Gruppe [Smarter]!
        window.location.replace("https://smartersolutions.at") 
    }
  });

}
ExecuteOrDelayUntilScriptLoaded(CheckIfCurrentUserHasContribPerms, 'SP.js');

Mittels diesem Webpart wird überprüft, ob der aktuell angemeldete User Mitglied der Gruppe „Smarter“ ist. Sofern dies der Fall ist, wird er automatisch zu „https://www.smarterbusiness.at“ weitergeleitet. Wenn der aktuelle User kein Mitglied dieser Gruppe ist, passiert nichts. Folglich bleibt er auf der aktuellen Seite.

Durch diesen smarten JavaScript-Code kann der User nicht nur weitergeleitet werden, sondern je nach Gruppe in der sich der User befindet, auch beliebige Aktionen durchführen. Dies funktioniert jedoch nur in SharePoint 2013 oder höher, da es die Funktion SP.GroupCollection.getByName in SharePoint 2010 noch nicht gibt.

Bei Fragen oder Anregungen verfasst einen Kommentar zu diesem Blog oder schreibt mir eine E-Mail.

Happy Coding!
Liebe Grüße, Stefan

Smarter Business Solutions GmbH
5.0
Based on 8 reviews
powered by Google
Martin Zach
Martin Zach
15:59 15 Jan 20
Wenn es darum geht, einen kompetenten Partner für SharePoint Entwicklungen zu finden, ist man bei Smarter Business... genau an der richtigen Adresse. Kurze Reaktions- und Umsetzungszeiten gepaart mit einem guten Preis- Leistungsverhältnis.On top kommt ein junges und dynamisches Entwicklerteam mit flacher Hierachie, wo es keine langen Entscheidungsprozesse gibt, bevor die Arbeit durchgeführt wird.Ich arbeite nun seit über zehn Jahren immer wieder erfolgreich mit Smarter Business zusammen und habe in etlichen Kundenprojekten auf die Entwicklungsexpertise dieser coolen Truppe zurückgegriffen unde werde dies auch in den kommenden Jahren weiter so betreiben.mehr
Stefan Huber
Stefan Huber
16:41 11 Dec 19
Die SharePoint-Spezialisten! Absolut kompetenter Partner für uns und unsere Kunden! Uneingeschränkt... weiterzuempfehlen! Partnerschaft mit Handschlagqualität!mehr
Daniel Giefing
Daniel Giefing
13:19 16 Oct 19
Super knuspriger Arbeitgeber ☝😬Alle sind miteinander auf Augenhöhe und Kollegialer Zusammenhalt is das A u.... O.Auch abseits vom Beruflichen Alltag unternimmt man mit den Kollegen mal gern öfters was :)Dazu kommen flexible Arbeitszeiten und die Möglichkeit seinen Tag selbst zu gestalten.Was will man mehr ;)mehr
Stefan Feichtegger
Stefan Feichtegger
13:12 16 Oct 19
Großartiges Unternehmen. Junge Menschen die zuhören, Probleme erkennen und Lösungen ausarbeiten. Super Potential.
Josef Benda
Josef Benda
13:00 16 Oct 19
Super Arbeitgeber, freie Zeiteinteilung, spannende Projekte und ein tolles Team, so macht Arbeit Spaß!
Georg Krewenka
Georg Krewenka
06:49 16 Oct 19
Ich habe Florian als einen professionellen & gewissenhaften Partner erlebt, der mit viel Motivation und Ehrgeiz für... sein Projekte einsteht.mehr
Nächste Bewertungen

© Smarter Business – Alle Rechte vorbehalten
Bestimmungen | Impressum | Datenschutz