如何写判断是因为没有登录还是没有访问权限的钩子代码?

#1 小双

我想知道详细的设置,分别在以下两种情况下:
1.没有登录
2.登录以后没有访问权限
实现判断是否可以访问相应页面的权限?如何设置钩子代码,具体在哪里设置对应代码?学习下。{:3_50:}

2010-03-15 11:16:53

#2 jake

参看此实例 http://speedphp.com/bbs/thread-142-1-1.html

在index.php配置中,设置了没有权限而提示的钩子

  'ext' => array( // 扩展设置
   'spAcl' => array( // acl扩展设置
     
    // 在acl中,设置无权限执行将lib_user类的acljump函数
    'prompt' => array("lib_user", "acljump"),
   ),
  )

而后,在lib_user的acljump函数中,便可以按照你想的方式去进行无权限的提示。

实例中的是:
 /**
* 无权限提示及跳转
*/
public function acljump(){
// 这里直接“借用”了spController.php的代码来进行无权限提示
$url = spUrl("main","login");
echo "";
exit;
}


是直接跳转的方法。

这里可以改写一下:

public function acljump(){
$user_acl = spClass('spAcl')->get(); // 获取到当前用户的角色,如果当前用户是没有登录(没有经过spClass('spAcl')->set('角色名')),那么会返回false

// 这里就可以根据$user_acl的值进行判断了

if( "USER" == $user_acl ){ // 有USER权限的

}elseif( "MANAGER" == $user_acl ){ // 有MANAGER权限的


}else{ // 完全没权限的

}

exit; // 别漏了这个
}

2010-03-15 12:11:24

#3 小双

测试成功,很棒,非常棒,茅塞顿开啊!{:3_48:}

2010-03-15 13:35:44