2014-07-13 3 views
0

다른 사용자를 표시 할 수있는 기회를 제공하여 사용자가 다른 사용자를 확인할 수 있도록하고 싶습니다. 다른 사용자의 수준.Symfony2에서 FOUserbundle을 사용하여 다른 사용자에게 사용자 프로필을 표시하려면 어떻게해야합니까?

각 사용자에게 특정 경로를 제공 할 수있는 방법이 있습니까? 예 : /사용자 이름/프로필? 새보기와 새 컨트롤러를 만들어야합니까?

미리 도움 주셔서 감사합니다.

+0

Sonata AdminBundle을 살펴보십시오. 이를 사용하여 데이터를 관리 할 수 ​​있으며 사용자를 관리하기 위해 FOS UserBundle과 함께 사용할 수 있습니다. –

+0

FOSUserbundle 자체에는 아무런 가능성이 없습니까? 소나타는 사용법에 관해서는 조금 떨어져있는 것처럼 보입니다. – joelschmid

답변

0

은 다음과 같습니다 : 여기에 트릭은 당신이 그래서 security.yml은 다음과 같이 예를

을 위해, 슈퍼 관리자 사용자로 제한한다는 것이다

FOSUserBundle 모든 사용자 + 개별적으로 각 사용자의 디스플레이와 함께 전체 목록의 표시를 처리하는 사용자 컨트롤러 : 여기서

/** 
* User controller. 
*/ 
class UsersController extends Controller 
{ 

    /** 
    * Lists all CategoryShop entities. 
    * 
    */ 
    public function indexAction() 
    { 
     $em = $this->getDoctrine()->getManager(); 

     $entities = $em->getRepository('DbeUserBundle:User')->findAll(); 

     return $this->render('DbeUserBundle:Users:userlist.html.twig', array(
       'entities' => $entities, 
     )); 

    } 

    /** 
    * Finds and displays a CategoryShop entity. 
    * 
    */ 
    public function showAction($id) 
    { 
     $em = $this->getDoctrine()->getManager(); 

     $entity = $em->getRepository('DbeUserBundle:User')->find($id); 



     return $this->render('DbeUserBundle:Users:userprofile.html.twig', array(
       'entity'  => $entity, 
        )); 
    } 

두 actio위한 경로이며 ns :

<route id="fos_user_profile_show_users" pattern="/users"> 
    <default key="_controller">FOSUserBundle:Users:index</default> 
</route> 
<route id="fos_user_profile_show_user" pattern="/user/{id}"> 
    <default key="_controller">FOSUserBundle:Users:show</default> 
</route> 

인증되지 않은 사용자도 모든 사용자를 나열 할 수 있도록 허용되었습니다. 따라서 방화벽 설정이 필요 없습니다.

2

모든 사용자를 나열하는 /users과 같은 경로와 컨트롤러를 만듭니다. 특정 역할에 /users에 대한 액세스 권한 만 제공하십시오. users/{id}과 같은 추가 경로와 컨트롤러를 만들고 컨트롤러에 표시하려는 사용자의 필요한 정보를 추출하게하십시오. 내가 @ 알렉스의 도움으로 그것을 어떻게

다음
role_hierarchy: 
    ... 
    ROLE_SUPER_ADMIN: ROLE_SUPER_ADMIN 

access_control: 
    ... 
    - { path: ^/users, role: ROLE_SUPER_ADMIN } 
+0

나는 그것을 시험해보고있다. 덕분에 – joelschmid

+0

좋습니다. 최근 프로젝트에서 방금했습니다. 문제가 있다면 잘하면 도움이 될 것입니다. – Alex