1

我了解如何实现 ACL 并限制对控制器方法的访问。

我不明白的是如何只为视图中具有某些权限的用户显示某些链接?有人可以演示这是如何完成的吗?

我能找到的唯一相关答案是特定于 ASP 的,这对我来说没有任何意义。

4

3 回答 3

1

如果您按照那篇文章使用 Zend Framework,请使用视图助手。调用 ACL 类,设置控制器/用户等并返回一个布尔值。

<?php if ($this->acl()->hasPermissionToViewUri()): ?>
    // show uri
<?php endif ?>
于 2013-05-23T12:07:11.563 回答
0

你可以这样做:

if(user->logged_in()){
    $data = array( 'link' => $link1);
} else {
    $data = array( 'link' => $link2);
}

View::make('some-view)->with($data);

在视图中:

  <?php echo $link; ?>

您必须将此原则转移到您的 mvc 框架。

于 2013-05-23T12:06:34.633 回答
-2

我总是在 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/

你可以在任何你想限制某些东西的地方使用它——模型、视图、控制器,甚至在你可能导入的辅助类中。

您只需要确保您的类已准备好在您的代码中一直使用。

于 2013-05-23T12:10:39.347 回答