ICIPermission Interface

The VFS permissions can be viewed/set in the administration interface on the VFS tab. The ICIPermission interface represents the permissions for folders. Obtain it by using the GetFolderPermissions method of the ICISite interface. You can also use the GetBlankPermission method to start with no permissions.

Changing properties in the IPermission interface has no effect until you call the ICISite::SetPermission method. Refer to the ICISite::SetPermission method for an example.

interface IPermission : IDispatch

Example:

aPerm = s.GetFolderPermissions("\pub\")

Set p = s.GetBlankPermission("\pub\", "Administrative")

Properties

Retrieves the client name.

HRESULT Client([out, retval] BSTR *pVal);

All versions

Retrieves or specifies whether the account has "create directory" permission.

HRESULT DirCreate([out, retval] VARIANT_BOOL *pVal);

HRESULT DirCreate([in] VARIANT_BOOL newVal);

True = Allowed; False = Prohibited

All versions

Retrieves or specifies whether the account has "delete directory" permission.

HRESULT DirDelete([out, retval] VARIANT_BOOL *pVal);

HRESULT DirDelete([in] VARIANT_BOOL newVal);

True = Allowed; False = Prohibited

All versions

Retrieves or specifies whether the account has "directory list" permission.

HRESULT DirList([out, retval] VARIANT_BOOL *pVal);

HRESULT DirList([in] VARIANT_BOOL newVal);

True = Allowed; False = Prohibited

All versions

Retrieves or specifies whether the account has "show hidden directory" permission.

HRESULT DirShowHidden([out, retval] VARIANT_BOOL *pVal);

HRESULT DirShowHidden([in] VARIANT_BOOL newVal);

True = Displayed; False = Hidden

You must allow folder listing (DirList) before you can choose to hide or display hidden files.

All versions

Retrieves or specifies whether the account has "show directory in list" permission.

HRESULT DirShowInList([out, retval] VARIANT_BOOL *pVal);

HRESULT DirShowInList([in] VARIANT_BOOL newVal);

True = Displayed; False = Hidden

You must allow folder listing (DirList) before you can choose to hide or display read-only files.

All versions

Retrieves or specifies whether the account has "show read only" directory permission.

HRESULT DirShowReadOnly([out, retval] VARIANT_BOOL *pVal);

HRESULT DirShowReadOnly([in] VARIANT_BOOL newVal);

True = Displayed; False = Hidden

You must allow folder listing (DirList) before you can choose to hide or display read-only files.

All versions

Retrieves or specifies whether the account has "append file" permission.

HRESULT FileAppend([out, retval] VARIANT_BOOL *pVal);

HRESULT FileAppend([in] VARIANT_BOOL newVal);

True = Allowed; False = Prohibited

All versions

Retrieves or specifies whether the account has "delete file" permission.

HRESULT FileDelete([out, retval] VARIANT_BOOL *pVal);

HRESULT FileDelete([in] VARIANT_BOOL newVal);

True = Allowed; False = Prohibited

All versions

Retrieves or specifies whether the account has "download file" permission.

HRESULT FileDownload([out, retval] VARIANT_BOOL *pVal);

HRESULT FileDownload([in] VARIANT_BOOL newVal);

True = Allowed; False = Prohibited

All versions

Retrieves or specifies whether the account has "rename file" permission.

HRESULT FileRename([out, retval] VARIANT_BOOL *pVal);

HRESULT FileRename([in] VARIANT_BOOL newVal);

True = Allowed; False = Prohibited

All versions

Retrieves or specifies whether the account has "upload file" permission.

HRESULT FileUpload([out, retval] VARIANT_BOOL *pVal);

HRESULT FileUpload([in] VARIANT_BOOL newVal);

True = Allowed; False = Prohibited

All versions

Retrieves the folder name.

HRESULT Folder([out, retval] BSTR *pVal);

All versions

Retrieves Settings Template or Site inherited from. If this permissions isn’t inherited, then InheritedFrom = Folder.

HRESULT InheritedFrom([out, retval] BSTR *pVal);

Example (VBScript):

MsgBox "Folder: " & oPerm.Folder & " inherited permission from: " & oPerm.InheritedFrom

EFT v6.3 and later

Retrieves TRUE if this is a group permission.

HRESULT IsGroup([out, retval] VARIANT_BOOL* pVal);

Example (VBScript):

MsgBox "Is permission group: " & CStr(oPerm.IsGroup)

EFT v6.3 and later

Retrieves TRUE if it is inherited.

HRESULT IsInherited([out, retval] VARIANT_BOOL* pVal);

Example (VBScript):

MsgBox "Is inherited: " & CStr(oPerm.IsInherited)

EFT v6.3 and later

Dialog Box Equivalents

The illustration below is labeled with the methods that are available in the Permission interface.

Difference between DirList and DirShowInList Permission

Within the VFS system, the DirList file permission and the DirShowInList folder permission can confuse users as to the intended operation of the server. At first glance, it would appear that DirList refers to the ability to see files in the directory and DirShowInList would refer to the ability to see folders in the directory, but this is incorrect.

The DirList file permission refers to the user’s ability to retrieve a directory listing from the Server. If this option is enabled, the user is able to see a list of files in the directory. If it is disabled, no files or directories will be visible.

The DirShowInList permission is a bit more complex in that the permission corresponds to whether or not the directory will show up when a directory listing is retrieved in the parent directory. The interaction between inheritance and this setting can therefore lead to a bit of confusion.

Let’s use the following folder structure as an example:

If you select the folder Alex and disable the DirShowInList permission for folder Jane, then when user Jane navigates to the /Usr/ directory and retrieves a directory listing, the folder Alex will NOT appear in her directory listing. To complicate matters, however, Jane still has access to the folder and if someone tells her to manually navigate to that folder she will still be able to perform actions within the Alex folder (provided she has appropriate permissions). In this scenario, by default, when user Jane retrieves a directory listing from within the folder Alex, she will only see a list of files in the folder; she will not see any subfolders in the folder. Why? Because the subfolders (incoming, outgoing, and shared) have all inherited the disabled DirShowInList setting!

Summary: