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="Universe Manager",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 중국어 웹사이트의 기타 관련 기사를 참조하세요!