Tabellen nur für selbst sichtbar
Hallo liebe Forenmitglider, ich bräuchte mal wieder eure Hilfe.
Wie erreiche ich es das die verschiedenen Tabellen nur für den jeweiligen Nutzer sichtbar sind?
Beispiel : Dashbords für alle
ToDo nur für Nutzer xy
KDV nur für Nutzer yz
Einsatzplan alle nur Nutzer AB
Einsatzplan TM nur Nutzer BB
Über verstecken? aber dann sind sie ja auch nicht sichtbar?
6 Antworten
-
Einfachste Möglichkeit: In den Tabellen-Optionen unter "Lesbar, wenn"
text(user()) = "xyz"
Die Tabelle an sich bleibt in der Liste dann zwar sichtbar, aber allen Benutzern außer "xyz" werden keine Daten angezeigt.
Wobei ich mir für sowas wohl eine Extratabelle namens "Benutzer" oder so anlegen und darin solche individuellen Berechtigungen verwalten würde.
Oder über verschiedene Rollen ("Lesen darf").
-
Hallo, ich greife das mal hier auf (Verweis auf https://forum.ninox.de/t/60h2qrc#q6h27nf ob es ggf. eine DB dazu gibt), weil ich auch derzeit an einem Rechtemanagement arbeite.
In meiner (laienhaften) Vorstellung kann das so gehen:
Ich habe eine Tabelle "Rollen" und eine "Rollenmanagement". In der Tabelle "Rollen" habe ich zwei Textfelder. Eines definiert den Rollennamen, z.B. personal_edit_db (jemand der die Personaltabelle editieren darf, db hinten dran, weil es keine globale Team-Rolle von Ninox ist, sondern DB-spezifisch). Das zweite ist ein Beschreibungsfeld.
In der Tabelle "Rollenmanagement" werden die user erfasst mit
let UserExist := cnt(select Rollenmanagement where userID = userId()); if UserExist = 0 then let UserNeu := (create Rollenmanagement); UserNeu.(userID := userId()); UserNeu.(Benutzername := userFullName()); UserNeu.(Benutzerrollen := concat(userRoles())); end;
Des Weiteren gibt es in Rollenmanagement ein dynamisches Mehrfachauswahlfeld, das die Rollen aus der Tabelle Rollen bereit stellt, so dass ich jedem user die angedachten Rollen zuweisen kann.
Meine Idee - bis jetzt nicht umgesetzt -, dass ich dann an den entsprechenden Stellen zur Sichtbarkeit, Bearbeitung etc. diese zulasse, wenn bei einem user das entsprechende Attribut gesetzt ist.
Ist das ein gangbarer Weg? Wie macht ihr das?
Danke und frohe Weihnachten in die Forumsrunde, Maurice
-
Ich habe den Code noch etwas erweitert, damit ggf. auch die veränderten Rollen, die durch Ninox selbst gegeben sind, berücksichtigt werden (sie werden bei mir im Feld Benutzerrollen gespeichert).
let thisMail := userEmail(); let UserRolle := (select Rollenmanagement); let NinoxRollen := UserRolle[userID = userId()].Benutzerrollen; let UserExist := cnt(UserRolle[userID = userId()]); if UserExist = 0 then let UserNeu := (create Rollenmanagement); UserNeu.(userID := userId()); UserNeu.(Benutzername := userFullName()); UserNeu.(Benutzerrollen := concat(userRoles())); UserNeu.(Personal := first((select Personal)['Ninox E-Mail' = thisMail].Nr)) else if UserExist > 0 and UserRolle[userID = userId() and Benutzerrollen != concat(userRoles())] then UserRolle[userID = userId()].(Benutzerrollen := concat(userRoles())); openTable("Dashboard") end end
Content aside
- vor 1 JahrZuletzt aktiv
- 6Antworten
- 184Ansichten
-
3
Folge bereits