Управление правами доступа на примере шаблона
Ограничение доступа к приватным ресурсам очень важная часть FastReport Corporate Server. Гибкая система доступа позволяет задать ограничение или выдать права на каждый ресурс отдельно, задавая круг лиц которые могут получить к ним доступ.
Приступая к работе
Вам понадобятся следующие инструменты и возможности:
Знания по использованию API key в FastReport Corporate Server.
В этой статье будет пропущена дополнительная информация по аутентификации и авторизации.
Редактор C# кода или текстовый редактор, например Visual Studio Code.
Шаблон отчёта.
Как загрузить шаблон отчёта можно узнать в статье Загрузка нового шаблона.
Активная подписка для FastReport.Cloud.
Доступ в интернет.
Обратите внимание! Это руководство рассчитано, что вы уже знаете, как разработать своё приложение на языке программирования C#.
Обратите внимание! Пункты выше описывают рекомендуемые инструменты.
Инструкция
Для просмотра текущих прав на ресурс воспользуйтесь методом <xref:FastReport.Cloud.ITemplatesClient.GetPermissionsAsync(System.String)>.
public async Task<FilePermission> GetOwnerPermissions(HttpClient httpClient, string templateId) { ITemplatesClient templatesClient = new TemplatesClient(httpClient); FilePermissions permissions = await templatesClient.GetPermissionsAsync(templateId); return permissions.Owner; }
В этом примере метод возвращает права доступа для владельца шаблона.
Обратите внимание! Классы <xref:FastReport.Cloud.FilePermissions> и <xref:FastReport.Cloud.FilePermission> отличаются буквой
s
на конце, первый содержит полное описание прав доступа к сущности, второй – только описание для одной из категории.Для изменения разрешений воспользуйтесь методом <xref:FastReport.Cloud.ITemplatesClient.UpdatePermissionsAsync(System.String,FastReport.Cloud.UpdateFilePermissionsVM)>.
public async Task<FilePermission> ShareTemplate(HttpClient httpClient, string templateId) { ITemplatesClient templatesClient = new TemplatesClient(httpClient); UpdateFilePermissionsVM viewModel = new UpdateFilePermissionsVM() { NewPermissions = new FilePermissions() { Anon = new FilePermission() { Get = FilePermissionGet.Entity | FilePermissionGet.Download } }, Administrate = UpdateFilePermissionsVMAdministrate.Anon }; var result = await templatesClient.AddPermissionAsync(templateId, viewModel); return result.Other; }
В этом примере функция даёт возможность анонимным пользователям информацию о шаблоне и скачивать его.
Обратите внимание! В данном примере мы передаём только те права, которые хотим отредактировать и указываем их в свойстве
Administrate
.Если нужно изменить сразу несколько категорий прав, можно перечислить их через побитовый оператор ИЛИ ("|")