Notes of my Lotus Notes Headline Animator

Search My Blog

Wednesday, April 7, 2010

Replicate or copy documents and $KeepPrivate

a> How to stop users from creating local replicas or local copies?

b> How to stop users from copying / printing / forwarding any documents from the database?

c> How to stop users from copying / forwarding / printing an e-mail that you sent?

The answer of the questions a>, b> is: Deselect the option Replicate or copy documents privilege from the ACL for the users, groups etc.

This option when selected/deselected allows/prohibits respectively the following:

  1. Users to create local replicas or local copies of a database.
  2. Select content from a document opened in read mode.
  3. Copying, printing, or forwarding documents in the database.
  4. Controls the replication of the documents with $KeepPrivate.
Deselecting the option prohibits users from printing, copying, forwarding documents. However, still there are chances that user may take a print screen and print the data from the image file. They can also copy the data from the document to the clipboard and save it as word file or text file and print that.

That’s how you can control this via design specifications i.e. through ACL in a particular database.

Now, how to restrict the user from copying / forwarding / printing the documents / e-mails that you sent to another database / someone’s mailbox? They have usually manager access to their mailbox; in that case you cannot make the change in their mailbox directly. Doing so would stop them from creating their archive databases too.

To answer the above question (c>) all you have to do is, before sending your e-mail,

  1. Click on the Delivery Options… button.
  2. In the Delivery Options dialogue box, in the Basic tab, you will see a check box Prevent copying.
  3. Select that option and press OK. Send your e-mail now.
Now the recipient would not be able to copy / forward that particular e-mail. The print option will also be disabled for the e-mail.

However, the recipient may still use print screen option or may use some script to reset the option.

Now, how do you reset the restriction / prohibition?

When you select the “Replicate or copy documents” option in the ACL, any documents created by people / groups that do not have this option checked will then be marked with a reserved field $KeepPrivate. $KeepPrivate field is set to “1” in that case; thus, prohibiting the documents from getting copied/forwarded/printed.

The same happens in case of selecting the “Prevent copying” check box in Delivery Options dialogue box.

You must have guessed by now that if you want to get rid of the prohibition, then you need to either reset the $KeepPrivate field or need to remove it completely from the document.

To reset the field here’s the code:
@If(@IsAvailable($KeepPrivate);
      @If($KeepPrivate = "1";
            @Do(
                     @SetField("$KeepPrivate";"0");
                     @Prompt([Ok];"Copy/Print/Forward Enabled";
                                    "The selected message can now be forwarded/copied!")
             );
            @Prompt([Ok];"Restriction is already disabled";
                           "The selected e-mail does not seem to have printing/forwarding/copying disabled.")
       );
      @Prompt([Ok];"No Restriction Found";
      "The selected e-mail doesn't seem to have any restriction at all.")
);
SELECT @All

To remove the field completely:
FIELD $KeepPrivate := @Unavailable;
SELECT @All

The above settings are applicable only to the Notes Client application and not to the Notes Web application.

Lotus Notes designers if you want to put this restriction through the design, then you can add a hidden field with the name $KeepPrivate and set it's Default Value as "1". Otherwise if you want some already created documents to be prohibited, then add the $KeepPrivate through an agent:
FIELD $KeepPrivate := "1";
SELECT @All

Beside this we can restrict documents created with certain forms from being printed/copied/forwarded. This we can achieve by selecting the option "Disable printing/forwarding/copying to clipboard" in Form properties > Security Tab.

In case you know any other way then do let me know.

1 comment:

Anonymous said...

Hello !
What i would like to achive is the following :
In forms there are fields that are presented or not, according to the role in ACL that the user has.
Is it possible this to follow the printing or forwarding result ?

Thanks