首頁  >  文章  >  php框架  >  thinkphp中的模組權限分配

thinkphp中的模組權限分配

尚
轉載
2020-05-23 09:06:253135瀏覽

thinkphp中的模組權限分配

使用的是ThinkPHP自帶的Authority權限類別! ThinkPHP版本是3.1.3的

我要實現的是根據模組名稱分配權限,當然,這個可以擴展到操作名。

假如我有這些模組檔案:

thinkphp中的模組權限分配

那麼think_auth_rule表的內容差不多應該是這樣的:

thinkphp中的模組權限分配

例如,我的登入使用者的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中文網其他相關文章!

陳述:
本文轉載於:oschina.net。如有侵權,請聯絡admin@php.cn刪除