, если кто-то может помочь с этим, пожалуйста.
Я пытаюсь включить ckeditor и ckfinder в проект Asp.Net Mvc 1. До сих пор все работает нормально. Единственное, что я не могу заставить работать правильно - это Контроль доступа для ckfinder.
Насколько я понимаю, в файле ckfinder / config.ascx переменная строка RoleSessionVar используется для назначения роли, которую нужно ограничить. Значение по умолчанию:
RoleSessionVar = "CKFinder_UserRole";
У меня есть три роли в моем проекте: администраторы, редакторы и участники. Поэтому, чтобы получить мою текущую роль пользователя, я заменяю ее на:
string currentRole= "";
if(HttpContext.Current.User.IsInRole("Administrators"))
{
currentRole = "Administrators";
}
else
{
if (HttpContext.Current.User.IsInRole("Editors"))
currentRole = "Editors";
else
{
if (HttpContext.Current.User.IsInRole("Contributors"))
{
currentRole = "Contributors";
}
}
}
RoleSessionVar = currentRole;
Переменная получает правильную роль для текущего пользователя. Следующая часть в файле config.ascx - это настройки ACL. По умолчанию:
AccessControl acl = AccessControl.Add();
acl.Role = "*";
acl.ResourceType = "*";
acl.Folder = "/";
acl.FolderView = true;
acl.FolderCreate = true;
acl.FolderRename = true;
acl.FolderDelete = true;
acl.FileView = true;
acl.FileUpload = true;
acl.FileRename = true;
acl.FileDelete = true;
С этими настройками нет проблем с ckfinder, он перечисляет все папки и файлы, но там с полными разрешениями для всех. Я хочу ограничить удаление разрешений для разных ролей. Во всяком случае, в качестве теста я попытался дать полные права администраторам
AccessControl acl = AccessControl.Add();
acl.Role = "Administrators";
acl.ResourceType = "*";
acl.Folder = "/";
acl.FolderView = true;
acl.FolderCreate = true;
acl.FolderRename = true;
acl.FolderDelete = true;
acl.FileView = true;
acl.FileUpload = true;
acl.FileRename = true;
acl.FileDelete = true;
Но ckfinder не будет показывать ни одну папку или файл, даже если RoleSessionVar = "Administrators".
Я буду очень благодарен за любую помощь в решении этой проблемы.
Byron