简体   繁体   English

Zend ACL允许某些操作

[英]Zend ACL allow certain actions

How do I use the Zend ACL to allow access to certain users to some of the actions within a controller? 如何使用Zend ACL允许某些用户访问控制器中的某些操作? Right now, I only know how to allow a user to access the whole controller, but I want to limit the actions within the controller! 现在,我只知道如何允许用户访问整个控制器,但是我想限制控制器内的操作!

To allow/deny access to certain actions, specify them in the allow/deny methods of Zend_Acl. 要允许/拒绝访问某些动作,请在Zend_Acl的allow / deny方法中指定它们。

The third argument in the Zend_Acl::allow() method will only allow you to set access controls to certain actions on a given controller/resource. Zend_Acl::allow()方法中的第三个参数将仅允许您将访问控制设置为给定控制器/资源上的某些操作。 For example: 例如:

<?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');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM