У меня есть роли пользователей, которые работают следующим образом: Администратор - это роль в Менеджере, которая является ролью вошедшего в систему пользователя. Я хочу, чтобы это работало таким образом, чтобы, если у пользователя есть роль администратора, у него также будет роль пользователя, вошедшего в систему. Причина этого - проверка кода. Я действительно не хочу писать что-то, что постепенно проверяет каждую роль, чтобы увидеть, есть ли у пользователя доступ к чему-либо, когда я могу просто проверить, являются ли они зарегистрированным пользователем. Теперь я хочу иметь возможность применять безопасность к элементам sitecore. Проблема, с которой я столкнулся, заключается в том, что отказ в доступе отменяет доступ, если оба существуют для пользователя. Я мог бы разделить роли и выполнить инкрементные проверки (или даже вложить их противоположным образом), но я хочу знать, есть ли способ переключить отказ в доступе, перекрывающий доступ, на противоположный. Т.е. если у менеджера есть доступ к элементу, а у пользователя, вошедшего в систему, нет, тогда пользователь, который является менеджером, сможет видеть элемент (при наследовании роли зарегистрированного пользователя), а пользователь, который просто вошел в систему, не будет.
Безопасность ролей Sitecore: запретить доступ с приоритетом
Ответы (1)
Я предполагаю, что у вас следующая ролевая структура:
- Админ - участник ...
- Менеджер - член ...
- Авторизованный пользователь
Как вы выяснили, вам следует очень редко отказывать в доступе, поскольку отказ всегда имеет приоритет над доступом независимо от того, откуда исходит наследование. Вместо этого следует прервать наследование для роли Пользователь, вошедший в систему, а затем предоставить доступ на чтение для своей роли Manager. Ваша роль Admin получит доступ для чтения посредством наследования, поскольку она является членом роли Manager.
Поскольку у вас может быть контент, который должен быть доступен только пользователям, вошедшим в систему, вы также должны прервать наследование для роли sitecore \ Everyone и предоставить доступ для чтения вашему Пользователи, вошедшие в систему.
Роль пользователя, вошедшего в систему:
Роль менеджера: - член вошедшего в систему пользователя.
Роль администратора: входит в состав Manager.