筋斗云接口编程 / 对象型接口(三)

绑定访问控制类与权限

前面在讲函数型接口时,提到权限检查用checkAuth函数来实现。
在对象型接口中,通过绑定访问控制类与权限,来实现不同角色通过不同的类来控制。

比如前例中ApiLog对象接口允许员工登录(AUTH_EMP)后访问,只要定义:

class AC2_ApiLog extends AccessControl
{
    ...
}

那么为什么AC2前缀对应员工权限呢?
在api.php中,我们查看一个重要回调函数onCreateAC,由它来实现类与权限的绑定:

function onCreateAC($tbl)
{
    $cls = null;
    if (hasPerm(AUTH_USER))
    {
        $cls = "AC1_$tbl";
        if (! class_exists($cls))
            $cls = "AC_$tbl";
    }
    else if (hasPerm(AUTH_EMP))
    {
        $cls = "AC2_$tbl";
    }
    return $cls;
}

该函数传入一个表名(或称对象名,比如”ApiLog”),根据当前用户的角色,返回一个类名,比如”AC1_ApiLog”,”AC2_ApiLog”这些,如果返回null,则框架尝试使用类”AC_ApiLog”。
如果发现指定的类不存在,则不允许访问该对象接口。

在该段代码中,定义了用户登录后用”AC1”前缀的类,如果类不存在,可以再尝试用”AC”前缀的类,如果再不存在则不允许访问接口;
如果是员工登录,则只用”AC2”前缀的类,如果类不存在,则不允许访问接口。

关于hasPerm的用法及权限定义,可以参考前面章节“权限定义”及“登录与退出”。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
功能描述 筋斗云在线测评系统,主要包括:试题展示、用户管理、成绩查询、历史记录、试题管理、智能组卷、智能分析。  电子商务系统功能描述 试题展示:实现试题的选择、展示和提交。 用户管理:实现用户的注册、登录、修改密码和修改个人信息。 成绩查询:实现成绩查询,错题解析和成绩分析报告。 历史记录:实现对历史测评的查询和回顾,对错题智能提示。 试题管理:实现动态向数据库增加、删除、修改和查询试题功能。 智能组卷:实现根据制定条件自动选题,可以动态更改试题。 智能分析:实现对用户的答题记录,智能分析错题,显示分析报告。 本系统采用SSM框架,使用了redis技术,双服务器;’ 本系统页面设计精美,特效很多; 本测评系统实现了多角色多用户的切换,实现了试卷的创建,智能组卷,无聊刷题,考试情况的分析统计等功能,分为前台后台两部分。 通过设置tomcat,修改数据库配置文件后即可使用, 本系统包括测评系统主程序源代码,数据库文件,需求文档,数据库设计包含在需求文档中,十分详细, 囊括了功能结构图,用例图,业务流程图,ER结构图,清晰明了,足以满足您在技术上的需求或者直接进行使用,您可以在参考原项目的基础上进行修改,或者直接录入数据信息进行使用。 本系统属于原创代码,如您需要在其他位置进行发表,请注明出处。谢谢使用!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值