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

Smarter Business Solutions GmbH
5.0
Based on 9 reviews
powered by Google
Rene Niederhuber
Rene Niederhuber
09:41 01 Jul 20
Super innovative company: Are top experts in the field of Microsoft SharePoint, Power Apps, etc. We have already... implemented many joint projects. The collaboration is always very pleasant and professional.mehr
Martin Zach
Martin Zach
15:59 15 Jan 20
When it comes to finding a competent partner for SharePoint developments, Smarter Business is the right place for you.... Short reaction and implementation times paired with a good price-performance ratio.On top comes a young and dynamic development team with a flat hierarchy, where there are no long decision-making processes before the work is carried out.I have been working successfully with Smarter Business for over ten years now and have used the development expertise of this cool group in numerous customer projects and will continue to do so in the coming years.mehr
Stefan Huber
Stefan Huber
16:41 11 Dec 19
The SharePoint specialists! Absolutely competent partner for us and our customers! Unreservedly recommend! Partnership... with handshake quality!mehr
Daniel Giefing
Daniel Giefing
13:19 16 Oct 19
Super crispy employer ☝😬Everyone is at eye level and collegial cohesion is the A u. O.Even apart from the... professional life, you often like to do something with your colleagues :)In addition there are flexible working hours and the possibility to design your own day.What more do you want ;)mehr
Stefan Feichtegger
Stefan Feichtegger
13:12 16 Oct 19
Great company. Young people who listen, recognize problems and work out solutions. Great 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
Blogheim.at Logo

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