Verschiedene Berechtigungen in ein einem Dokument

  • Hallo


    Ich habe mal wieder eine Frage.
    Angenommen ich habe ein Dokument mit 2 Feldern,
    und möchte Feld Nummer1 NUR von User1 ändern lassen und Feld Nummer2 NUR von User2.


    Im Moment habe ich folgendes in der Eingabevalidierung von Feld1:


    @If(@UserName=User1; @Success; @Failure("Sie sind nicht berechtigt, Feld1 zu ändern"))


    Folgerichtig habe ich dann in Feld2:


    @If(@UserName=User2; @Success; @Failure("Sie sind nicht berechtigt, Feld2 zu ändern"))


    Das ganze funktioniert jedoch nicht. Beim Speichern des Dokuments bekomme ich die oben definierten Fehlermeldungen.
    Ich nehme an, dass es daran liegt, das der Feldinhalt geprüft wird, obwohl er garnicht verändert wurde.
    Ist es möglich, die Formel dahingehend zu erweitern?
    sowas wie @OnChange(@IfUserName usw.).
    Leider gibt es die Funktion @OnChange nicht.
    Vielen Dank im vorraus.

    • Offizieller Beitrag

    ich würde es über eine Verbergen-Wenn-Formel regeln und dem nicht Berechtigten nur einen berechneten Text oder ein Feld berechnet zur Anzeige anzeigen.


    Dies ist allerding keine sichere Methode, da per Agent mit einfachen Aktionen die Felder immer noch verändert werden können.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Danke für die beiden Vorschläge. Ich habe das mit den Abschnitten mal ausprobiert. Es funktioniert nicht.
    Daraufhin bin ich der Sache mal auf den Grund gegangen und habe festgestellt, dass der Ausdruck:


    @If(@UserName=User1; @Success; @Failure("Sie sind nicht berechtigt, Feld1 zu ändern"))


    nicht funktioniert.
    Dann habe ich mal ein Feld erstellt "berechnet beim anlegen" typ: Autoren. Dieses gibt mir den Ersteller des Dokuments in Feld "Ersteller". Wenn ich nun als Eingabevalidierung eines bestimmten Feldes:


    @If(@UserName=Ersteller; @Success; @Failure("Sie sind nicht berechtigt, Feld1 zu ändern"))


    schreibe, ist eine Bearbeitung trotzdem nicht möglich.
    Dann dachte ich, es könnte daran liegen, dass der Audruck falsch ist und fand "V3UserName", aber auch damit klappte es nicht.


    Ein weiteres Feld musste her. Dieses gibt aus, wer das Dokument zuletzt geändert hat.


    @If(@IsNewDoc;@UserName;
    @If(@IsDocBeingSaved;@UserName;Geändert_von))


    wenn ich nun @UserName=geändert_von vergleiche, funktioniert es auch nicht, obwohl die Methode, den Usernamen anzuzeigen die selbe ist. Ist hier 1 != 1?

  • Was funktioniert nicht bei Abschnitten??
    Was fuer ein Typ ist der Abschnitt bzw. welche Berechtigungsformel hast Du hinterlegt??

  • Als Abschnitt habe ich "Kontrollierter Zugriff".


    Und als Formel:


    @If(@UserName=Erstellt_von; @Success; @Failure("Sie sind nicht berechtigt, das Dokument zu ändern"))


    heisst: nur der Ersteller kann das dokument ändern.
    Das Feld Ersteller wird über "berechnet beim anlegen" typ: "autor"
    gefüllt.


    Der Prozess soll so aussehen:
    Ich öffne die Maske, das Feld wird befüllt, der Abschnitt verglichen, der Zugriff erteilt.

  • In dieser Auswahl habe ich editable angegeben


    EDIT: ich habe einen Fehler gemacht. Im Feld Berechnet beim Anlegen stand ebenfalls die validierungsformel.


    Das Problem jetzt: Es wird nicht erkannt, dass die Person, die ich aus dem Adressbuch hole gleich dem User (@UserName) ist.

    • Offizieller Beitrag

    ????
    aber die Liste (bzw. der eine Wert) muss doch im Feld "Erstellt_von" stehen, ansonsten macht die Formel

    Zitat

    @If(@UserName=Erstellt_von; @Success; @Failure("Sie sind nicht berechtigt, das Dokument zu ändern"))

    an keiner Stelle Sinn.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

  • Warum soll die Lösung ausfallen ?


    Laut deiner Formel:


    Zitat


    @If(@UserName=Erstellt_von; @Success; @Failure("Sie sind nicht berechtigt, das Dokument zu ändern"))


    steht doch der Benutzername im Feld Erstellt_von.


    Also trag dort als Formel nur Erstellt_von ein und das wars