Tôi hơi bối rối bởi cách danh sách điều khiển truy cập được thực hiện trong Symfony2.Làm thế nào để thực hiện vai trò/tài nguyên ACL trong Symfony2
Trong Zend Framework (phiên bản 1 & 2), một danh sách các nguồn và một danh sách các vai trò được định nghĩa và vai trò của từng được gán một tập hợp con của các nguồn tài nguyên nó cho phép truy cập. Do đó, các tài nguyên và vai trò là vốn từ vựng chính của việc triển khai ACL, không phải là trường hợp trong Symfony2, nơi chỉ có các quy tắc vai trò.
Trong cơ sở dữ liệu ứng dụng cũ, tôi có bảng xác định danh sách vai trò, danh sách tài nguyên và danh sách tài nguyên được phép cho từng vai trò (mối quan hệ nhiều-nhiều). Mỗi người dùng được chỉ định vai trò (quản trị viên, quản trị viên cấp cao, người chỉnh sửa và những người khác).
Tôi cần sử dụng cơ sở dữ liệu này trong ứng dụng Symfony2. nguồn lực của tôi trông như thế này: ARTICLE_EDIT, ARTICLE_WRITE, COMMENT_EDIT vv
User
thực thể của tôi trong Symfony cài đặt giao diện Symfony\Component\Security\Core\User\UserInterface
và do đó có một phương pháp getRoles)
.
Tôi dự định sử dụng phương pháp này để xác định tài nguyên được phép, có nghĩa là tôi sử dụng vai trò làm tài nguyên (nghĩa là tài nguyên được gọi là Zend Framework được gọi là vai trò ở đây).
Bạn có xác nhận rằng tôi nên sử dụng phương pháp này không?
Điều này có nghĩa là tôi không quan tâm nữa về vai trò (quản trị viên, người biên tập, ...) của từng người dùng, mà chỉ về tài nguyên của nó.
Sau đó tôi sẽ sử dụng $this->get('security.context')->isGranted('ROLE_ARTICLE_WRITE')
trong bộ điều khiển của mình.
Đây có phải là cách phù hợp để làm điều đó và nó sẽ không phải là cách phá cách để sử dụng các vai trò trong Symfony?