J'essaye d'appliquer une structure utilisateur hiérarchique simple (par ex: super-admin, admin, user) dans mon application web Yii. Puis-je le faire en utilisant AccessControl par défaut de Yii ou est-il nécessaire de l'implémenter dans Rbac.Implémentation RBAC dans le framework Yii
2
A
Répondre
6
Vous pouvez le faire en utilisant le contrôle d'accès par défaut de Yii.
Ce que je fais normalement quand je n'utilise pas RBAC est de créer un champ dans la base de données ACL User qui contient des valeurs par exemple. Admin, Super Admin etc et puis une fois connecté, je cède à la Yii :: app() - variable de session utilisateur dans componetnst/UserIdentity.php "Avis $this->setState('accessCode',$user->accessCode);
"
class UserIdentity extends CUserIdentity
{
private $_id;
public function authenticate()
{
$username=strtolower($this->username);
$user=Users::model()->find('LOWER(userName)=?',array($username));
if($user===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if(!$user->validatePassword($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$user->u_id;
$this->username=$user->userName;
$this->setState('accessCode',$user->accessCode);
$this->setState('userName',$this->username);
$this->setState('id',$this->_id);
$this->setState('accessCode',$user->accessCode);
$this->errorCode=self::ERROR_NONE;
}
return $this->errorCode==self::ERROR_NONE;
}
public function getId(){
return $this->_id;
}
}
Pas dans mes contrôleurs d'avoir quelque chose comme
public function accessRules()
{
return array(
array('allow',
'actions'=>array('admin'),
'expression'=>'Yii::app()->user->accessCode & 8',
),
array('allow',
'actions'=>array('create','update'),
'expression'=>'Yii::app()->user->accessCode & 1',
),
array('allow',
'actions'=>array('view'),
'expression'=>'Yii::app()->user->accessCode & 4',
),
array('allow',
'actions'=>array('delete'),
'expression'=>'Yii::app()->user->accessCode & 2',
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
Notez l'expression fonctionne comme une instruction if
J'espère que cette aide
Questions connexes
- 1. Implémentation RBAC dans le framework Yii
- 2. bases de RBAC pour Yii Framework
- 3. Quelle est la vitesse Yii RBAC?
- 4. RBAC dans Yii, Invité non autorisé
- 5. Implémentation RBAC hiérarchique en PHP?
- 6. Dans le framework Yii, accessControl et accessRules sont-ils indépendants de RBAC?
- 7. Comment renouveler vos attributions RBAC yii
- 8. Yii cadre modèle RBAC, essayant de comprendre
- 9. utilisateurs/rôles/permissions implémentation en utilisant le framework Yii
- 10. Yii RBAC obtenir toutes les opérations attachées au rôle spécifié?
- 11. Modèles dans Yii Framework?
- 12. Yii OAuth Implémentation
- 13. Yii implémentation de l'héritage personnalisé
- 14. 2 onglets dans le framework yii
- 15. Pourquoi utiliser Chtml dans le framework yii
- 16. Dans Zend Framework 2 RBAC ou ACL. Quel est recommandé?
- 17. Mail Extension dans yii-framework?
- 18. RBAC mise en œuvre
- 19. Yii Framework Extension
- 20. Yii framework: showdialogbox (CJuiDialog)
- 21. Yii Framework Database Relationship
- 22. Intégrer le moteur de template PHPTAL dans le framework yii
- 23. Afficher les fichiers sur le framework Yii
- 24. Yii Framework: Générateur de formulaire
- 25. Créer AccessRules dans des modules Yii Framework
- 26. affecter un utilisateur un rôle de l'administrateur crée un utilisateur, dans Yii Rbac extension Droits
- 27. Erreur d'inclusion dans Yiiibase.php - Yii Framework
- 28. Masquage des paramètres dans createURL - YII Framework
- 29. "objets" dans un système RBAC
- 30. Yii Framework: Spécifier defaultScheme dans le validateur d'URL
Merci un dude beaucoup !!! – Rohit
@Rohit - S'il vous plaît accepter la réponse ;-) – Roland
Juste faire attention à l'approche de le stocker dans la session: Si vous voulez le révoquer pour un utilisateur et il est encore connecté, il aura toujours les autorisations jusqu'à la la session actuelle est détruite. – Blizz