[ELMA3] Дополнительная проверка привилегий для файла
В статье приведен пример создания дополнительной проверки привилегий файла. Если у пользователя нет прав доступа к файлу, то при попытке загрузить файл из объекта пользователь получит соответствующее предупреждение, представленное на рисунке 1. Если же у пользователя есть права доступа к файлу, то предупреждения не будет и появится возможность скачать файл или воспользоваться предпросмотром как показано на рисунке 2.
Пример отображения данных
Рис. 1. Сообщение при отсутствии прав доступа к файлу
Рис. 2. Окно при наличии прав доступа к файлу
Методы расширения (интерфейса)
Точка расширения (интерфейс) IExtendedFilePermissionValidator имеет следующие методы:
/// <summary> /// Есть ли привилегия к файлу /// </summary> /// <param name="file">Файл</param> /// <returns><c>true</c> если есть доступ к файлу</returns> bool HasPermission(BinaryFile file, out string errorMessage);
Пример класса точки расширения
[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("Недостаточно прав доступа к версии файла"); return res; } }
В данном примере при наличии прав доступа администратора пользователь получит право на скачивание/просмотр файла.
Ссылки на элементы API
IExtendedFilePermissionValidator (для версий 3.13, 3.15, 4.0)
Архив с исходниками см. во вложении.