[ Erledigt] Dialogfilter für SecurityClassRole

Post Reply
User avatar
llaprosper
Posts: 712
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

[ Erledigt] Dialogfilter für SecurityClassRole

Post by llaprosper » 21. Mar 2023, 11:00

Hallo Zusammen,

ich habe einen Dialog, wo man Benutzerrollen auswählen kann.
Jetzt möchte ich, dass nur die Rollen angezeigt werden, in denen der CurrentUser Mitglied ist.

wie setze ich das um?
Setze ich das im $filter?
Oder direkt am Filterausdruck?
Oder lege ich einen neuen Context an und filtere darüber?
Wie müsste der Filter aussehen?

VG
Andreas
Last edited by llaprosper on 08. May 2023, 14:53, edited 1 time in total.

User avatar
llaprosper
Posts: 712
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Dialogfilter für SecurityClassRole

Post by llaprosper » 05. May 2023, 11:51

Irgendwo habe ich einen Gedankenfehler.
Ich habe nun eine neue Datenquelle mit einem SQL Query hinzugefügt.
Dann habe ich die Datenquelle in meinem Dialog hinzugefügt und im $filter erst einmal zum Testen auf eine feste User ID gefiltert. Nach meinem Verständnis dürften jetzt eigentlich in der Dialogauswahl nur noch die Rollen erscheinen, die in der Abfrage die gefilterte User ID besitzen.
Oder denke ich da falsch?
Es werden mir aber trotzdem ALLE Rollen angezeigt.
Denke ich falsch?

Image

Image

Image

Image
Attachments
4.png
(47.97 KiB) Downloaded 220 times
3.png
(23.8 KiB) Downloaded 223 times
2.png
(14.33 KiB) Downloaded 220 times
1.png
(30.24 KiB) Downloaded 226 times

MF_NSc
Posts: 88
Joined: 12. Aug 2019, 15:27
Contact:

Re: Dialogfilter für SecurityClassRole

Post by MF_NSc » 05. May 2023, 12:32

Hallo,

den Umweg über die Datenquelle brauchst Du eigentlich nicht.
SPSSecurityClassRole mit Add Source in den Dialog reinholen
Dann dafür: $filter anpassen:
Context.CurrentUser als Beobachtbar reinholen.
Javascript für den Filter sieht dann ca so aus:

$value="ID in Members.T(SPSUserClassBase).ID='" +currentUser.$value+"'";
return $value;

User avatar
llaprosper
Posts: 712
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Dialogfilter für SecurityClassRole

Post by llaprosper » 05. May 2023, 15:05

Wenn ich den $filter so anpasse, kommt folgende Meldung

Image

Image
Attachments
2.png
(29.77 KiB) Downloaded 337 times
1.png
(9.01 KiB) Downloaded 335 times

User avatar
llaprosper
Posts: 712
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Dialogfilter für SecurityClassRole

Post by llaprosper » 05. May 2023, 15:14

OK, wenn ich es so mache

Code: Select all

console.log ("ID in Members.T(SPSUserClassBase).ID = '" + currentUser.$value + "'");
$value =" Members.T(SPSUserClassBase).ID = '" + currentUser.$value + "'";
return $value;
dann spuckt er mir über ein console.log schon mal die richtigen Rollen als String zurück.
Außerdem funktioniert wohl "ID in" nicht. Lasse ich es wie hier weg, spuckt er mir ein Ergebnis in der Console aus
Bei der Auswahl der Rollen werden trotzdem alle Rollen angezeigt.

MF_NSc
Posts: 88
Joined: 12. Aug 2019, 15:27
Contact:

Re: Dialogfilter für SecurityClassRole

Post by MF_NSc » 08. May 2023, 08:59

Probier mal bitte folgendes noch (ansonsten habe ich voraussichtlich erst Freitag Zeit, das in meiner Dev.Umgebung zu bauen).

Der folgende Filter prüft, ob der CurrentUser Mitglied der Adminrolle ist.
"id in Subquery([SchemaRelation-SPSSecurityClassRole2SPSUserClassBase] as r,r.members,r.memberof= '"+cu.$value+"' and r.members = 'A5D7B682-B211-4D94-A96D-8C57EEDAFDEA')";

Ohne die letzte AND Bedingung müssten es alle Rollen sein, in denen der User Mitglied ist.
"id in Subquery([SchemaRelation-SPSSecurityClassRole2SPSUserClassBase] as r,r.members,r.memberof= '"+cu.$value+"'";

User avatar
llaprosper
Posts: 712
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: Dialogfilter für SecurityClassRole

Post by llaprosper » 08. May 2023, 14:51

Du hast mich auf den richtigen Weg gebracht.
Ich habe es nun nicht über den $filtzer, sondern über den Filterausdruck gefiltert.

Code: Select all

ID IN SUBQUERY([SchemaRelation-SPSSecurityClassRole2SPSUserClassBase] as r,r.members,r.memberof = CURRENTUSERID() )
So funktioniert es. Danke Dir!

MF_NSc
Posts: 88
Joined: 12. Aug 2019, 15:27
Contact:

Re: [ Erledigt] Dialogfilter für SecurityClassRole

Post by MF_NSc » 08. May 2023, 16:14

Ah. Ja das geht natürlich auch. Ich habe mit $filter eben schon direkt die Datenquelle gefiltert. Du lädst erstmal alles rein und filterst dann darauf was der User noch davon sehen darf.
Funktionieren tut natürlich beides :)

User avatar
llaprosper
Posts: 712
Joined: 07. May 2009, 18:27
Location: Burscheid
Contact:

Re: [ Erledigt] Dialogfilter für SecurityClassRole

Post by llaprosper » 09. May 2023, 08:10

Ich hätte es lieber über den $filter gemacht, fände ich irgendwie schöner aber deine JS Vorschläge funktionieren leider nicht, bzw der Filter zieht irgendwie nicht. Es werden trotzdem alle Rollen angezeigt.
Ich habe das Gefühl, wenn ich die Entitätenklasse mit der SPSSecurityClassRole oder der SPSScRoleClassBase fülle, geht das dem Filter am A... vorbei. DAnn brauche ich nicht mal mehr den Auswahlwert eingeben und somit greift natürlich auch kein $filter

Post Reply

Return to “Customizing und Reporting”

Who is online

Users browsing this forum: Majestic-12 [Bot] and 8 guests