[ Erledigt] Dialogfilter für SecurityClassRole
-
- Posts: 712
- Joined: 07. May 2009, 18:27
- Location: Burscheid
- Contact:
[ Erledigt] Dialogfilter für SecurityClassRole
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
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.
-
- Posts: 712
- Joined: 07. May 2009, 18:27
- Location: Burscheid
- Contact:
Re: Dialogfilter für SecurityClassRole
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?
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?
Re: Dialogfilter für SecurityClassRole
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;
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;
-
- Posts: 712
- Joined: 07. May 2009, 18:27
- Location: Burscheid
- Contact:
Re: Dialogfilter für SecurityClassRole
Wenn ich den $filter so anpasse, kommt folgende Meldung
-
- Posts: 712
- Joined: 07. May 2009, 18:27
- Location: Burscheid
- Contact:
Re: Dialogfilter für SecurityClassRole
OK, wenn ich es so mache
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.
Code: Select all
console.log ("ID in Members.T(SPSUserClassBase).ID = '" + currentUser.$value + "'");
$value =" Members.T(SPSUserClassBase).ID = '" + currentUser.$value + "'";
return $value;
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.
Re: Dialogfilter für SecurityClassRole
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+"'";
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+"'";
-
- Posts: 712
- Joined: 07. May 2009, 18:27
- Location: Burscheid
- Contact:
Re: Dialogfilter für SecurityClassRole
Du hast mich auf den richtigen Weg gebracht.
Ich habe es nun nicht über den $filtzer, sondern über den Filterausdruck gefiltert.
So funktioniert es. Danke Dir!
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() )
Re: [ Erledigt] Dialogfilter für SecurityClassRole
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
Funktionieren tut natürlich beides
-
- Posts: 712
- Joined: 07. May 2009, 18:27
- Location: Burscheid
- Contact:
Re: [ Erledigt] Dialogfilter für SecurityClassRole
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
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
Who is online
Users browsing this forum: No registered users and 3 guests