2012-04-23 31 views
7

Tôi thấy từ chính thức Symfony2 doc on Security rằng các vai trò mới có thể được xác định bên cạnh các vai trò "cổ điển" (tức là ROLE_USER, ROLE_ADMIN, v.v.).Cách tạo và đăng ký vai trò mới trong Symfony2

Làm cách nào để xác định vai trò mới và đăng ký chúng vào ứng dụng Symfony2 của tôi để tạo thứ bậc vai trò trong bảo mật security.yml?

Xin lỗi vì đã làm phiền tất cả các bạn! Tôi nghĩ câu trả lời rất đơn giản. Thực tế, có vẻ như là đủ để bắt đầu sử dụng vai trò mới bằng cách bắt đầu tên với ROLE_. Ví dụ: có thể nói ROLE_NEWS_AUTHOR để chỉ những người có vai trò đó mới có thể chèn tin tức vào trang web.

Cảm ơn.

Trả lời

13

Chắc chắn bạn chỉ có thể thêm bất kỳ vai trò bắt đầu với tập tin ROLE_SOMEROLE.In security.yml có hai phần chính để 1.limit truy cập 2. Ai là memebers có thể truy cập

a. access_control: Giới hạn mẫu nào và chỉ định vai trò có thể truy cập. b. role_hierarchy: ở đây cấu trúc phân cấp vai trò, đối với ví dụ bên dưới, người dùng Quản trị viên (ROLE_ADMIN) có vai trò ROLE_USER, ROLE_NEWS_AUTHOR. Vì vậy, anh ấy có thể truy cập tất cả các trang của USER và NEWS_AUTHOR.Whất cả thứ bậc mà bạn có thể cung cấp.

access_control: 
     - { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY }/login any one can access this pattern 
     - { path: ^/admin/, roles: ROLE_ADMIN }//block all pattern /admin/anything* 
     - { path: ^/news/, roles: ROLE_NEWS_AUTHOR } //block all pattern /news/anything* 
role_hierarchy: 
     ROLE_ADMIN: [ROLE_USER,ROLE_NEWS_AUTHOR] 

Trong điều khiển của bạn, bạn có thể kiểm tra vai trò,

if(TRUE ===$this->get('security.context')->isGranted('ROLE_ADMIN')) 
{ 
    // do something related to ADMIN 
} 
else if(TRUE ===$this->get('security.context')->isGranted('ROLE_NEWS_AUTHOR')) 
{ 
    // do something related to News Editor 
} 

Hy vọng điều này sẽ giúp bạn. Mã hóa HAppy.

+0

Cảm ơn thông tin bổ sung. – JeanValjean

+0

Cũng lưu ý rằng tên của vai trò phải luôn bắt đầu bằng "ROLE_" hoặc Symfony sẽ không nhận ra chúng. – DarksteelPenguin

Các vấn đề liên quan