2013-07-08 24 views
5

Tôi mới sử dụng Symfony2 và cho nhu cầu của công ty tôi, tôi đang sử dụng các gói Quản trị viên và Người dùng Sonata.Hiển thị các mục trên trang tổng quan theo vai trò người dùng

Tôi muốn biết liệu có thể ẩn hoặc hiển thị các mục trên trang tổng quan theo vai trò của người dùng đã đăng nhập hay không. Ví dụ, tôi có một số thực thể được quản lý bởi Sonata AdminBundle (quản lý người dùng, công ty, nhiệm vụ, trang web, v.v ...) và tôi muốn chỉ hiển thị quản lý người dùng đối với quản trị viên cấp cao, quản lý công ty và trang web với vai trò khác (ví dụ SITE_ADMIN) và nhiệm vụ cho vai trò thứ ba.

Bạn đã từng gặp phải tình huống này chưa? Bạn có thể cho tôi giải pháp hoặc manh mối để đi trực tiếp đến giải pháp?

Rất cám ơn,

Enes

Trả lời

5

Sử dụng Role handler và cho phép quyền liên quan Người dùng chỉ, ví dụ, các quản trị viên nhóm (tạo ra nó). Sau đó, chỉ định người dùng quản trị cho nhóm Quản trị viên. Quản trị viên Sonata sẽ nhận các hạn chế và sẽ chỉ hiển thị các mục bảng điều khiển cho Quản trị viên.

+2

Vâng bạn phải đặt 'sonata_admin: security: handler: sonata.admin.security.handler.role' trong cấu hình của bạn. Sau đó, bạn sẽ có thể đặt vai trò cần thiết để truy cập các phần khác nhau của quản trị viên. –

+0

Cảm ơn rất nhiều câu trả lời của bạn, một chút trễ nhưng mọi thứ đều tốt cho tôi ngay bây giờ :) – Enessari

2

Bên cạnh đó bạn có thể ẩn và khối trưng bày tại userboard theo cách này:

# app/config/config.yml 
sonata_admin: 
dashboard: 
    groups: 
     acme.admin.group.content: 
      label: acme.admin.group.content 
      label_catalogue: AcmeDemoBundle 
      items: 
       - sonata.admin.post 
     acme.admin.group.blog: 
      items: ~ 
      item_adds: 
       - sonata.admin.page 
      roles: [ ROLE_ONE, ROLE_TWO ] 
     acme.admin.group.misc: ~ 

Như đã đề cập in the docs.

Xin lưu ý rằng điều này chỉ thay đổi khả năng hiển thị của một khối, không phải khả năng truy cập. Nếu không có hạn chế, mọi người vẫn có thể mở liên kết trong trình duyệt nếu họ biết.

Nếu bạn sử dụng câu trả lời trước đó, hãy triển khai sonata.admin.security.handler.role khối sẽ tự động bị ẩn nếu người dùng không có vai trò chính xác.

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