Я возился с компонентами Cake Auth / ACL.Я прочитал документы и сделал урок, но я все еще не удовлетворен тем, что я могу на самом деле сделать с ним.Я видел пару из других подходов, но я не могу сказать, поскольку у меня действительно есть прямой победитель с любым из них.В любом учебном пособии / сообщении в блоге / документе, которое я прочитал, случай использования «владения» не совсем достаточно освещен.
Я надеялся описать свой вариант использования, и если есть кто-то, кто может предложить подход, я весь в ушах, иначе я мог бы просто попытаться что-то сделать сам; o)
Это в основном имитирует простой набор кабинетов доктора.
Начинается достаточно легко для ARO:
- Группа 1: администраторы (конечно)
- Группа 2: смотрители
- Группа 3: участники
Между группами и пользователями существует отношение hasOne (то есть пользователь может принадлежать только к одной группе).
Теперь мы используем ACO с древовидной структурой, например Эйдан Листер считает :
/root
/practice
/practice_profile
/practice_updates
/patients
/entries
/profiles
/other_things
Каждый смотритель будет иметь доступ к практике, включающей егопациентов.Это дает смотрителю доступ ко всему, что пишет пациент.Кроме того, пациент ТОЛЬКО сможет видеть / редактировать / и т.д. ... все, что ему принадлежит.Это не было конкретно отражено ни в одном написанном мною тексте.Я знаю, что с типами разрешений файловой системы это является обычным делом, но я даже не хочу идти по этому пути ...
С Auth / ACL в ядре Cake, он на самом деле не получает такие разрешения, какэтот.Кажется, он говорит: «Ну, если вы являетесь частью группы X, тогда вы можете выполнять функцию Y».Следовательно, кажется, что любой пользователь, принадлежащий к группе members
, будет иметь доступ ко всем материалам других участников, а все caretakers
будут иметь доступ ко всем методам.
Кто-нибудь еще сталкивался с подобнымвариант использования?Любые предложения для дальнейшего чтения?Любые известные решения?
РЕДАКТИРОВАТЬ: Таким образом, все ответы были отличными, так что все вокруг проголосовали.Я настоятельно рекомендую посмотреть на пост, который я не нашел, предоставленный bancer, так как в итоге он указал мне на некоторые интересные вещи.В конце концов, хотя ответы были спрятаны в документах, я просто не совсем понял, как в первый раз.Кроме того, был момент, когда я прочитал ссылку cakeqs .Так что ответ идет к Вениамину.