Maison > cadre php > PensezPHP > Attribution des autorisations de module dans thinkphp

Attribution des autorisations de module dans thinkphp

Libérer: 2020-05-23 09:06:25
avant
3202 Les gens l'ont consulté

Attribution des autorisations de module dans thinkphp

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 :

Attribution des autorisations de module dans thinkphp

Alors le contenu de la table think_auth_rule devrait ressembler presque à ceci :

Attribution des autorisations de module dans thinkphp

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('没有权限!');
        }
    }
}
Copier après la connexion

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{
//操作方法
}
?>
Copier après la connexion

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!

Étiquettes associées:
source:oschina.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal