Dokumente in Ordner/Anischt

  • *gehört das hier hin oder in Entwicklung?*


    Mal eine Frage, wie kann ich Dokumente ausser über Zugriffsrechte vor dem löschen schützen?


    Ich habe Ansichten/Ordner da soll alles mit dem Dokumenten erlaub sein, bearbeiten, erstellen, etc nur man darf diese da unter keine Umständen per entf/del etc löschen können.


    Hintergrund ist, Benutzer/Personen für Serienbriefe in eine Ansicht/Ordner gelegt, dort kann man/muss man wenn man einen neuen Serienbrief erstellen will die Personen entfernen. Klar mit entf geht das auch aber dann werden die Dokumente gelöscht :D. Es gibt da natürlich einen Button wo dran steht aus "Ordner entfernen", aber wie User und Administratoren so sind, man löscht alles :D ;).


    MFG Michael

  • Das halt im QueryDelete der Maske abfangen...

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • nimm den querydocumentdelete im datenbank-script. z. b. über die uiview könntest du auch nur bestimmte ansichten/ordner in dem script abfragen.

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Zitat


    erzengel_2002 schrieb:
    ehm Masken? wo steht den was von Masken? Das soll nur für bestimmte Ansichten und Ordner gelten ;) .


    Die meinte ich eigentlich auch. In einer Maske gibt es nämlich gar kein QueryDelete-Event.

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • ok, hatte mich nur gewundert. :)



    Wie erstelle ich diese Einträge wenn diese nicht vorhanden sind?


    Code habe ich gefunden:
    continue=false


    mit oder ohne simikolon? Ein Messageoutput wäre noch gut? Wie mach ich sowas? einfach mit Text und dann ein Ok Button?

  • Ich verwende bei meinen Entwicklungen immer den folgenden Code



    ------------
    Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
    continue = False

    Dim roles As Variant
    roles = Evaluate("@UserRoles")
    Forall r In roles
    If Cstr(r) = "[admin]" Then
    continue = True
    Exit Sub
    End If
    End Forall

    If Not continue Then
    msgTxt = "You do not have the permission to delete documents in this database." + Chr(10) + _
    "Please contact the admin team of this database to delete a document."
    Messagebox msgTxt, 0+64, "Delete Document"
    End If

    End Sub
    --------


    Und das dann ins Database Script (other-> Database Ressources -> Database Script)


    Das bewirkt das ohne die Rolle Admin nix gelöscht werden kann :)

  • Oder nur ein Continue = false mit ner Messagebox als Info dort rein.


    Und in die Ansichten in denen Löschen erlaubt sein soll ein Agent mit ner Einfachen Aktion Löschen rein.
    Das QueryDocumentDelete greift nämlich nur beim normalen Löschen, nicht aber wenn das Löschen über einen Agenten gemacht wird.

  • das ist ein super Quellcode. Allerdings sagt das ja ich darf in keiner ansicht was löschen.


    Ist es noch möglich eine Abfrage für bestimmte Ansichten zu machen, also dass es nur für eine oder mehrere bestimmte Ansicht gilt?


    MFG Michael


  • So den Code habe ich nun geschrieben!
    Die ersten beiden sind Ansichten und die letzten beiden sind Ordner.
    Wollte das vorher mal überprüfen lassen, Lotus-Programmierung 0 Ahnung ;).
    Ist die Message Ausgabe nur mit einem OK-Button?


    Also die Hilfe des Designers ist ja mal Grausam, da bin ich von VB 6 und C/C++ was besseres gewohnt, aber ist schon etwas her :D.


    MFG Michael

  • Nur ein OK-Button. Das kannst Du nicht testen??? *unglaeubig schau


    Du solltest aber noch das Object der uiview erzeugen ueber


    Dim ws As New NotesUIWorkspace
    Dim uiview As NotesUIView ' das hast Du schon
    Set uiview = ws.CurrentView

  • na dran ;)


    am anfang
    dim uiws As New NotesUIWorkspace
    dim uiview As NotesUIView


    set uiview = uiws.CurrentView


    alias = uiview.alias


    select case alias
    case "a"
    messagebox ...
    continue = false
    case "b"
    messagebox ...
    continue = false
    case else
    end select


    habs jetzt mal aus dem kopf programmiert. müsste aber glaube passen ...

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Zitat

    Nur ein OK-Button. Das kannst Du nicht testen??? *unglaeubig schau


    EHM bei einer vernünftigen Hilfe und Syntax Erklärung wäre das Testen garnicht erst notwendig.
    Da ich keine Ahnung davon habe frag ich, schlimm?



    Ich lass das mit dem case mal, aber er hat es nicht getan, ich konnte trozdem löschen :S... ich update mal eben die Ansichten...


    So nach dem updaten ging es soweit. Bis auf das mit den Ordnern da konnte ich löschen. Fehlt da evt noch etwas?

  • haben den deine ordner alias namen???


    sonst dürfte dieser wert leer sein. kannst ja mal ne messagebox vor den if packen.


    müsstest ansonsten auf den titel der view abfragen.

    bunt ist das dasein und granatenstark. volle kanne hoshi's!


    IBM Certified Advanced System Administrator (R5, D6, D7)
    IBM Certified Advanced Application Developer (R5, D6, D7, D8)

  • Ok danke nun geht alles. Habe den Code noch in Postdocumentdelet eingefügt.


    Und der eine Ordner wurde anscheind als privater Ordner mit anderem AliasNamen angelegt.


    Danke sehr :).