2014-01-17 3 views
1

Я реализую компонент ACL с помощью своего приложения CakePHP. У меня все правильно настроено в отношении пользователей и групп, однако приложение будет иметь несколько областей доступа, где разрешения устанавливаются не только для пользователей, но и для других ARO. Например, билет (ARO) хочет получить доступ к команде поддержки (ACO) на основе той группы билетов, к которой она принадлежит.CakePHP ACL - несколько групповых моделей

Я хотел бы иметь две отдельные модели пользователь/группа, действующая в качестве ACL запрашивающих, которые переплетены друг с другом экс

- Users 
    - User 
    - Group 

- Tickets 
    - Ticket 
    - Ticketgroup 

Что я неуверен, если это возможно, чтобы использовать компонент ACL на этом масштаб, имеющий две отдельные модели пользователя/группы, привязанные друг к другу в одном и том же ACL?

ответ

0

Не уверен, если я понимаю проблему прекрасно, но она должна работать, если у вас есть два отдельных дерева с двумя отдельными корневыми узлами в вашем ARO таблице:

AllGroups 
    - Group1 
    - User1 
    - User2 
AllTickets 
    -TicketGroup1 
    - Ticket1 
    - Ticket2 

Используйте AclBehavior::parentNode() методы перевязать Group модель к модели User, а также модели TicketGroup модели Ticket.

Затем вы можете использовать AclComponent «s методы (allow(), check() и т.д.) между ACO типа :controller/:action против ARO типа Group/User, а также сказать еще ARO типа TicketGroup/Ticket. Это поможет отделить разрешение ARO и избежать конфликтов между двумя типами групп.

Смежные вопросы