Auswahlfeld > je Usergruppe nur bestimmte wählbar
Liebe Ninox-Experten,
ich arbeite schon etwas länger mit Ninox und komme immer tiefer in das Programm. Jetzt habe ich ein Problem, dass ich nicht lösen kann:
Ich habe ein "Status"-Auswahlfeld mit den Punkten: Idee | zur Abnahme | Final
Dazu gibt es 3 Gruppen: Leiter (gibt alles frei + erstellt) | Bearbeiter (darf nur erstellen) | Leser (nur lesen)
Fragen:
1. Wie kann ich es einstellen, dass alle Gruppen alle Punkte im Auswahlfeld sehen können, aber nur der Leiter den Status auf "Final" setzen darf und der Bearbeiter (+ Leiter) Beiträge erstellen dürfen?
2. Ist das Auswahlfeld dafür die richtige Lösung, oder geht es noch charmanter? Ich kann den Status in der Datenliste schön in einer Spalte und farbig ausgeben und kann entsprechend filtern.
Danke vorab für Eure Ideen und VG
3 Antworten
-
Hallo Felix, sind mit "Gruppen" Benutzerrollen gemeint? Falls ja, ließen sich die Rechte in den erweiterten Optionen des Auswahlfeldes über "Lesen darf" und "Schreiben darf" steuern. Wenn man die Auswahl dann als Switch oder Radio Buttons darstellt, sind immer alle Einträge zu sehen, aber nicht jeder kann sie ändern.
Darüber hinaus gibt es auch noch das Feld "Schreibbar, wenn", über das man in Verbindung mit der Benutzerrolle auch noch Bedingungen angeben kann. Da könnte man z. B. sowas angeben wie (nur als Beispiel):
userRole() = "Leiter" or (userRole() = "Bearbeiter" and text(Status) = "zur Abnahme")
Das Erstellen von Datensätzen wiederum lässt sich über "Datensätze erstellen" in den Tabellen-Optionen steuern.
Last but not least könnte man in den Feldoptionen auch noch die Option "Nach Änderungen ..." nutzen, wenn eine Benutzerolle das Feld prinzipiell zwar ändern darf, aber nicht auf jeden Eintrag. Dazu ließe sich das Feld unsichtbar spiegeln und ggf. auf den vorherigen Eintrag zurücksetzen.
Kurzum: In der Kombination gibt es recht viele Möglichkeiten, den Zugriff detailliert zu steuern.
-
Hallo Copytexter,
Danke für die schnelle und präzise Antwort. Das Feld "Schreibbar, wenn" konnte ich befüllen -super!
Die Feldoption "Nach Änderungen" habe ich nicht hinbekommen. Es passiert nichts, wenn ich eingebe:
if userRole() = "Bearbeiter" and text(Status) = "Abgenommen" then text(Status) := "zur Abnahme" end;
Die Idee ist hier, dass das Feld von "Abgenommen" zurückspringt auf "zur Abnahme", wenn eine Person mit der Rolle "Bearbeiter" es auswählt.
Danke vorab und VG,
Felix
-
Hallo Felix, text() ist eine Funktion. Bei der Zuweiseung von Daten mit ":=" wird nur der Feldname angegeben. Versuch's mal so:
if userRole() = "Bearbeiter" and text(Status) = "Abgenommen" then Status := "zur Abnahme" end;
Content aside
- vor 3 JahrenZuletzt aktiv
- 3Antworten
- 350Ansichten