Verwendet die Authority-Berechtigungsklasse, die mit ThinkPHP geliefert wird! Die ThinkPHP-Version ist 3.1.3
Was ich erreichen möchte, ist die Zuweisung von Berechtigungen basierend auf dem Modulnamen. Dies kann natürlich auf den Operationsnamen erweitert werden.
Wenn ich diese Moduldateien habe:
Dann sollte der Inhalt der think_auth_rule-Tabelle fast so aussehen:
Zum Beispiel die UID meines angemeldeten Benutzers = 7.
Die Tabelle think_auth_group_access hat die ID = 9, die Gruppe = 6;
Die Tabelle think_auth_group hat die ID = 6, title=" Universe Administrator", Rules="4,5,8";
Dann muss ich nur noch Folgendes hinzufügen:
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('没有权限!'); } } }
zur Moduldatei CommAction.class.php und dann let other Die Moduldatei erbt diese Datei, zum Beispiel ActivityAction.class.php:
<?php class activityAction extends CommAction{ //操作方法 } ?>
Auf diese Weise kann ich normal darauf zugreifen, wenn ich auf die Module mit den IDs 4, 5 und 8 in think_auth_rules zugreife ;
Wenn Sie auf Module mit den IDs 10, 11, 12 und 13 zugreifen, springt es zu einer Seite, die fehlschlägt und Sie auffordert, dass keine Berechtigung vorliegt~
Jetzt das Problem, auf das ich stoße Die Verwendung dieser Berechtigungsklasse lautet: think_auth_rule table. Ich muss den Inhalt manuell hinzufügen. Es wäre großartig, wenn er automatisch generiert werden könnte.
Empfohlenes Tutorial: „TP5“
Das obige ist der detaillierte Inhalt vonZuweisung von Modulberechtigungen in thinkphp. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!