相关疑难解决方法(0)

如何在Web MVC应用程序中实现访问控制列表?

第一个问题

请问,您能解释一下在MVC中如何实现最简单的ACL.

这是在Controller中使用Acl的第一种方法......

<?php
class MyController extends Controller {

  public function myMethod() {        
    //It is just abstract code
    $acl = new Acl();
    $acl->setController('MyController');
    $acl->setMethod('myMethod');
    $acl->getRole();
    if (!$acl->allowed()) die("You're not allowed to do it!");
    ...    
  }

}
?>
Run Code Online (Sandbox Code Playgroud)

这是一个非常糟糕的方法,它的缺点是我们必须将Acl代码添加到每个控制器的方法中,但我们不需要任何其他依赖项!

接下来的方法是制作所有控制器的方法private并将ACL代码添加到控制器的__call方法中.

<?php
class MyController extends Controller {

  private function myMethod() {
    ...
  }

  public function __call($name, $params) {
    //It is just abstract code
    $acl = new Acl();
    $acl->setController(__CLASS__);
    $acl->setMethod($name);
    $acl->getRole();
    if (!$acl->allowed()) die("You're not allowed to do it!"); …
Run Code Online (Sandbox Code Playgroud)

php oop model-view-controller acl

94
推荐指数
3
解决办法
3万
查看次数

标签 统计

acl ×1

model-view-controller ×1

oop ×1

php ×1