如何实现ThinkPHP框架下的模块权限精确分配?

2026-04-28 17:042阅读0评论SEO基础
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计417个文字,预计阅读时间需要2分钟。

如何实现ThinkPHP框架下的模块权限精确分配?

使用的是ThinkPHP自带的Authority权限类!ThinkPHP版本是3.1.3的。我要实现的是根据数据模块名称分配权限,当然,这个可以扩展到操作名。例如,我有这些模块文件:+ 那么think_auth_rule表的内容差异不大。

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

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

假如我有这些模块文件:

如何实现ThinkPHP框架下的模块权限精确分配?

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

比如,我的登录用户的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中的模块权限分配的详细内容,更多请关注自由互联其它相关文章!

标签:

本文共计417个文字,预计阅读时间需要2分钟。

如何实现ThinkPHP框架下的模块权限精确分配?

使用的是ThinkPHP自带的Authority权限类!ThinkPHP版本是3.1.3的。我要实现的是根据数据模块名称分配权限,当然,这个可以扩展到操作名。例如,我有这些模块文件:+ 那么think_auth_rule表的内容差异不大。

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

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

假如我有这些模块文件:

如何实现ThinkPHP框架下的模块权限精确分配?

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

比如,我的登录用户的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中的模块权限分配的详细内容,更多请关注自由互联其它相关文章!

标签: