Replicate Or Copy Documents

  • Автор темы oxystile
  • Дата начала
O

oxystile

#1
для базы стояла опция копировать или реплицировать документы, что позволяло нам открыть документ, выделить там текст заметки и скопировать его куда-нибудь еще
НО: это позволяет еще и множить документы в базе ;) вот и вся засада

что сделать, чтобы с одной стороны, разрешить копировать текст, а с другой- запретить вставку документов в базу??
 

Omh

Lotus team
04.07.2007
2 210
1
#2
Агент с Target = Pasted Documents
Ну и галку, естественно, убрать, у неё есть одно злобное побочное действие.
Можешь поискать на форуме, мы не так давно насчёт этого полемизировали (ключавое слово - $KeepPrivate)
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#3
эту галку низя просто так убрать! без нее репликации не будет, а она может понадобиться...
 

Omh

Lotus team
04.07.2007
2 210
1
#4
А я сказал убрать галку?
Сорри, я имел в виду, напротив, никому её не убирать, что бы она была у всех по дефолту.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#5
Я бы так сказал, изучите справку по управлению доступом, и ставьте нужные требованиями параметры ;)
бывает и такое, что эту галку надо снимать, чтобы некто не мог проводить ту же репликацию :)
 

Omh

Lotus team
04.07.2007
2 210
1
#6
Документы созданые юзером без этой галки имеют поле $KeepPrivate со всеми вытекающими.
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#7
Документы созданые юзером без этой галки имеют поле $KeepPrivate со всеми вытекающими.
хм... тут оказалось все гораздо хужее и сложнее ;)
оказывается, это баг, который пофиксили в 8.0.1...
кроме того "Replicate or copy" влияет только на нотес-клиент, если сказанное в справке - правда :)
а это поле должно быть только в тех документах, которые созданы по форме со включенной галкой "Disable printing/forwarding/copying to clipboard".

в общем, делайте выводы сами :)

http://www-10.lotus.com/ldd/r5fixlist.nsf/...5/?OpenDocument

SPR# IMAO5Q6KMX - Fixed a problem which occurred when a user, whose ACL rights indicated no right to copy or replicate documents, authors a document, we were storing a $KeepPrivate item on the note. This prevents other users,
even managers from copying and/or replicating these documents.
http://www-304.ibm.com/jct09002c/isv/tech/...ual?oid=2:80821

How can I disable printing/forwarding/copying to clipboard, for existing documents ?

A: $KeepPrivate is a hidden field created when the form property "Disable printing/forwarding/copying to clipboard" is enabled.

This field can be used programmatically to create an agent and add a value on all of your documents created before this form property was enabled. The values for the field are :
"1" - Disable printing/forwarding/copying to clipboard
"0" - Enable printing/forwarding/copying to clipboard

If you turn on the form property "Disable printing/forwarding/copying to clipboard", this will not affect all of your documents created before this was done. To update these documents, run an agent to refresh all docs, or create an agent that sets this $KeepPrivate field.
 
O

oxystile

#8
сорри, в этом контексте<<Агент с Target = Pasted Documents
Ну и галку, естественно, убрать, у неё есть одно злобное побочное действие.>> идет ведь речь о галке Replicate or copy documents?
Агент с Target = Pasted Documents, первый раз о таком слышу, можно еще немного инфы о нем

Disable printing/forwarding/copying to clipboard ставить галку не стоит, т.к. это погасит обычное Copy текста
вот тут у человека copy/paste не работало http://codeby.net/forum/threads/15639.html?hl=$KeepPrivate ему посоветовали галку снять

видимо, агент...
что скажите?
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#9
я заметил, что галка replicate or copy тоже избавляет от возможности копирования текста с формы...

агент: on event: when documents are pasted
 

Akupaka

А че я?.. О.о
04.10.2007
3 360
1
#11
Это не столько галка, сколько поле $KeepPrivate как мне кажется.
Насчёт агента - именно это!
вот в том и прикол, что в в старом документе это было, который был создан еще при наличии возможности копирования... возможно просто глюк... хз :)
 

Omh

Lotus team
04.07.2007
2 210
1
#14
Перепроверил, так же.
Значит поле $KeepPrivate тут не при чём, а затык идёт именно по галочке.
Что есть гуд.
 
O

oxystile

#15
а какие действия выполняет ангент?
просто написать continue=false ведь не сработает

где-то прочла, что он должен удалить те документы, которые только что вставились
а как их получить?
 

Omh

Lotus team
04.07.2007
2 210
1
#16
Код:
  Dim session As New NotesSession

Dim Agent As NotesAgent
Set Agent = Session.CurrentAgent

Dim Db As NotesDatabase
Set Db = Agent.Parent

Dim Dc As NotesDocumentCollection
Set Dc = Db.UnprocessedDocuments

If Dc.Count > 0 Then
Call Dc.RemoveAll(True)
'Ну или менять форму, если нет прав на удаление...
End if
Не очень прикольно, что делишен стабы остаются, но лучше, чем в бегать в каждое view ставить Continue = False на QueryPaste ивенте...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#17
На собаках проще: @HardDeleteDocument . :)
Но проблема с правами остается.
 
O

oxystile

#18
прав на удаление нет (есть перенос в корзину)
а смена формы doc.Form="choise"
Call doc.Save(True,True)
ведь таким образом?
но втавка то все равно произойдет, просто этих доков не будет в представлении...
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
1
#19
Если нет прав, то можно удалять серверным агентом. Т.е. это будет вариант Omh с циклом вместо условия.