QeePHP中的访问控制配置

Stella981
• 阅读 476

(1)_code/myapp.php文件中:

 /**
     * 访问被拒绝时的错误处理函数
     */
    protected function _on_access_denied()
    {
        $message = "";
        require(_MYAPP_DIR_ . '/view/403.php');
        exit;
        
        //当用户未登录或未注册时,页面重定向到登录页面
        $roles = $this->currentUserRoles();
        if (empty($roles))
        {
            // 如果当前用户没有角色,则转到登录页面
            return new QView_Redirect(url('users/login'));
        }
    }

(2)_code/_config/acl.config.php文件中:

如:

<?php
return array(
    'default'=>array(
        'allow' => 'ACL_EVERYONE',
    ),
    'users'=>array(
        'allow' => 'ACL_EVERYONE',
        'actions'=>array(
            'index'=>array(
                'allow'=>'ACL_HAS_ROLE'
            ),
            'profile'=>array(
                'allow'=>'ACL_HAS_ROLE'
            ),
            'changepassword'=>array(
                'allow'=>'ACL_HAS_ROLE'
                )
            )
    ),
    'admins'=>array(
        'allow' => 'ACL_EVERYONE',
        'actions'=>array(
            'index'=>array(
                'allow'=>'ACL_HAS_ROLE'
                )
            )
    ),
    'orders'=>array(
        'allow' => 'MEMBER',
    ),
    'orderitems'=>array(
        'allow' => 'MEMBER',
    ),
    'collections'=>array(
        'allow' => 'MEMBER',
    ),
    'receivers'=>array(
        'allow' => 'MEMBER',
    ),
    'categorys'=>array(
        'allow' => 'MEMBER',
        'actions'=>array(
            'showcategory2'=>array(
                'allow'=>'ACL_EVERYONE'
            )
        )
    ),
    'books'=>array(
        'allow' => 'ACL_EVERYONE',
        'actions'=>array(
            'booklist'=>array(
                'allow'=>'MEMBER'
            ),
            'delete'=>array(
                'allow'=>'MEMBER'
            ),
            'edit'=>array(
                'allow'=>'MEMBER'
            ),
        )
    )
);
点赞
收藏
评论区
推荐文章
blmius blmius
2年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Jacquelyn38 Jacquelyn38
2年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
Souleigh ✨ Souleigh ✨
2年前
前端性能优化 - 雅虎军规
无论是在工作中,还是在面试中,web前端性能的优化都是很重要的,那么我们进行优化需要从哪些方面入手呢?可以遵循雅虎的前端优化35条军规,这样对于优化有一个比较清晰的方向.35条军规1.尽量减少HTTP请求个数——须权衡2.使用CDN(内容分发网络)3.为文件头指定Expires或CacheControl,使内容具有缓存性。4.避免空的
Stella981 Stella981
2年前
JS 对象数组Array 根据对象object key的值排序sort,很风骚哦
有个js对象数组varary\{id:1,name:"b"},{id:2,name:"b"}\需求是根据name或者id的值来排序,这里有个风骚的函数函数定义:function keysrt(key,desc) {  return function(a,b){    return desc ? ~~(ak
Stella981 Stella981
2年前
LNMP架构之防盗链、访问控制、php解析、代理的设置
本文索引:Ningx防盗链Ningx访问控制针对目录的访问控制针对文件的访问控制针对user\_agentNginx解析php相关配置访问报502错误分析Nginx代理Nginx防盗链修改虚拟主机配置文件
Wesley13 Wesley13
2年前
Java 中的方法
定义一个方法的语法是:访问修饰符 返回值类型 方法名(参数列表){方法体;}其中:1、访问修饰符:方法允许被访问的权限范围,可以是public、protected、private甚至可以省略 ,其中public表示该方法可以被其他任何代码调用, protected只有子类可用, pr
Wesley13 Wesley13
2年前
Java中的权限修饰符
Java中修饰符总结:1.访问控制修饰符 作用:用于控制被修饰变量、方法、类的可见范围. public的访问级别是最高的,其次是protected、默认和private. 成员变量和成员方法可以处于4个访问级别中的一个:公开、受保护、默认或私有. 
Wesley13 Wesley13
2年前
Java封装:访问控制
1、类的访问控制符有两种:public,default(默认的,什么都不用写)     default就是包内访问控制符。     当然对于内部类还可以有static修饰,而用static修饰的内部类叫作嵌套类。2、属性和方法的访问控制符有四种:private,default,protected,publi
Wesley13 Wesley13
2年前
Java面向对象浅谈
1\.方法重写override:参数列表必须完全与被重写方法的相同;返回类型必须完全与被重写方法的返回类型相同;访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。父类的成员方法只能被它的子类重写。声明