<?php // 作成するACL物体 $acl = new Zend_Acl(); // 役割を意味します $acl->addrole(new Zend_acl_role( 'guest')); //ゲストロールを意味します$ acl-> addrole(new Zend_acl_role( 'user')); //ユーザーロールを意味する//リソースを意味します$ acl-> addresource(new Zend_acl_Resource( 'index')); //ホームページリソースを意味します$ acl-> addResource(new Zend_acl_Resource( 'profile')); //個人的データリソースを意味する//ライセンス$ acl-> aplas( 'guest'、 'index')を割りいつてる; //訪問者はホームページ$ acl-> aplage( 'user'、 'index')にアクセスできます。 //ユーザーはホームページ$ acl-> aplage( 'user'、 'profile')にアクセスできます。 //ユーザーは個人的情報にアクセスできますか?>
<?php
class IndexController extends Zend_Controller_Action
{
public function init()
{
parent::init();
// 获取いつ前登录用户的角色
$role = Zend_Auth::getInstance()-> getIdentity() - > role;
//ユーザーが今のリソースにアクセスするライセンスを所有っているかどうかを確認します(!$ acl-> isallowed($ role、 'index'、 'index')){
$ this-> _ redirect( '/error/not-allowed'); //ライセンスがない場合は、エラーページにリダイレクト}
}
パブリック関数indexaction()
{
//ホームページビューをレンダリング}
}
?>
上記のコードでは、コントローラーのinitメソッドを使用して、現在ログインしているユーザーの役割を取得し、ACLのISALLOWEDメソッドを呼び出して、ユーザーが指定されたリソースにアクセスする許可を持っているかどうかを確認します。ユーザーに許可がない場合、システムはエラーページにリダイレクトします。
許可管理システムを開発している場合でも、繊細なページを保護している場合でも、Zend FrameworkのACLコンポーネントは、Webアプリケーションが安全で信頼性が高いことを確認するための強力なサポートを提供できます。