Autor Thema: Schreibberechtigung auf Profildokument  (Gelesen 3616 mal)

Offline Annette

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Weiblich
Schreibberechtigung auf Profildokument
« am: 02.06.08 - 15:52:49 »
Hallo an alle Experten,

ich sitze gerade vor folgendem Problem und komme (auch mit Hilfe der bestehenden Einträge nicht so recht weiter)  :P:

Über Script erstelle ich im Hintergund ein Profildokument und setzte den aktuellen Usernamen (canonicalize) in ein Autorennamenfeld (isAuthors = True).
Wenn dieser User das Profildokument über Script (uidoc = ws.edit.profile) öffnet,  kann er das Dokument nicht bearbeiten. Lt. Eigenschaften ist aber das Feld "AuthorNames" vorhanden und auch gefüllt.

Hat vielleicht jemand eine ähnliche Erfahrung gehabt und eine Ursache/Lösung gefunden?

Vielen Dank für jede Hilfe, selbst komme ich irgendwie nicht weiter :-:

Offline DAU-in

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.129
  • Geschlecht: Weiblich
  • - unterwegs -
Re: Schreibberechtigung auf Profildokument
« Antwort #1 am: 02.06.08 - 16:18:52 »
stell doch mal den Code rein

mühsam ernährt sich das Eichhörnchen

aktuelle Tätigkeit: Feldschubse

Offline Annette

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Weiblich
Re: Schreibberechtigung auf Profildokument
« Antwort #2 am: 02.06.08 - 16:31:23 »
HAllo, der gekürzte Code sieht so aus:

Function WriteProfil(doc As NotesDocument) As Variant
   
   Dim session As New NotesSession
   Dim db As NotesDatabase
   Dim profiledoc As NotesDocument
   Dim level As Integer
   Dim username As NotesName ' Person des Profildok
   Dim StrKonfigFeld As String ' Name des Konfig-Feldes in dem die Feld-Liste steht
   Dim StrKonfigFeldOwn As String ' Name des Konfig-Feldes in dem die Profil-Feld-Liste steht (nur bei eigenen Anträgen)   
   Dim VarProfilFeldListe As Variant
   Dim StrProfilFeld As String, StrDokumentFeld As String
   Dim VarAutoren(1) As Variant
   
   On Error Goto Error_M
   
   ' bestimmte Werte in das Profildokument zurückschreiben
   Set db = session.CurrentDatabase
   level = db.CurrentAccessLevel
   
   If level > 2 Then
      Set username = New NotesName (doc.Submitter(0))
      Set profiledoc = db.GetProfileDocument( "profil", username.Canonical)
      
      
      
      
' ... den Code zum Besetzen der anderen Felder habe ich der Übersichtlichkeit wegenentfernt         

         

      VarAutoren(0) = "[DBMgr]"
      VarAutoren(1) = username.Canonical
      Set item = profiledoc.ReplaceItemValue("AuthorNames", VarAutoren)
      item.IsAuthors = True
      
      ' SPEICHERN
      Call profiledoc.Save (True, True)
      
   End If
   
   WriteProfil = True
   
   Exit Function
   
Error_M:
   Call ErrorMessage(Cstr(Lsi_info(2)), Cstr(Erl()), Error, Err(), Cstr(Lsi_info(3)), Cstr(Lsi_info(12)))
   Exit Function
   
End Function

Offline Annette

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Weiblich
Re: Schreibberechtigung auf Profildokument
« Antwort #3 am: 02.06.08 - 16:37:53 »
Der Code zum BEarbeiten des PRofils ist folgender:

Function ProfilBearbeiten(doc As NotesDocument) As Variant
   
   Dim session As New NotesSession
   Dim ws As New NotesUIWorkspace
   Dim db As NotesDatabase
   Dim StrUserName As String
   Dim username As NotesName
   Dim uidoc As NotesUIDocument
   Dim StrRollen As Variant
   Dim DBMgrRole As Boolean
'=====================================================================================================   
   
   On Error Goto Error_M
   
   DBMgrRole = False
   Set db = session.currentdatabase
   
