(1)_code/myapp.php文件中:
1 /** 2 * 访问被拒绝时的错误处理函数 3 */ 4 protected function _on_access_denied() 5 { 6 $message = ""; 7 require(_MYAPP_DIR_ . '/view/403.php'); 8 exit; 9 10 //当用户未登录或未注册时,页面重定向到登录页面 11 $roles = $this->currentUserRoles(); 12 if (empty($roles)) 13 { 14 // 如果当前用户没有角色,则转到登录页面 15 return new QView_Redirect(url('users/login')); 16 } 17 }
(2)_code/_config/acl.config.php文件中:
如:
1<?php 2return array( 3 'default'=>array( 4 'allow' => 'ACL_EVERYONE', 5 ), 6 'users'=>array( 7 'allow' => 'ACL_EVERYONE', 8 'actions'=>array( 9 'index'=>array( 10 'allow'=>'ACL_HAS_ROLE' 11 ), 12 'profile'=>array( 13 'allow'=>'ACL_HAS_ROLE' 14 ), 15 'changepassword'=>array( 16 'allow'=>'ACL_HAS_ROLE' 17 ) 18 ) 19 ), 20 'admins'=>array( 21 'allow' => 'ACL_EVERYONE', 22 'actions'=>array( 23 'index'=>array( 24 'allow'=>'ACL_HAS_ROLE' 25 ) 26 ) 27 ), 28 'orders'=>array( 29 'allow' => 'MEMBER', 30 ), 31 'orderitems'=>array( 32 'allow' => 'MEMBER', 33 ), 34 'collections'=>array( 35 'allow' => 'MEMBER', 36 ), 37 'receivers'=>array( 38 'allow' => 'MEMBER', 39 ), 40 'categorys'=>array( 41 'allow' => 'MEMBER', 42 'actions'=>array( 43 'showcategory2'=>array( 44 'allow'=>'ACL_EVERYONE' 45 ) 46 ) 47 ), 48 'books'=>array( 49 'allow' => 'ACL_EVERYONE', 50 'actions'=>array( 51 'booklist'=>array( 52 'allow'=>'MEMBER' 53 ), 54 'delete'=>array( 55 'allow'=>'MEMBER' 56 ), 57 'edit'=>array( 58 'allow'=>'MEMBER' 59 ), 60 ) 61 ) 62);