Autor Thema: Dokument kann nicht geändert werden, aufgrund von Zugriffsrechten  (Gelesen 2761 mal)

Offline Solaris

  • Frischling
  • *
  • Beiträge: 37
  • Geschlecht: Männlich
  • Check it out ;)
Hallo,

ich komme mal wieder net weiter :(

Ich habe es nun geschafft, das die Rechte funktionieren. Nur leider zu gut für meinen Zweck :D
Jedenfalls habe ich eine Maske, in der ein Autorenfeld und ein Leserfeld ist. In dem Autorenfeld steht die Rolle "Autor" eingetragen, welche allein ein Dokument erstellen und bearbeiten darf.
Nun ist es jedoch so, das eine zweite Rolle namens "Freigabe", das Dokument freigeben mus, sodaß die ganze Firma das Dokument sieht. Vorher darf es nur die Rolle "Autor" bzw die Rolle "Freigabe" sehen. Erst nachdem die Rolle "Freigabe", was in meinem Fall unsere Geschäftsführung ist, das Dokument abgesegnet und somit freigegen hat, darf das Dokument der ganzen Firma zugänglich sein.
Ich habe nun eine Aktion erstellt, wo die Rolle "Freigabe" alleinig draufklicken darf. Dannsoll ein Wert im dokument geändert werden, der anzeigt ob das Dokument schon freigegeben ist, oder noch nicht. Dieser ist Standartmässig auf "0" gesetzt und soll dann in eine "1" abgeändert werden.
Jedoch darf die Rolle "Freigabe" das Dokument nicht bearbeiten, da ich angeben habe das dies nur die rolle "Autor" darf. In diesem einen Punkt, soll esaber auch der Rolle "Freigabe" möglich sein durch klick auf diesen Aktionsbutton einen Wert im Dokument zu ändern.

Gibt es da irgendeine Lösung?
Ich verzweifel schon wieder mal :/

Vielen Dank,

Solaris :)

Ps: Hier meine Formel der Aktionsschaltfläche:

Zitat
@If(@UserRoles="[Freigabe]"; @If(@Prompt([YESNO];"Freigabe";"Möchten sie das Dokument wirklich freigeben?")="1"; @Command([EditDocument]) & IsFree="1" & @Command([FileSave]) ;"");"")

"IsFree" ist dabei das versteckte Feld, welches geändert werden soll...
« Letzte Änderung: 13.03.03 - 10:04:40 von Solaris »
Win2k
Lotus Notes R5.08

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Hi,

ich würde das Ganze so regeln:

in die Maske ein Leser- und ein Autorenfeld (ist ja bereits vorhanden). Erstelle eine weitere Rolle, z.B. "Public". Diese rolle weißt du den Usern zu die auf die freigegebenen Dokument zugreifen dürfen (ich denke mal nur lesen).

Bis das Dokument freigegeben ist stehen in beiden Feldern jeweils die Rolle Autor und Freigabe.  

Bei der Freigabe änderst du das Leserfeld und trägst nur Public ein. Auch kannst du denn Wert ändern, der anzeigt, ob ein dokument bereits freigegeben ist oder nicht.

Axel


Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
les...ups...verschachtelt..aber nun scheine ich es kapiert zu haben.

A. Autor erstellt Doc
B. im Rollenfeld 1 steht "[Authoren]"
C. im Rollenfeld 2 steht "[Freigeber]"
D. beide Rollenfelder sind vom Typ Autor
E. beide Rollenfelder bestimmen gemeinsam die Änderungsrechte am Doc
F. im Rollenfeld 1 steht Formel drin, da Feld berechnet ist:
@if(Feld_Status<>"Freigabe";"[Autoren]";"")
G. im Rollenfeld 2 steht keine Formel drin, ist lediglich in sich selbst berechnet und hat die Formel "[Freigeber]" -> GF kann damit jederzeit die Freigabe wieder entziehen

H. wenn Autor Doc erstellt hat, steht in den Rollenfeldern einmal "Autoren" und einmal "Freigeber" als Rolle drin.

I. solange GF das Doc sich nicht gekrallt hat, kann Autor nachträglich Änderungen vornehmen, ohne schwitzen zu müssen wegen doofen Fehlern.

J. wenn GF das Doc genehmigt, dann ist Rollenfeld 1 leer = Autor hat keine Änbderungsrechte mehr

L. wenn GF Partner B nach Freigabe das Doc liest und GF anmacht, wie unmöglich der Text ist, kann GF A das Teil umgehend wieder sperren...ist halt praxiserprobt

dazu sollte der Code in dem Button so lauten
@If(@ismember("[Freigabe]";@userroles);
@if(ISfree="1";@prompt.."Möchten Sie das Doc wieder sperren?".....SONST...
@If(@Prompt([YESNO];"Freigabe";"Möchten sie das Dokument wirklich freigeben?")="1"; @Command([EditDocument]) & IsFree="1" & @Command([FileSave]) ;"");"")...
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Solaris

  • Frischling
  • *
  • Beiträge: 37
  • Geschlecht: Männlich
  • Check it out ;)
Hi Axel, Hi rob,


danke erstmal für eure schnellen Antworten *freu*
Axel, deinen rat kann ich zumindest sofort nachvollziehen. Bei Dir Rob, muss ich nochmal was nachfragen :)

A bis E versteh ich.

Zitat
F. im Rollenfeld 1 steht Formel drin, da Feld berechnet ist:
@if(Feld_Status<>"Freigabe";"[Autoren]";"")

Was ist hier "Feld_Status"?
Muss ich ein neues Feld erstellen, oder was habe ich darunter zu verstehen?
du fragst ja hier ab, ob "Feld_Status" ungleich der Rolle "Freigabe" ist und setz dann dem Feld die Rolle [Autor] zu bzw wenn es nicht stimmt bleibt das Feld leer.
Ich habe ja bisher nur ein feld, wo eine "0" für ein nicht freigegebenes Dokument steht und eine "1" für ein freigegebenes... *wirr*

H ist ok :)

Zitat
I. solange GF das Doc sich nicht gekrallt hat, kann Autor nachträglich Änderungen vornehmen, ohne schwitzen zu müssen wegen doofen Fehlern.

Das stimmt. Evtl sollte ich noch für den Autor einen Button einbauen, der es zur Freigabe freischlatet - somit also die GF das Dokument jetzt erst sehen kann...
Denn bisher kann die GF immer mitlesen ;)

Alles andere hab ich auch verstanden :)

Gruß Solaris

PS: Ich bitte die Undurchsichtigkeit in meinem Text oben zu entschuldigen  ::)  ;D
Win2k
Lotus Notes R5.08

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Was ist hier "Feld_Status"?
Muss ich ein neues Feld erstellen, oder was habe ich darunter zu verstehen?
du fragst ja hier ab, ob "Feld_Status" ungleich der Rolle "Freigabe" ist und setz dann dem Feld die Rolle [Autor] zu bzw wenn es nicht stimmt bleibt das Feld leer.
Ich habe ja bisher nur ein feld, wo eine "0" für ein nicht freigegebenes Dokument steht und eine "1" für ein freigegebenes... *wirr*


das Feld "Status" war nur ein Beispiel dafür, wo Du den Feldwert ablegst, daß das Doc freigegeben ist. Du setzt 1 oder 0, ich habe in meinem Beispiel den Status "Freigegeben" gewählt..ist sich gleich.. Auf keinen Fall frage ich damit eine Rolle ab, nur den Inhalt zwecks Freigabcheck! Du kannst also Dein eigenes Statusfeld ruhig belassen wie es ist. Solltest, wenn Du meinem Bsp. folgst aus dem Autorenfeld 1 ein berechnetes Feld machen, das solange das Doc nicht freigegeben ist (0) die Rolle Autoren enthält und wenn das Doc seitens GF freigegeben ist, das 1. Autorenfeld leert. Deswegen die Formel im 1. Autorenfeld
@if(Feld_Status<>"Freigabe";"[Autoren]";"") (bei Dir - nochmals - 0 oder 1 asl Abfrage des IFs.
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Solaris

  • Frischling
  • *
  • Beiträge: 37
  • Geschlecht: Männlich
  • Check it out ;)
Hallo,

kann es sein das ich bei meiner..*hüstl* zu teil Robs Formel einen Fehler drinnen hab?

Zitat
@If(@IsMember("[Freigabe]";@UserRoles)=1;@If(IsFree="1"; @If(@Prompt([YESNO];"Freigabe aufheben";"Möchten Sie das Doc wieder sperren?")="1";@Command([EditDocument]) & IsFree="0" & @Command([FileSave]);"");   @If(@Prompt([YESNO];"Freigabe";"Möchten sie das Dokument wirklich freigeben?")="1"; @Command([EditDocument]) & IsFree="1" & @Command([FileSave]) ;""));"")

