Autor Thema: Leserfeld und Rollenberechtigung  (Gelesen 2082 mal)

Offline Sommersprosse

  • Senior Mitglied
  • ****
  • Beiträge: 296
  • Geschlecht: Weiblich
Leserfeld und Rollenberechtigung
« am: 27.07.11 - 10:55:28 »
Hallo Forumsgemeinde,

folgendes Problem:

Ich habe eine Datenbank erstellt, in der Zeichnungsdaten und Dokumente zwischen verschiedenen Standorten ausgetauscht werden soll. In den Dokumenten soll in einem Leserfeld vom "Ersteller" des Dokumentes definiert werden, wer dieses Dokument lesen darf. Hierfür habe ich ein Leserfeld mit folgenden Eigenschaften erstellt:

csaccuessuser: Vorgabewert @Username;Eingabeumsetzung: @UpperCase(@Name([Abbreviate];csaccessuser)); Eigenschaften Typ:Leser, bearbeitbar, Mehrfachwerte zulassen. Auswahl aus dem Adressbuch.
Um den Admin nicht auszusperren, gibt es ein zweites Leserfeld:
ReadAll Typ: Leser; Berechnet:@If(@Elements(csaccessuser) != 0; "[Admin]"; "");Mehrfachwerte zulassen
Die Rolle [Admin] ist in der Datenbank vorhanden.

Dargestellt werden soll das in der Ansicht Products:
1. Spalte Customer
2. Spalte Product
3. Spalte Subject

Die ersten beiden Spalten sind kategorisiert, Ansichtsauswahlkriterium:
SELECT Form = "fmprod" & @UpperCase(@Name([Abbreviate];@UserName)) = (@Name([Abbreviate];csaccessuser))

Eigentlich sollte das ganze mit einem Autorenfeld versehen werden, um auch noch per Eingabe Schreibrechte auf die einzelnen Dokumente zu verteilen.
Um meinen Fehler einzugrenzen, habe ich meinen "Author" in ein normales Namenfeld umgewandelt, um einen Nachweis zu haben, wer das Dokument erstellt hat.

Jetzt passiert folgendes:
Mein Testuser (das ganze läuft in einer VM) hat Autorrechte in der ACL.
Ich erstelle ein Dokument mit diesem User, Fülle das Feld csaccessuser über die Adressauswahl, speicher ab, aber ich sehe in meiner Ansicht aber nur die Spalten Customer und Product, das eigentliche Dokument sehe ich nicht.
Gebe ich dem User jetzt aber die Rolle "Admin", dann sehe ich die Dokumente in denen er als Leser eingetragen ist.

Lt allem was ich jetzt die letzten Tage gelesen habe, werden doch die Leserfelder zusammen gerechnet:
http://atnotes.de/index.php/topic,51215.0.html

Hab ich noch einen Denkfehler drin oder passt meine Ansichtsauswahl nicht?
Sollte die DB eigentlich schon lange fertig haben, aber das kostet mich hier grad den letzten Nerv >:(

Jemand ne Idee? Hoffe mein Problem ist klar verständlich.

« Letzte Änderung: 27.07.11 - 13:56:40 von sommersprosse »
Gruß Ulli

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Leserfeld und Rollenberechtigung
« Antwort #1 am: 27.07.11 - 11:07:17 »
Als allererstes solltest Du mal das Abbreviate rausschmeissen - das hat da nichts zu suchen.

Bernhard

klaussal

  • Gast
Re: Leserfeld und Rollenberechtigung
« Antwort #2 am: 27.07.11 - 11:17:34 »
Zitat
Um den Admin nicht auszusperren, gibt es ein zweites Leserfeld:
ReadAll Typ: Leser; Berechnet:@If(@Elements(csaccessuser) != 0; "[Admin]"; "");Mehrfachwerte zulassen

Dazu reicht ein einfaches Leserfeld mit dem Inhalt "[ReadAll]". Diese Rolle gibst Du dann dem Admin.

Zitat
SELECT Form = "fmprod" & @UpperCase(@Name([Abbreviate];@UserName)) = (@Name([Abbreviate];csaccessuser))

Das ist in meinen Augen so etwas wie eine dynamische Ansicht und macht unter Notes nur Ärger.

Offline Sommersprosse

  • Senior Mitglied
  • ****
  • Beiträge: 296
  • Geschlecht: Weiblich
Re: Leserfeld und Rollenberechtigung
« Antwort #3 am: 27.07.11 - 11:53:28 »
Als allererstes solltest Du mal das Abbreviate rausschmeissen - das hat da nichts zu suchen.

Ich habe jetzt mal alles was Abbreviate durch Canonicalize ersetzt. Neue Dokumente erstellt, geht. Die Ansicht aktuallisiert sich wenn ich die User anpasse, so wie es sein soll.  :D

Hab' auch noch ein Authorenfeld hinzugefügt und neue Dokumete erstellt und befüllt. Perfekt. Mein Testuser kann alle lesen, in denen er entweder im Autorenfeld oder Leserfeld gelistet ist und die bearbeiten, in denen er als Author eingetragen ist.


Zitat
SELECT Form = "fmprod" & @UpperCase(@Name([Abbreviate];@UserName)) = (@Name([Abbreviate];csaccessuser))
Das ist in meinen Augen so etwas wie eine dynamische Ansicht und macht unter Notes nur Ärger.

Gibt es da noch eine andere Möglichkeit? Bin offen für alles. Will nur nicht noch einmal alles komplett umbauen, da ich etwas unter Zeitdruck stehe, aber für zukünftige Projekte...
Gruß Ulli

Driri

  • Gast
Re: Leserfeld und Rollenberechtigung
« Antwort #4 am: 27.07.11 - 12:49:48 »
Zitat
SELECT Form = "fmprod" & @UpperCase(@Name([Abbreviate];@UserName)) = (@Name([Abbreviate];csaccessuser))

Den Namensabgleich im Select kannst Du dir eigentlich sparen. Durch die Leserfelder sehen die Anwender doch sowieso nur die Dokumente, die sie sehen dürfen.

Offline Sommersprosse

  • Senior Mitglied
  • ****
  • Beiträge: 296
  • Geschlecht: Weiblich
Re: Leserfeld und Rollenberechtigung
« Antwort #5 am: 27.07.11 - 13:56:26 »
Also...

ich habe jetzt die Ansichtsauswahl wie von Diri vorgeschlagen nur auf die FORM begrenzt. Geht auch... hatte ich auch schon mal versucht, aber da war sehr wahrscheinlich noch ein anderer Hund begraben....

Meine Admin Rolle mit ReadAll funktioniert auch, genau so soll's sein.

Vielen Dank Euch, habt meinen Tag gerettet.


Gruß Ulli

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz