我了解如何实现 ACL 并限制对控制器方法的访问。
我不明白的是如何只为视图中具有某些权限的用户显示某些链接?有人可以演示这是如何完成的吗?
我能找到的唯一相关答案是特定于 ASP 的,这对我来说没有任何意义。
我了解如何实现 ACL 并限制对控制器方法的访问。
我不明白的是如何只为视图中具有某些权限的用户显示某些链接?有人可以演示这是如何完成的吗?
我能找到的唯一相关答案是特定于 ASP 的,这对我来说没有任何意义。
如果您按照那篇文章使用 Zend Framework,请使用视图助手。调用 ACL 类,设置控制器/用户等并返回一个布尔值。
<?php if ($this->acl()->hasPermissionToViewUri()): ?>
// show uri
<?php endif ?>
你可以这样做:
if(user->logged_in()){
$data = array( 'link' => $link1);
} else {
$data = array( 'link' => $link2);
}
View::make('some-view)->with($data);
在视图中:
<?php echo $link; ?>
您必须将此原则转移到您的 mvc 框架。
我总是在 Yii(我使用的框架)上创建一个函数来检查访问权限以查看或进入某些内容。
在 Yii 我这样使用它:
if (Yii::app()->user->checkAccess('restricted_zone')) {
echo 'hurray i have access!';
} else {
echo 'do not have access! :(';
}
在 Yii 扩展中使用:http ://www.yiiframework.com/extension/rbam/
你可以在任何你想限制某些东西的地方使用它——模型、视图、控制器,甚至在你可能导入的辅助类中。
您只需要确保您的类已准备好在您的代码中一直使用。