2013-12-13 62 views
0

我正忙於在Symfony2中編寫一個API。其中一個API函數是返回所有用戶(並不罕見)。顯然,在我返回用戶列表之前,我必須確保用戶在返回用戶之前已經登錄並且至少具有ROLE_ADMIN。目前,我做這樣的:Symfony2>更容易的方法來確定訪問

public function getAllUsersAction() 
{ 
    $user = $this->getUser(); 
    if ($user == null) die("Unauthorized"); 
    $userRoles = $user->getRoles(); 
    $bAuthorized = false; 
    foreach ($userRoles as $userRole) 
     if ($userRole->getRole() == "ROLE_ADMIN" || $userRole->getRole() == "ROLE_SUPER_ADMIN") 
      $bAuthorized = true; 
    if ($bAuthorized) return createJsonResponse($this->getDoctrine()->getRepository('PmbLicensingBundle:User')->findAll()); 
    else die("Unauthorized"); 
} 

我的問題很簡單是否有Symfony的一個簡單的方法來確定用戶是否登錄並具有ROLE_ADMIN比我服用,因爲它似乎過程相當笨重。

回答

1

嘗試:

if (!$this->get('security.context')->isGranted('ROLE_ADMIN')) die('Nope Nope Nope'); 

或者你當然可以按照@ artworkad的意見,並建立一個防火牆會阻止從不斷被稱爲擺在首位的動作。

相關問題