Home › Forum › Nuclos Entwicklung › Makros und Regeln › Aktuellen Benuzter in Regel abfragen
- Dieses Thema hat 14 Antworten und 5 Teilnehmer, und wurde zuletzt aktualisiert vor 12 Jahre, 10 Monaten von
Hartmut Beckschulze.
-
AutorBeiträge
-
6 Mai 2010 um 16:51 Uhr #1625
Erik Bergmann
TeilnehmerHallo,
durch diese Diskussion https://www.nuclos.de/index.php/nuclos-forum/businessprozesse/717-direktes-setzen-eines-status?lang=de#918 angestoßen, habe ich mich gefragt, ob ich innerhalb einer Regel den aktuellen User ermitteln kann…
Viele Grüße,
Bergmann6 Mai 2010 um 16:53 Uhr #1626Alpha Alpha
TeilnehmerHallo Bergmann,
dies geht über die Methode getCurrentUser() im RuleInterface.
alpha
6 Mai 2010 um 23:38 Uhr #1649bachmann bachmann
TeilnehmerDa das Thema ähnlich ist, führe ich dieses einfach mal weiter: kann ich in der Regel ermitteln, ob der Benutzer in einer bestimmten Gruppe ist?
Ich würde gerne eine Freigabeprüfung implementieren. Also wenn ein Wert (z.B. Währungsbetrag) des Datensatzes einen in der Regel festgelegten Wert übersteigt, darf nur eine bestimmte Benutzergruppe einen Statuswechsel durchführen.
7 Mai 2010 um 13:40 Uhr #1659Rostislav Maksimovski
Teilnehmer… und eine weitere Frage noch 😉
Kann man überhaupt die Berechtigungen eines Benutzers in Regeln verändern?18 Mai 2010 um 16:16 Uhr #1851Alpha Alpha
TeilnehmerHallo rom,
auch die Benutzerrechte werden in Nuclos als Entitäten verwaltet und lassen sich theoretisch auch innerhalb einer Regel abgreifen und ändern (sofern der ausführende Benutzer die notwendigen Rechte auf diese Entitäten besitzt).
Allerdings solltest du beachten, dass sich bei neueren Versionen die Struktur dieser (internen) Entitäten ggf. ändern. Dein Skript wäre also nicht mehr portabel.
Viele Grüße,
alpha19 Mai 2010 um 17:46 Uhr #1865Erik Bergmann
Teilnehmeralpha schrieb:
Hallo Bergmann,
dies geht über die Methode getCurrentUser() im RuleInterface.
alpha
Oh, danke.
21 Mai 2010 um 14:53 Uhr #1918bachmann bachmann
Teilnehmer*push*
bachmann schrieb:
Da das Thema ähnlich ist, führe ich dieses einfach mal weiter: kann ich in der Regel ermitteln, ob der Benutzer in einer bestimmten Gruppe ist?
21 Mai 2010 um 15:08 Uhr #1920Rostislav Maksimovski
TeilnehmerInwieweit wird es nicht mehr portabel? Ändern sich die Entitäten selber?
Wenn ja, betrifft es dann vermutlich auch andere Regeln, oder?
Wird es überhaupt einen Migrationsmechanismus für Regeln geben? Für welche Version sind diese Änderungen geplant?
Danke.alpha schrieb:
Hallo rom,
Allerdings solltest du beachten, dass sich bei neueren Versionen die Struktur dieser (internen) Entitäten ggf. ändern. Dein Skript wäre also nicht mehr portabel.
Viele Grüße,
alpha21 Mai 2010 um 15:10 Uhr #1921Alpha Alpha
TeilnehmerHallo bachmann,
bachmann schrieb:
Da das Thema ähnlich ist, führe ich dieses einfach mal weiter: kann ich in der Regel ermitteln, ob der Benutzer in einer bestimmten Gruppe ist?
Meinst du die Objektgruppe? getCurrentUser() liefert ein MasterDataVO zurück, welches den aktuellen User beschreibt. Das Feld „group“ gibt die Objektgruppe an („groupId“ die ID dazu).
alpha
21 Mai 2010 um 15:17 Uhr #1923Alpha Alpha
Teilnehmerrom schrieb:
Inwieweit wird es nicht mehr portabel? Ändern sich die Entitäten selber?
Die Entitäten für den Benutzer und dessen Rechte sind Nuclos-interne Entitäten. Die können sich in der Tag von Version zur Version verändern (ansonsten könnten wir ja keine neue Features einbauen :cheer: ).
Wird es überhaupt einen Migrationsmechanismus für Regeln geben?
Die Problematik ist uns bewusst. Momentan werden Regeln aber nicht automatisch migriert.
Für welche Version sind diese Änderungen geplant?
Das lässt sich nicht so spezifisch sagen sondern hängt von der Entität ab. Für 2.5 und 2.6 sind aber diverse Erweiterungen (und damit auch Veränderungen) zu erwarten.
alpha
21 Mai 2010 um 15:27 Uhr #1927Rostislav Maksimovski
TeilnehmerDie Regeln werden nicht migriert, werden sie aber zumindest validiert, oder soll ich selber alle Regeln auf kompatibilität zur neuen Version überprüfen?
Wie macht Ihr es selber bei nuclos Entwicklung? Automatisierte Tests?25 Mai 2010 um 21:57 Uhr #2023bachmann bachmann
Teilnehmeralpha schrieb:
Meinst du die Objektgruppe? getCurrentUser() liefert ein MasterDataVO zurück, welches den aktuellen User beschreibt. Das Feld „group“ gibt die Objektgruppe an („groupId“ die ID dazu).
Hallo alpha,
ich meine die Benutzergruppen, denen der Benutzer zugeordnet ist. Also Beispiel:
if (server.istBenutzerInBenutzergruppe("Abteilungsleiter")) {
// Benutzer ist Benutzergruppe Abteilungsleiter zugeordnet
}
else {
// Benutzer ist Benutzergruppe Abteilungsleiter NICHT zugeordnet
}
Wenn ein Benutzer Abteilungsleiter ist, soll er andere Berechtigungen haben (z.B. Status bei Objekten wechseln, bei denen ein Attributwert einen (in der Regel hinterlegten) Wert übersteigt).
27 Mai 2010 um 13:18 Uhr #2115Hartmut Beckschulze
TeilnehmerDu kannst dir die Daten in der Regel komplett zusammensammeln?
Das einzige was da zu bedenken ist das du in dem Fall „anders herum“ fragen musst, also ob der Benutzer in der Gruppe ist.
Da sollte eine Suchbedingung dir die entsprechenden Datensätze liefern.31 Mai 2010 um 16:35 Uhr #2231bachmann bachmann
TeilnehmerHallo DALek,
können Sie mir ein Beispiel für diese Suchbedingung geben?
31 Mai 2010 um 17:15 Uhr #2235Hartmut Beckschulze
TeilnehmerGerne:
CollectableComparison condition = server.newGOComparison("name", ComparisonOperator.EQUAL, "nuclos");
Collection foundUsers = server.getMasterDataIds("user", new de.novabit.nucleus.server.genericobject.searchcondition.CollectableSearchExpression(condition));
Danach hast du eine Collection mit allen UserIds die der Suche entsprechen. Dann kannst du mit
MasterDataVO user = server.getMasterData("user", (Integer)foundUsers.iterator().next());
dir den entsprechenden Datensatz holen.
Wenn dir das nicht reicht, oder du noch weitere Fragen hast: stehe gerne zur Verfügung.
-
AutorBeiträge