0

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

null
    • Ninox-Professional
    • planoxpro
    • vor 1 Jahr
    • Gemeldet - anzeigen

    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").

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 1 Jahr
      • Gemeldet - anzeigen

      planox. pro Danke da muss ich mich dann noch ran tasten. Steige irgendwie noch nicht hinter die Logik. Muss ich dann für jeden im Team eine Rolle anlegen?  

      • Ninox-Professional
      • planoxpro
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Christian Rott 

      Naja, normalerweise werden Rollen eher für bestimmte Nutzergruppen angelegt. Mitarbeiter der Personalabteilung bekommen die Rolle "Personal", Verkäufer die Rolle "Vertrieb" usw. So lassen sich dann bestimmte Informationsbereiche nur denen zugänglich machen, die es betrifft.

      Aber wenn man bspw. nur vier Mitarbeiter mit unterschiedlichen Funktionen hat, kann man natürlich auch jedem eine eigene Rolle zuweisen. Ninox ist es letztlich egal, wieviele Nutzer eine bestimmte Rolle innehaben. Die beschriebene Anforderung ließe sich dann auch mit Rollen abbilden.

      Man kann es auch kombinieren, also Rollen vergeben und zusätzlich mit individuellen Rechten arbeiten. Da bietet Ninox viele Möglichkeiten auf Tabellen- und Feld-Ebene. Letztlich muss es im jeweiligen Unternehmen entschieden werden, welche Gruppen es gibt und wer was sehen/bearbeiten soll bzw. was nicht.

    • Maurice
    • vor 1 Jahr
    • Gemeldet - anzeigen

    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

      • Heinrich Frey Maschinenbau GmbH
      • Christian_Rott
      • vor 1 Jahr
      • Gemeldet - anzeigen

      Maurice Hallo Maurice,

      danke ebenso.

      Ich muss mich dort auch noch einarbeiten und habe es jetzt vorerst über die userEmail gelöst bin aber weiter am versuchen wie ich dies auch umsetzen kann.

    • Maurice
    • vor 1 Jahr
    • Gemeldet - anzeigen

    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