' 1.) ermitteln ob DBMgr oder normaler Anwender
'=====================================================================================================   
   StrRollen = db.QueryAccessRoles(session.UserName)
   Forall x In StrRollen
      If x = "[DBMgr]" Then
         DBMgrRole = True
      End If
   End Forall
   
   ' a) Anwender ist DBMgr --> Auswahl des Profils
   '==========================================================
   If DBMgrRole = True Then
      ' kein Dokument übergeben (z. B. Aufruf aus Gliederung)
      If doc Is Nothing Then
         Set username = New NotesName(session.UserName)
      ' Antrag selbst erstellt
      Elseif doc.Submitter(0) = "" Then
         Set username = New NotesName(doc.Traveler(0))
      ' Antrag von Drittem
      Else
         Set username = New NotesName (doc.Submitter(0))
      End If      
      StrUserName = ws.Prompt(PROMPT_OKCANCELEDIT, "Username", "Welches Profildokument soll bearbeitet werden?", Cstr(username.canonical), "")
      If StrUserName = "" Then Exit Function
      
   ' b) Anwender ist kein DBMgr --> Profil des Anwenders öffnen
   '==========================================================
   Else
      StrUserName = session.UserName
   End If
   
' 2.) Profil zum Bearbeiten öffnen
'=====================================================================================================   
   Set uidoc = ws.EditProfile( "profil", StrUserName)   
   
   Exit Function
   
Error_M:
   Call ErrorMessage(Cstr(Lsi_info(2)), Cstr(Erl()), Error, Err(), Cstr(Lsi_info(3)), Cstr(Lsi_info(12)))
   Exit Function
   
End Function

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Schreibberechtigung auf Profildokument
« Antwort #4 am: 02.06.08 - 16:42:23 »
Und was steht im Item Submitter? Warum musst Du dort überhaupt mit der Canonical-Property herumhantieren?

Bernhard

Offline Annette

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Weiblich
Re: Schreibberechtigung auf Profildokument
« Antwort #5 am: 02.06.08 - 16:49:03 »
Die Unterscheidung Traveler/Submitter wird benötigt, weil das Dokument ggf. von einem Dritten erstellt wurde.
Das Format des Names ist durchgängig canonical, weil ich davon ausging, dass im Autorenfeld dieses Format keine Probleme macht. Es wird auf jeden Fall das richtige Profil geöffnet.

Offline atbits

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 708
  • Geschlecht: Männlich
  • sei Du selbst die Veränderung, die Du Dir wünschst
    • atBits
Re: Schreibberechtigung auf Profildokument
« Antwort #6 am: 03.06.08 - 11:45:17 »
Hallo,
ein ähnliches Problem hatte ich auch schon mal.

Ich meine mich zu erinnern das es generell Probleme macht Profil-Dokument mit Autorenfeldern zu versehen. Profildokumente funktionieren nur richtig mit mindestens Editor-Zugriff und dann sind die Autoren-Felder für die Katz.

Verwende statt Profildokumenten lieber normale und einen View-Lookup, glaub mir gerade in größeren Projekte machen die Profildokumente einfach zu viele Probleme.

Grüße David
David Schiffer
================================
atBits GmbH & Co. KG - https://atbits.de
im Einsatz: Lotus Domino 8.5, 9, 10

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Schreibberechtigung auf Profildokument
« Antwort #7 am: 03.06.08 - 12:05:25 »
Es gab mal einen Beitrag, wo gezeigt wurde, die man Profildokumente durch normale Dokumente inkl. Zugriffsmethoden ersetzt.
Finde es nur auf die schnelle nicht wieder, ich glaub der Beitrag war von TMC Axel...
« Letzte Änderung: 03.06.08 - 12:32:22 von DerAndre »
André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Schreibberechtigung auf Profildokument
« Antwort #8 am: 03.06.08 - 12:26:45 »
Guckst du hier: Klasse für UserProfile


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

Offline DerAndre

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 1.655
  • Geschlecht: Männlich
  • Keep cool!
Re: Schreibberechtigung auf Profildokument
« Antwort #9 am: 03.06.08 - 12:32:01 »
Aaaaah, Sorry Axel. Ja genau die.

André

Elterninitiative diabetischer Kinder und Jugendlicher e.V.
-----------------------------------------------------------------------------
Fliegen ist die Kunst auf den Boden zu Fallen, aber daneben.
-----------------------------------------------------------------------------
Etwas mehr Hardware dazu zu kaufen ist viel billiger als
Software besser zu machen. ( Niklaus Wirth )

Offline Axel

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Schreibberechtigung auf Profildokument
« Antwort #10 am: 03.06.08 - 12:38:39 »
Aaaaah, Sorry Axel.

Kein Problem.

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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz