logo

[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)

Архив с исходниками см. во вложении.

Прикрепленные файлы