Безопасность ролей Sitecore: запретить доступ с приоритетом

У меня есть роли пользователей, которые работают следующим образом: Администратор - это роль в Менеджере, которая является ролью вошедшего в систему пользователя. Я хочу, чтобы это работало таким образом, чтобы, если у пользователя есть роль администратора, у него также будет роль пользователя, вошедшего в систему. Причина этого - проверка кода. Я действительно не хочу писать что-то, что постепенно проверяет каждую роль, чтобы увидеть, есть ли у пользователя доступ к чему-либо, когда я могу просто проверить, являются ли они зарегистрированным пользователем. Теперь я хочу иметь возможность применять безопасность к элементам sitecore. Проблема, с которой я столкнулся, заключается в том, что отказ в доступе отменяет доступ, если оба существуют для пользователя. Я мог бы разделить роли и выполнить инкрементные проверки (или даже вложить их противоположным образом), но я хочу знать, есть ли способ переключить отказ в доступе, перекрывающий доступ, на противоположный. Т.е. если у менеджера есть доступ к элементу, а у пользователя, вошедшего в систему, нет, тогда пользователь, который является менеджером, сможет видеть элемент (при наследовании роли зарегистрированного пользователя), а пользователь, который просто вошел в систему, не будет.


person Teeknow    schedule 17.11.2014    source источник


Ответы (1)


Я предполагаю, что у вас следующая ролевая структура:

  • Админ - участник ...
  • Менеджер - член ...
  • Авторизованный пользователь

Как вы выяснили, вам следует очень редко отказывать в доступе, поскольку отказ всегда имеет приоритет над доступом независимо от того, откуда исходит наследование. Вместо этого следует прервать наследование для роли Пользователь, вошедший в систему, а затем предоставить доступ на чтение для своей роли Manager. Ваша роль Admin получит доступ для чтения посредством наследования, поскольку она является членом роли Manager.

Поскольку у вас может быть контент, который должен быть доступен только пользователям, вошедшим в систему, вы также должны прервать наследование для роли sitecore \ Everyone и предоставить доступ для чтения вашему Пользователи, вошедшие в систему.

Роль пользователя, вошедшего в систему:

Пользователь, вошедший в систему - прервать наследование

Пользователь, вошедший в систему - просмотрщик доступа

Роль менеджера: - член вошедшего в систему пользователя.

Роль менеджера - предоставить доступ для чтения

Роль менеджера - средство просмотра доступа

Роль администратора: входит в состав Manager.

Роли администратора - средство просмотра доступа

person jammykam    schedule 17.11.2014
comment
Отличный ответ. Похоже, вы можете использовать наследование как мягкий отказ в доступе. Это именно то, что я искал. - person Teeknow; 26.11.2014