Additional file permission check
In this article, we offer an example of creating an additional file permission check. If a user does not have access permissions to a file, they will receive a corresponding notification when trying to download the file from the object, as shown in fig.1. If the user has access permissions to the file, they will be able to download the file or preview it, as shown in fig. 2.
Example of data display
Fig. 1. Notification shown when there are not enough permissions to access a file
Fig. 2. Pop-up window that appears when there are enough permissions
Extension (interface) methods
IExtendedFilePermissionValidator extension point (interface) uses the following methods:
/// <summary>
/// Whether there are enough permissions to access the file
/// </summary>
/// <param name="file">File</param>
/// <returns><c>true</c> if there are enough permissions</returns>
bool HasPermission(BinaryFile file, out string errorMessage);
Example of extension point class
[Component]
public class VersionExtendedFilePermission : IExtendedFilePermissionValidator
{
public bool HasPermission(BinaryFile file, out string errorMessage)
{
errorMessage = string.Empty;
var res = Locator.GetServiceNotNull<ISecurityService>().HasPermission(CommonPermissions.AdminPermission);
if (!res)
errorMessage = SR.T("Not enough permissions to access the file version");
return res;
}
}
In this example, a user with administrator privileges has access to download/view the file.