Berechtigung: Sichtbarkeit in Abhängigkeit von Feldinhalten einschränken

Hallo Frappe-Friends,

wir planen einen eigenen DocType “ProjectDetails”, dessen Datensätze Links auf Project enthalten werden, Struktur etwa so:
name (autogenerated ID)
project (Link auf Project)
detail (Data)
more_detail (Date)

Es werden n Sätze aus ProjectDetails auf 1 Satz in Project verweisen.

Die Projektleiter werden über User Permission auf ihre eigenen Projekte eingeschränkt:
Allow=Project, For Value=Projekt-ID

Wie kann ich aber den Zugriff in ProjectDetails einschränken? User Permissions greifen auf den Name des “allowed” DocType zu, was hier nichts nützt, weil der Name von ProjectDetails autoegeneriert wird.

Beim Speichern könnte ich per ClientScript verhindern, das ein Projektleiter “fremde” Daten ändern kann, aber die Anzeige in der List View kann ich nicht unterdrücken, Reports kann ich nicht verhindern etc.

Ich bräuchte etwas ähnliches wie die User Permissions, bei denen ich zusätzlich noch ein Datenfeld angeben kann:
Allow=ProjectDetails, For Value=Projekt-ID, In Field=Project

Sowas scheint es aber nicht zu geben. Hat jemand von Euch eine Idee, wie man das lösen könnte?

Das Ziel ist, den Projektleiter nur die ProjektDetails zu zeigen, deren Projekt auch für sie über die User Permissions freigegeben sind.

Hi,
wenn ich dich nicht falsch verstehe, müssten die “User Permissions” doch genau das sein, was du suchst?

So in der Art, hier auf Task, statt auf deinem Custom-Doctype:

Danke für die schnelle Antwort, aber leider nein.
Der in “For Value” eingetragene Wert wird immer gegen den name des “Allow”-DocTypes verglichen, so etwa:
select * from tabProject where name=${For Value}

Ich brauche aber einen Vergleich gegen das Feld Project in ProjectDetails, so etwa:
select * from tabProjectDetails where project=${For Value}

Korrigier mich gerne, aber ich meine wenn deine tabProjectDetails ein Link-Feld zu tabProject enthält, wird automatisch nach einer ggf. existenten User Permission für Project gefiltert. Das gilt dann erstmal für alle Doctypes, die ein Link Feld zum Projekt haben (Checkbox Apply To All Document Types) oder eben nur für selektierte.

Müsste dann so aussehen wie hier:

aus

https://docs.erpnext.com/docs/v13/user/manual/en/setting-up/users-and-permissions/user-permissions

2 Likes

Ja, da hast Du recht :slight_smile:
und ich ein Problem weniger.
Vielen Dank.

Jetzt verstehe ich auch den Zweck von Checkbox “Apply To All Document Types”.