Zum Inhalt springen
SharePoint Entwicklung

SharePoint Gruppe mittels JavaScript auslesen

Es gab die Anforderung, dass User auf unterschiedliche Startseiten gelangen, je nachdem in welcher SharePoint Gruppe Sie sich befinden.

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:

[code lang=“js“]
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);
}
}
[/code]

Verwendung:

[code lang=“js“]
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‘);
[/code]

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

  • Berechtigungen
  • JavaScript
  • SharePoint

Ähnliche Beiträge

SharePoint Intranet Telefonbuch mit Skills Feature
SharePoint Intranet Telefonbuch mit Skills Feature

SharePoint Intranet Telefonbuch mit Skills Feature

SharePoint Personensuche und Kompetenzsuche mit Microsoft 365 Skills, Skill-Katalog, SPFx, SharePoint Search und Microsoft Graph.

Weiterlesen
Provisioning im Großformat: PnP-Templates, Throttling

Provisioning im Großformat: PnP-Templates, Throttling und Race Conditions bei tausenden Bibliotheken

PnP-Provisioning für hunderte Sites und tausende Bibliotheken: 429-Throttling, Idempotenz und ETag-Lösung für Race Conditions.

Weiterlesen
Versionshistorie intelligent migrieren: Weniger

Versionshistorie intelligent migrieren: Weniger Speicher, gleiche Nachvollziehbarkeit

Wie Hash-basierte Versions-Deduplizierung bei einer 25-TB-Migration SharePoint-Online-Speicher spart und Migration-API-Bugs umgeht.

Weiterlesen

Fragen zu diesem Thema?

Wir unterstützen Sie gerne bei der Umsetzung in Ihrer Umgebung.