使用的是ThinkPHP自帶的Authority權限類別! ThinkPHP版本是3.1.3的
我要實現的是根據模組名稱分配權限,當然,這個可以擴展到操作名。
假如我有這些模組檔案:
那麼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中的模組權限分配的詳細內容。更多資訊請關注PHP中文網其他相關文章!