2013-02-24 37 views
8

Tôi đang sử dụng tùy chọn FOSUserBundle và Nhóm. Công việc đăng ký. Việc tạo nhóm cũng hoạt động. Nếu tôi tạo 2 nhóm, quản trị viên và khách hàng và THỦ CÔNG thêm một: 1: {i: 0; s: 10: "ROLE_ADMIN";} vào nhóm quản trị trong bảng fos_group và sau đó thiết lập và nhập thủ công trong fos_user_user_group người dùng vào nhóm quản trị, đăng nhập bằng người dùng đó sẽ có thể đăng nhập với tư cách quản trị viên.Thiết lập vai trò nhóm FOSUserBundle

Tuy nhiên, có một số nhược điểm của phương pháp này. Tôi có thể sử dụng những gì để thêm người dùng vào một nhóm ngay bây giờ? Sử dụng tùy chọn dòng lệnh quảng bá sẽ chỉ thêm vai trò cho người dùng đó nhưng trong bảng fos_user và vì tôi đang sử dụng nhóm, tôi nghi ngờ rằng cột vai trò của bảng fos_user không còn được sử dụng nữa. Và nếu nó vẫn phục vụ một mục đích, làm cách nào để gán một người dùng cho một nhóm theo lập trình?

Câu hỏi lớn khác của tôi là làm cách nào để gán vai trò cho nhóm. Có lẽ tôi không nhận được một cái gì đó về ý tưởng toàn bộ nhóm, nhưng tôi đã có thể mong đợi để có thể thêm vai trò (s) cho một nhóm tại thời gian tạo, nhưng hình thức "mới" chỉ yêu cầu tên nhóm và không có dường như không tồn tại tương đương với lệnh thúc đẩy người dùng cho các nhóm.

Cảm ơn bạn.

Trả lời

14

Làm cách nào để chỉ định người dùng cho một nhóm theo lập trình?

$user->addGroup($group); 

Kể từ khi bạn đang sử dụng FOSUserBundle tượng người dùng của bạn kéo dài FOS\UserBundle\Model mà thực hiện GroupableInterface. Vì vậy, lớp người dùng của bạn đã có phương thức nhóm getGroups, hasGroup($name), addGroup(GroupInterface $group), removeGroup(GroupInterface $group). Để tham khảo tại đây https://github.com/FriendsOfSymfony/FOSUserBundle/blob/master/Model/User.php

Làm cách nào để gán vai trò cho nhóm?

$em = $this->getDoctrine()->getEntityManager(); 

$group = new Group(); 
$group->setRoles(array()); 
$group->addRole('ROLE_ACTOR'); 
$em->persist($group); 
$em->flush(); 

Bạn phải thực hiện sự phân công vai trò trên của riêng bạn, fosuserbundle không có hình thức được xác định trước cho việc này.

+0

Cảm ơn bạn đã thực hiện điều đó. – cbaltatescu

+0

Và nếu - trong trường hợp của tôi - tôi có mối quan hệ của Nhóm -> oneToMany-> Người dùng, tôi có một trường hợp sử dụng cụ thể không? Tôi không thể, tôi nên làm gì ???? – krachleur

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