Utilise la classe d'autorisation Authority fournie avec ThinkPHP ! La version ThinkPHP est 3.1.3
Ce que je veux réaliser, c'est attribuer des autorisations en fonction du nom du module. Bien sûr, cela peut être étendu au nom de l'opération.
Si j'ai ces fichiers de module :
Alors le contenu de la table think_auth_rule devrait ressembler presque à ceci :
Par exemple, l'uid=7 de mon utilisateur connecté.
La table think_auth_group_access a uid=9, group=6;
La table think_auth_group a id=6, title=" Universe Administrator", Rules="4,5,8";
Ensuite, il me suffit d'ajouter :
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('没有权限!'); } } }
au fichier du module CommAction.class.php, et ensuite let other Le fichier module hérite de ce fichier, par exemple ActivityAction.class.php:
<?php class activityAction extends CommAction{ //操作方法 } ?>
De cette façon, lorsque j'accède aux modules avec les ID 4, 5 et 8 dans think_auth_rules, je peux y accéder normalement ;
Si vous accédez aux modules avec les ID 10, 11, 12 et 13, il passera à une page qui échoue et vous indiquera qu'il n'y a pas d'autorisation~
Maintenant, le problème que je rencontre lorsque l'utilisation de cette classe d'autorisation est : table think_auth_rule. Je dois ajouter le contenu manuellement. Cette partie est développée par attributs. Ce serait formidable si elle pouvait être générée automatiquement.
Tutoriel recommandé : "TP5"
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!