BUG 7344 Feature -> PDF Security settings

With this settings is possible to setup security for a PDF generated (Output Document).
In Output Document setup there is a new section available when the output document is either PDF or BOTH with the following fields:
Permissions: Must select wich permissions will be granted (if none is selected only VIEW is allowed)
Open Password: Is the password requested to open the document. (This open the document with selected permissions)
Owner Password: Is the password that allow owner to open and change permissions
This commit is contained in:
Hugo Loza
2011-07-29 17:46:22 -04:00
parent b47d9fa01e
commit daf7ac09b1
16 changed files with 844 additions and 258 deletions

View File

@@ -1,106 +1,142 @@
<form id="{$form_id}" name="{$form_name}" action="{$form_action}" class="{$form_className}" method="post" encType="multipart/form-data" style="margin:0px;" onsubmit='return validateForm("{$form_objectRequiredFields}".parseJSON());'>
<div class="borderForm" style="padding-left: 0pt; padding-right: 0pt;">
<div class="boxTop"><div class="a"></div><div class="b"></div><div class="c"></div></div>
<div class="content" style="">
<table width="99%">
<tbody><tr>
<td valign="top">
<input class="notValidateThisFields" name="__notValidateThisFields__" id="__notValidateThisFields__" value="" type="hidden">
<input name="DynaformRequiredFields" id="DynaformRequiredFields" value="{$form_objectRequiredFields}" type="hidden">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr style="display: none;">
<td colspan="2">{$form.PRO_UID}</td>
</tr>
<tr style="display: none;">
<td colspan="2">{$form.OUT_DOC_UID}</td>
</tr>
<tr>
<td class="FormTitle" colspan="2" align="">{$form.TITLE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}"><font color="red">* </font>{$OUT_DOC_TITLE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_TITLE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_TITLE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}"><font color="red">* </font>{$OUT_DOC_FILENAME}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_FILENAME} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_FILENAME}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_DESCRIPTION}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_DESCRIPTION} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_DESCRIPTION}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_LANDSCAPE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_LANDSCAPE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_LANDSCAPE}</td>
</tr>
<tr>
<div class="borderForm" style="padding-left: 0pt; padding-right: 0pt;">
<div class="boxTop"><div class="a"></div><div class="b"></div><div class="c"></div></div>
<div class="content" style="">
<table width="99%">
<tbody><tr>
<td valign="top">
<input class="notValidateThisFields" name="__notValidateThisFields__" id="__notValidateThisFields__" value="" type="hidden">
<input name="DynaformRequiredFields" id="DynaformRequiredFields" value="{$form_objectRequiredFields}" type="hidden">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr style="display: none;">
<td colspan="2">{$form.PRO_UID}</td>
</tr>
<tr style="display: none;">
<td colspan="2">{$form.OUT_DOC_UID}</td>
</tr>
<tr>
<td class="FormTitle" colspan="2" align="">{$form.TITLE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}"><font color="red">* </font>{$OUT_DOC_TITLE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_TITLE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_TITLE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}"><font color="red">* </font>{$OUT_DOC_FILENAME}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_FILENAME} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_FILENAME}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_DESCRIPTION}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_DESCRIPTION} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_DESCRIPTION}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_MEDIA}/ {$OUT_DOC_LANDSCAPE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_LANDSCAPE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_MEDIA}&nbsp;{$form.OUT_DOC_LANDSCAPE} </td>
</tr>
<!--<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_MEDIA}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_TAGS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_MEDIA}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_LEFT_MARGIN}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_TAGS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_LEFT_MARGIN}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_RIGHT_MARGIN}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_TAGS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_RIGHT_MARGIN}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_TOP_MARGIN}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_TAGS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_TOP_MARGIN}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_BOTTOM_MARGIN}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_TAGS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_BOTTOM_MARGIN}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_GENERATE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_GENERATE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_GENERATE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_VERSIONING}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_VERSIONING} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_VERSIONING}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_DESTINATION_PATH}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_DESTINATION_PATH} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_DESTINATION_PATH}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_TAGS}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_TAGS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_TAGS}</td>
</tr>
<tr>
<td class="FormButton" colspan="2" align="center"></td>
</tr>
<tr>
<td class="FormButton" colspan="2" align="center"><br/> {$form.ACCEPT} &nbsp; {$form.BTN_CANCEL} </td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</div>
<div class="FormRequiredTextMessage"><font color="red">* </font>{php}echo (G::LoadTranslation('ID_REQUIRED_FIELD'));{/php}</div>
<div class="boxBottom"><div class="a"></div><div class="b"></div><div class="c"></div></div>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_MEDIA}</td>
</tr>
-->
<tr>
<td>&nbsp;</td>
<td>
<fieldset>
<legend>Margin</legend>
{$OUT_DOC_LEFT_MARGIN}&nbsp;{$form.OUT_DOC_LEFT_MARGIN}&nbsp;&nbsp;&nbsp;&nbsp;{$OUT_DOC_RIGHT_MARGIN}&nbsp;&nbsp;&nbsp;{$form.OUT_DOC_RIGHT_MARGIN}<br />
{$OUT_DOC_TOP_MARGIN}&nbsp;{$form.OUT_DOC_TOP_MARGIN}&nbsp;&nbsp;&nbsp;&nbsp;{$OUT_DOC_BOTTOM_MARGIN}&nbsp;{$form.OUT_DOC_BOTTOM_MARGIN}<br />
</fieldset>
</td>
</tr>
<!-- <tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_LEFT_MARGIN}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_LEFT_MARGIN}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_RIGHT_MARGIN}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_RIGHT_MARGIN}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_TOP_MARGIN}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_TOP_MARGIN}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_BOTTOM_MARGIN}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_BOTTOM_MARGIN}</td>
</tr>
-->
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_GENERATE}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_GENERATE} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_GENERATE}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_PDF_SECURITY_ENABLED}</td>
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_PDF_SECURITY_ENABLED}</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<fieldset id="form[PDF_SECURITY_SETTINGS]">
<legend></legend>
<table>
<tr><td>
{$OUT_DOC_PDF_SECURITY_OPEN_PASSWORD} &nbsp;{$form.OUT_DOC_PDF_SECURITY_OPEN_PASSWORD}
</td><td rowspan="2">{$OUT_DOC_PDF_SECURITY_PERMISSIONS}<br />{$form.OUT_DOC_PDF_SECURITY_PERMISSIONS}</td></tr>
<tr><td>
{$OUT_DOC_PDF_SECURITY_OWNER_PASSWORD}&nbsp;{$form.OUT_DOC_PDF_SECURITY_OWNER_PASSWORD}
{$form.test}
</td><td></td></tr>
</table>
</fieldset>
</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_VERSIONING}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_VERSIONING} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_VERSIONING}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_DESTINATION_PATH}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_DESTINATION_PATH} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_DESTINATION_PATH}</td>
</tr>
<tr>
<td class="FormLabel" width="{$form_labelWidth}">{$OUT_DOC_TAGS}</td>
<!-- <td class='FormFieldContent' width="{$form_width}" >{$form.OUT_DOC_TAGS} </td> //-->
<td class="FormFieldContent" width="{$form_fieldContentWidth}">{$form.OUT_DOC_TAGS}</td>
</tr>
<tr>
<td class="FormButton" colspan="2" align="center"></td>
</tr>
<tr>
<td class="FormButton" colspan="2" align="center"><br/> {$form.ACCEPT} &nbsp; {$form.BTN_CANCEL} </td>
</tr>
</tbody></table>
</td>
</tr>
</tbody></table>
</div>
<div class="FormRequiredTextMessage"><font color="red">* </font>{php}echo (G::LoadTranslation('ID_REQUIRED_FIELD'));{/php}</div>
<div class="boxBottom"><div class="a"></div><div class="b"></div><div class="c"></div></div>
</div>
<script type="text/javascript">
<script type="text/javascript">
{$form.JS}
</script>
</form>

View File

@@ -59,16 +59,16 @@
</OUT_DOC_MEDIA>
<OUT_DOC_LEFT_MARGIN type="text" style="width:15%" validate="Int">
<en>Left Margin</en>
<en>Left</en>
</OUT_DOC_LEFT_MARGIN>
<OUT_DOC_RIGHT_MARGIN type="text" style="width:15%" validate="Int">
<en>Right Margin</en>
<en>Right</en>
</OUT_DOC_RIGHT_MARGIN>
<OUT_DOC_TOP_MARGIN type="text" style="width:15%" validate="Int">
<en>Top Margin</en>
<en>Top</en>
</OUT_DOC_TOP_MARGIN>
<OUT_DOC_BOTTOM_MARGIN type="text" style="width:15%" validate="Int">
<en>Bottom Margin</en>
<en>Bottom</en>
</OUT_DOC_BOTTOM_MARGIN>
<OUT_DOC_DESTINATION_PATH type="textpm" size="30" maxlength="200" showVars="1" process="@#PRO_UID" symbol="@#" validate="Path">
<en>Destination Path</en>
@@ -77,6 +77,26 @@
<en>Tags</en>
</OUT_DOC_TAGS>
<OUT_DOC_PDF_SECURITY_ENABLED type="dropdown">
<en>PDF Security<option name="0">Disabled</option><option name="1">Enabled</option></en>
</OUT_DOC_PDF_SECURITY_ENABLED>
<OUT_DOC_PDF_SECURITY_OPEN_PASSWORD type="password" >
<en>Open Password</en>
</OUT_DOC_PDF_SECURITY_OPEN_PASSWORD>
<OUT_DOC_PDF_SECURITY_OWNER_PASSWORD type="password" >
<en>Owner Password</en>
</OUT_DOC_PDF_SECURITY_OWNER_PASSWORD>
<OUT_DOC_PDF_SECURITY_PERMISSIONS type="listbox" mode="edit" options="Array">
<en>Allowed Permissions
<option name='print'>Print</option><!--print-->
<option name='modify'>Modify</option><!--print-->
<option name='copy'>Copy</option><!--print-->
<option name='annot-forms'>Forms</option><!--print-->
</en>
</OUT_DOC_PDF_SECURITY_PERMISSIONS>
<BTN_CANCEL type="button" onclick="cancel();">
<en>Cancel</en>
</BTN_CANCEL>
@@ -172,5 +192,36 @@ function cancel(){
currentPopupWindow.remove();
}
function showPdfSecuritySwitch(){
if ((getField('OUT_DOC_GENERATE').value == 'PDF')||(getField('OUT_DOC_GENERATE').value == 'BOTH')) {
showRow('OUT_DOC_PDF_SECURITY_ENABLED');
}
else {
hideRow('OUT_DOC_PDF_SECURITY_ENABLED');
getField('OUT_DOC_PDF_SECURITY_ENABLED').value=0;
}
togglePDFSecurity();
}
function togglePDFSecurity(){
if ((getField('OUT_DOC_PDF_SECURITY_ENABLED').value == '0')) {
hideRow('PDF_SECURITY_SETTINGS');
}
else {
showRow('PDF_SECURITY_SETTINGS');
}
}
leimnud.event.add(getField('OUT_DOC_GENERATE'), 'change', function() {
showPdfSecuritySwitch();
});
leimnud.event.add(getField('OUT_DOC_PDF_SECURITY_ENABLED'), 'change', function() {
togglePDFSecurity();
});
showPdfSecuritySwitch();
togglePDFSecurity();
]]></JS>
</dynaForm>