A Binary Template usually only reads data from one file at a time and cannot modify any files; however, it is sometimes useful to have a Binary Template read from or write to another file (for example, if a dataset is split across multiple files or to write log files). Templates must be granted permission to read from or write to other files and these permissions can be controlled with the Permission Options dialog, as accessed by clicking 'Tools > Options...' on the menu and selecting Permissions from the list. As one exception, a Template is allowed to create a new file with the FileNew function and write to that file without special permissions (using FPrintf for example), but to save the file to disk the Template must have write permissions. As well, Templates must be granted permission to call functions inside external dynamic link libraries as described in the External (DLL) Functions in Scripts help topic.
The Global Permissions toggles can be used to deny all Templates from reading other files, writing to other files, or executing functions in external DLLs. If the deny read, write or execute Global Permission is turned off and a Template attempts to perform one of these operations, a dialog similar to below will be displayed to ask the user for permission. Any permissions granted are displayed in the Template Permissions table below. Read requests can be generated by using the FileOpen function and write requests can be generated by using any of the write functions or the FileSave function. If the Global Permissions are set to deny for read, write or execute, then the read, write or execute columns in the Template Permissions table are ignored.
When no permissions exist for a Template or the permissions are set to Ask and a Template attempts to read from or write to another file or execute a DLL function, a dialog box such as in the figure above will be displayed. Clicking Allow or Deny will create an entry in the Template Permissions table as explained below. If the operation is denied the Template will be stopped. Clicking Deny All when asking for permissions will turn on the corresponding Deny... toggle in the Global Permissions section. Clicking the Cancel button will stop Template execution.
The Template Permissions table at the bottom of the Permission Options dialog displays any permissions that were allowed or denied for individual Templates. Additional permissions can be set by clicking the New button and choosing a Template in the standard file dialog box that is displayed. By default, the permissions are set to Ask for ReadOther, WriteOther and ExecuteDLL but can be changed to Allow or Deny by clicking on a permission and using the drop-down list to select a new value. Click the Delete button to remove a permission or the up and down arrows to reorder permissions.
A special warning is displayed when a Template that is installed from the public Repository asks for permission to read, write or execute other files. Typically these Templates should be denied but only grant permissions to read, write or execute if you understand what the Template is doing and why it needs special access.
Clicking the Reset button removes all Template Permissions and resets the Global Permissions to allow access.