首页 >php框架 >ThinkPHP > 正文

thinkphp中的模块权限分配

转载2020-05-23 09:06:250731
第12期线上培训班

使用的是ThinkPHP自带的Authority权限类!ThinkPHP版本是3.1.3的

我要实现的是根据模块名分配权限,当然,这个可以扩展到操作名。

假如我有这些模块文件:

1.jpg

那么 think_auth_rule表的内容差不多应该是这样的:

2.jpg

比如,我的登录用户的uid=7.

think_auth_group_access 表中有 uid=9 ,group=6;

think_auth_group 表中有 id=6,title="宇宙管理员",rules="4,5,8";

那么,我只要再模块文件CommAction.class.php中,添加:

class CommAction extends Action{
    public function __construct(){
        parent::__construct();
        $this->assign('waitSecond',2);
        $this->checkRight();
    }


    private function checkRight(){
        import('ORG.Util.Authority');
        $auth=new Authority();
        $r = $auth->getAuth(MODULE_NAME,session('S_USER_ID'));
        if(!$r){
            $this->error('没有权限!');
        }
    }
}

然后,再让其它的模块文件继承这个文件,比如,ActivityAction.class.php:

<?php
class activityAction extends CommAction{
//操作方法
}
?>

就这样,当我访问think_auth_rules中id是4,5,8模块的时候,就可以正常访问;

如果访问id是10,11,12,13的模块,就会跳转到失败,提示没有权限的页面了~

现在我用这个权限类遇到的问题是:think_auth_rule表中的内容需要我手动去添加,这块是属性开发的,如果能自动生成就好了。

推荐教程:《TP5

以上就是thinkphp中的模块权限分配的详细内容,更多请关注php中文网其它相关文章!

php中文网最新课程二维码
  • 相关标签:thinkphp
  • 本文转载于:OSCHINA,如有侵犯,请联系a@php.cn删除
  • 相关文章

    相关视频


    网友评论

    文明上网理性发言,请遵守 新闻评论服务协议

    我要评论
  • 专题推荐

    推荐视频教程
  • thinkphp3.2 基础视频教程thinkphp3.2 基础视频教程
  • 最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)最新ThinkPHP 5.1全球首发视频教程(60天成就PHP大牛线上培训班课)
  • ThinkPHP6.0极速入门(视频教程)ThinkPHP6.0极速入门(视频教程)
  • 视频教程分类