Es funktioniert nämlich nicht. Es wird zwar richtig gefragt, ob ich es Freigeben möchte, aber es wird nichts im Dokument geändetr, obwohl Bearbeitungsrechte bestehen  :-\
Win2k
Lotus Notes R5.08

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Hi,

wenn ich das richtig sehe, hats du innerhalb der Formel versucht mehrere Anweisungen hintereinander auszuführen. Dazu brauchst du die @Do - Anweisung. Ausserdem ist die Zuweisung eines Werte in das Feld IsFree nicht korrekt.

Versuch's mal so. Ich hoffe ich bin mit den ganzen Klammern nicht durcheinander gekommen.
 
FIELD IsFree := IsFree
@If(@IsMember("[Freigabe]";@UserRoles)=1;@If(IsFree="1"; @If(@Prompt([YESNO];"Freigabe aufheben";"Möchten Sie das Doc wieder sperren?")="1";@Do(@Command([EditDocument]);@SetField("IsFree";"0"); @Command([FileSave]));"");  @If(@Prompt([YESNO];"Freigabe";"Möchten sie das Dokument wirklich freigeben?")="1"; @Do(@Command([EditDocument]);@SetField("IsFree"; "1");@Command([FileSave])) );"");"")

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
mir fällt das jetzt auf:
@Command([EditDocument]) & IsFree="1"


wat ist denn dieses IsFree="1"?
Soll damit ein Feld belegt werden?

Dann mußt Du @setfield("IsFree";"1") schreiben
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline Solaris

  • Frischling
  • *
  • Beiträge: 37
  • Geschlecht: Männlich
  • Check it out ;)
Ja Rob, du hast recht. Es soll eine Wertzuweisung durchgeführt werden ;)
ich habe aber gerade mal etwas ausprobiert und es scheint so, als führt die Formel nicht die mit "&" verketteten Befehle aus :(
Zitat
  @If(@Prompt([YESNO];"Freigabe";"Möchten sie das Dokument wirklich freigeben?")="1"; @Command([EditDocument];"1") & @SetField("IsFree";"1") & @Command([FileSave]) &@Command([FileCloseWindow]) ;""));"")

Hier muss irgendwo ein fehler sein. Ich werde gefragt ob ich das dokument freigeben möchte, klicke ich dann "Ja" an, müsste eigentlich eine "1" zurückgegeben werden, weil der Audsruck dann wahr ist und die folgenden befehle ausgeführt werden. Aber er führt sie nicht aus bzw nur den ersten, was ich aber nicht überprüfen kann :(
Win2k
Lotus Notes R5.08

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Hi,

hast du mein voriges Posting niocht gelesen. Da habe ich dich darauf aufmerksam gemacht, dass eine Verkettung von Anweisungen mit & nicht möglich ist und das bei der Wertzuweisung ein Fehler drin ist. Ändere doch deine Formel mal entsprechend ab.


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline Solaris

  • Frischling
  • *
  • Beiträge: 37
  • Geschlecht: Männlich
  • Check it out ;)
Ich habs  :)

Der Fehler war wieder mal nur ein Syntaxfehler  :o
und zwar lag er hier:

FIELD IsFree:=IsFree;
@If(@IsMember("[Freigabe]";@UserRoles)=1;
  @If(IsFree="1";
   @If(@Prompt([YESNO];"Freigabe aufheben";"Möchten Sie das Doc wieder sperren?")=1;@Command([EditDocument]) & IsFree="0" & @Command([FileSave]);"");
   @If(@Prompt([YESNO];"Freigabe";"Möchten sie das Dokument wirklich freigeben?")=1; @Command([EditDocument];"1") & @SetField("IsFree";1) & @Command([FileSave]) &@Command([FileCloseWindow]) ;""));"")

Ich hatte diese beiden Werte in Hochkomma gesetzt, was nicht akzeptiert wurde : >:( :(

Danke an euch beide für eure Hilfe :)
« Letzte Änderung: 17.03.03 - 09:41:31 von Solaris »
Win2k
Lotus Notes R5.08

Offline Solaris

  • Frischling
  • *
  • Beiträge: 37
  • Geschlecht: Männlich
  • Check it out ;)
@Axel: Du hast recht  :-[ ich habe dein posting gar net gesehen gehabt *GanzKleinWird* Du hast recht. Obwohl es mit dieser "&" verknüpfung irgendwie auch geht  ???
Win2k
Lotus Notes R5.08

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz