Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Alexis am 22.09.04 - 13:58:37

Titel: Autorenfeld im Parentdokument setzen
Beitrag von: Alexis am 22.09.04 - 13:58:37
Hallo Forum,

kann ich mit folgender Zeile aus einem Antwortdokument die Autorenliste verändern?
 
parentDoc.Authors=userName.Canonical

Zweck ist es, in dem Script im Mutterdokument weitere Einträge vorzunehmen, die natürlich Autorenrechte erfordern.

Alexis
Titel: Re:Autorenfeld vom Parentdokument aus setzen
Beitrag von: Semeaphoros am 22.09.04 - 15:27:13
Wenn das funktionieren sollte, dann hättest Du einen schweren Sciherheitsbug gefunden, denn so würde man ja den Schreibschutz des Parentdoc umgehen können.
Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: koehlerbv am 22.09.04 - 15:34:16
Das war auch mein erster Gedanke, Jens - aber vielleicht steht in username.Canonical ja der Name eines zukünftigen Bearbeiters, der jetzt die Berechtigung bekommen soll, Response- und ParentDoc zu bearbeiten ?

Bernhard
Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: Alexis am 22.09.04 - 17:04:07
Hallo Berhard,

exakt so ist es!

Alexis
Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: koehlerbv am 22.09.04 - 17:12:09
kann ich mit folgender Zeile aus einem Antwortdokument die Autorenliste verändern?
parentDoc.Authors=userName.Canonical

Also, so geht es auf jeden Fall, wenn Du parentDoc vorher instantiiert hast:
- Wenn IsResponse, dann
- Set parentDoc = NotesDatabase.GetDocumentByUNID (ParentDocumentUNID)

HTH,
Bernhard

Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: Alexis am 22.09.04 - 17:25:10
Hallo Bernhard,

der Code sieht (naturgegeben) bei mir anders aus:

userAbbr=userName.Abbreviated
key=Source.FieldGetText("ParentID")
Set view=db.GetView("ParentDocID")
Set parentDoc=view.GetDocumentbyKey(Key)
parentDoc.Autoren=source.FieldGetText("AssignedTo")
Call parentDoc.Save(True,False)

Im Feld Autoren steht auch wirklich der Name, jedoch nicht in kanonischer(?) Form. In der ACL ist in der Autorengruppe der User ebenfalls zu finden. Dennoch kommt die Fehlermeldung, nicht autorisiert zu sein, das Parentdokument zu ändern.

Wo ist der Haken?

Alexis
Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: koehlerbv am 22.09.04 - 17:37:31
Da ist die Frage, was steht denn bei Dir im Feld "AssignedTo" ? Offensichtlich kein kanonischer Name - dann klappt das auch nicht. Du müsstest doch noch ein anderes Feld haben, in dem der kanonische Name (erforderlich für ein Autorenfeld) zu finden ist ?

Weiterhin:
userAbbr=userName.Abbreviated
Wo wird das gebraucht ?

Set view=db.GetView("ParentDocID")
Wo prüfst Du, ob diese View instantiiert werden kann ?

Set parentDoc=view.GetDocumentbyKey(Key)
Wo prüfst Du, ob dieses Dokumenent instantiiert werden kann ? Was ist, wenn jemand das ParnetDoc gelöscht hat ? -> Run-time error !

HTH,
Bernhard
Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: Semeaphoros am 22.09.04 - 19:48:29
Ok, so macht es natürlich Sinn, wenn das nicht der eigene Name ist, sorry für die Fehlinterpretation. Ansonsten gibt es zu Bernhards Ausführungen nichts hinzuzufügen
Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: Alexis am 23.09.04 - 10:23:31
Hallo,

den berechtigten Anmerkungen von Bernhard widme ich mich später.

Zunächst stehe ich vor der Fehlermeldung:

Notes error: You cannot update or delete the document(s) since you are not listed as an allowable Author for this document.

Im betreffenden Dokument existiert das Feld - Typ: Names, editierbar, Allow multible values -  "Autoren" korrekt mit dem Usernamen in kanonischem Format, gleicher User ist in der ACL in einer Autorengruppe ebenfalls aufgeführt.

Wo kann der Grund für die fehlende Berechtigung liegen?

Alexis
Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: koehlerbv am 23.09.04 - 10:27:29
Wenn der Typ Names ist, dann spielt das Feld für den Autorenzugriff keine Rolle.

Bernhard
Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: Semeaphoros am 23.09.04 - 10:33:19
Einerseits gilt das, was Bernhard schon sagt, das Feld muss vom Typ "Author" sein, andererseits, stehen im Dokument selber oder in der Maske noch irgendwelche Zugriffsbeschränkungen? Tab mit dem Schlüssel unter den Dok-Eigenschaften
Titel: Re:Autorenfeld im Parentdokument setzen
Beitrag von: Alexis am 23.09.04 - 11:43:41
Danke für den Hinweis auf meine ESELEI.

Damit klappt's, den Hinweisen von Bernhard werde ich noch nachgehen.

Merci

Alexis