2013-01-04 87 views
0

我在我的應用程序中集成了Auth和Acl與ZF2。我已經按照教程。 http://p0l0.binware.org/index.php/2012/02/18/zend-framework-2-authentication-acl-using-eventmanager/Zend Framework 2 ACL的實現

但是,我無法獲得ACL的功能。 我在驗證模塊中使用ACL而不是用戶。 如何限制訪客訪問?如何讓會員訪問所有頁面?

我沒有改變任何東西。請檢查教程。

誰能解決我的問題嗎?否則指導我去做。 謝謝。

回答

1

剛開始探索ACL。您的問題首先出現在谷歌搜索結果中。 很明顯,本教程中使用的命名空間是錯誤的(使用Zend \ Acl \ Acl作爲ZendAcl)。

的ACL命名空間是:

namespace Zend\Permissions\Acl; 

class Acl implements AclInterface 
0

我不得不解決AUTH + ACL控制的問題同樣的問題Finnaly我知道了。原因很簡單:

1 - 創建一個全球性的或特殊的模塊ACL配置文件:....module/Profil/config/acl.config.php

你可以把它的應用程序

return array(
    'acl' => array(
     'roles' => array(
      'guest' => null, 
      'member' => 'guest', 
      'admin' => 'member' 
     ), 
     'resources' => array(
      'Profil' => array(
       'Index' => array(
        'allow' => array(
        // action => member 
         'signup' => 'guest', 
         'index'  => 'guest', // signin ;) 
         'home'  => 'member', 
         'signout' => 'member', 
         'all'  => 'admin', 
        ), 
        'deny' => array(
         'home' => 'guest', 
        ), 
       ), 
      ), 
     ), 
    ), 
); 

在這裏,我定義的全局config目錄下如何我的模塊「Profil」可以工作,可以使用它的角色以及每個角色的限制。

角色:

一位客人沒有父母。
成員從訪客權限繼承。
老闆管理員繼承成員和來賓。