Posts mit dem Label Benutzer werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Benutzer werden angezeigt. Alle Posts anzeigen

Montag, 2. März 2009

Gruppen in Quicklaunch-Navigation eintragen

Einer der Unterschiede von programmatisch angelegten Benutzergruppen zu denen, die über die Oberfläche erzeugt wurden, ist der, dass letztere in der Quicklaunch-Navigation angezeigt werden, erstere aber nicht.

Witzigerweise stehen diese Gruppen auch nicht per Default zur Verfügung, wenn man in "All People" versucht, einen Benutzer gleich einer Gruppe hinzuzufügen.

Abhilfe schafft hier das Property "vti_associategroups" vom Rootweb, dem man semikolonsepariert die IDs der Benutzergruppen zuweisen muss:


List quickLaunchGroupIDs = new List();
...
// create a new spGroup here and add its ID to the list
quickLaunchGroupIDs.Add(spGroup.ID.ToString());

rootWeb.AllProperties["vti_associategroups"] = string.Join(";", quickLaunchGroupIDs.ToArray());

rootWeb.Update();

Freitag, 11. Juli 2008

Fehler bei Benutzer-Auswahlfeldern, die keine sind

Höchst erfreulich ist es, wenn man zum Feierabend am Freitag noch seltsame "Fehler" gelöst bekommt und dabei sogar noch etwas lernt:

Einer Liste haben wir über unsere Solution ein UserField hinzugefügt welches wir per FeatureReceiver auf eine - vorher in einem anderen FeatureReceiver generierte - Benutzergruppe zeigen lassen um die Suche im Katalog auf diese Gruppe einzuschränken.

Das hat auch wunderbar funktioniert... Wenn ich als SiteCollection-Administrator ein neues Element innerhalb dieser Liste erstellen möchte, sieht das Formular aus, wie erwartet. Als anderer User, egal, welche Rolle (ausser dem SiteCollection-Administrator) er innehat, erscheint die "Fehlermeldung": "Das Steuerelement ist nicht verfügbar, da Sie nicht über die erforderlichen Berechtigungen verfügen."

Googeln hat leider nichts ergeben, auch das Herumspielen mit den Berechtigungen des Users oder der Gruppe, in der er Mitglied ist, blieb erfolglos.

Dann aber fiel der Groschen, als ich mich an ein früheres SharePoint-Projekt von uns erinnerte. Düster erinnerte ich mich, dort mal eine Einstellung gesehen zu haben, die schaltet, wer Mitgliedschaften einer Gruppe anzeigen darf. Und siehe da, nachdem ich über die Oberfläche die Einstellung "Jeder" vornahm, hat es plötzlich funktioniert.

Rot umrandet im unteren Bild: die "Fehlermeldung"
Grün umrandet im unteren Bild: der Soll-Zustand des Auswahlfeldes, nachdem "Jeder" gewählt wurde




Das nächste Bild zeigt die Einstellung in den Gruppeneinstellungen:



Nun galt es noch, das ganze programmatisch umzusetzen, was in drei Zeilen erledigt war:

SPGroup spGroup = siteGroups[groupTitle];
spGroup.OnlyAllowMembersViewMembership = false;
spGroup.Update();
spGroup.OnlyAllowMembersViewMembership = true; würde bewirken, dass die Einstellung "Gruppenmitglieder" gewählt wird.

Fazit: Manchmal sind Fehler gar keine Fehler im herkömmlichen Sinne. Hier muss ich wohl noch etwas mehr in die SharePoint-Denke hineinkommen. ;-)