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