访问控制

很显然,对于需要用户身份验证的系统,每个页面都加入验证脚本是十分愚蠢的。同样的即使每个页面都用类似include的方式引入验证规则也是十分麻烦的事情。

因此我们提出访问控制的概念,让开发者根据用户请求的URL信息验证当前用户是否有权限访问。验证的方法名为:access_validations,通常情况下我们把它定义在fun/access_validations.php文件中。

验证示例:

/**
 * 此方法是框架访问权限验证的钩子方法<br/>
 * $uri 为请求的URL的相对路径<br/>
 * 如:http://www.yyuc.com/admin/set/index.html 则$uri为:admin/set/index<br/>
 * $uri为实际的控制器路径,而并非用户真实的请求路径(开启自定义路由的情况下两者并不相同)
 * @param $uri
 */
function access_validations($uri){
    //网站管理员验证
    if(String::start_with($uri, 'admin/') && $uri != 'admin/login' && !Auth::is_user()){
        Redirect::to('/admin/login');
    }

    if(String::start_with($uri, 'superadmin/')){
            Redirect::to_404();
    }
}

这里要特别注意的是参数$uri是控制器路径而不是用户实际请求的路径。