2

Zend ACL を使用して、特定のユーザーにコントローラ内のいくつかのアクションへのアクセスを許可するにはどうすればよいですか? 今のところ、ユーザーがコントローラー全体にアクセスできるようにする方法しか知りませんが、コントローラー内のアクションを制限したい!

4

1 に答える 1

1

特定のアクションへのアクセスを許可/拒否するには、Zend_Acl の許可/拒否メソッドで指定します。

メソッドの 3 番目の引数は、Zend_Acl::allow()特定のコントローラー/リソースの特定のアクションにアクセス制御を設定することのみを許可します。例えば:

<?php

$acl = new Zend_Acl();

// Roles
$guest = new Zend_Acl_Role('guest');
$user = new Zend_Acl_Role('user');

// Register the roles with the Zend_Acl
$acl->addRole($guest);
$acl->addRole($user, 'guest');

// Resources/Controllers
$indexController = new Zend_Acl_Resource('index');
$profileController = new Zend_Acl_Resource('profile');

// Add resources/controllers to the Zend_Acl
$acl->add($indexController);
$acl->add($profileController);


// Now set limits of access to the resources.
// Guests get access to all the actions in the index controller,
// but to only the login and logout actions in the profile controller.
$acl->allow('guest', 'index');
$acl->allow('guest', 'profile', array('login', 'logout'));

// Users get full access to the profile controller
$acl->allow('user', 'profile');
于 2013-02-25T03:24:51.783 に答える