yii2权限控制rbac之rule详细讲解,yii2权限控制rbac_PHP教程
yii2权限控制rbac之rule详细讲解,yii2权限控制rbac
在我们之前yii2搭建后台以及rbac详细教程中,不知道你曾经疑惑过没有一个问题,rule表是做什么的,为什么在整个过程中我们都没有涉及到这张表?
相信我不说,部分人也都会去尝试,或百度或google,到头来也会竹篮打水,这部分讲解的内容少之又少啊!
对于一般的权限系统而言,我们之前做的rbac一般情况下是足够的,即时没有rule,相信你也能实现我们用rule实现的功能。
我们就以官网的例子给出一个具体的操作教程,看看这个神秘的rule到底是做什么的!
看需求:
我们有管理员和普通用户,对于文章系统而言,我们允许管理员对文章的任何操作,但是只允许普通用户创建文章和修改自己创建的文章,注意哦,是允许其修改自己创建的文章,不是不允许修改文章,也不是修改所有的文章!
看yii2 rbac rule怎么去实现,重点是教大家怎么去使用这个rule,也解开众多人心中的节!
在我们添加rule之前,需要先实现 yii\rbac\Rule类的execute方法。
<?<span>php namespace backend\components; </span><span>use</span><span> Yii; </span><span>use</span><span> yii\rbac\Rule; </span><span>class</span> ArticleRule <span>extends</span><span> Rule { </span><span>public</span> <span>$name</span> = 'article'<span>; </span><span>public</span> <span>function</span> execute(<span>$user</span>, <span>$item</span>, <span>$params</span><span>) { </span><span>//</span><span> 这里先设置为false,逻辑上后面再完善</span> <span>return</span> <span>false</span><span>; } }</span>
接着,我们才可以去后台rule列表(/admin/rule/index)添加rule。具体添加方式可参考下方截图
注意,上面这一步很多人会死在类名的添加上,记得加上我们ArticleRule文件所在的命名空间!
我们看第三步,该步骤也是很容易出错的地方!该篇教程请注意集中精力,前方高能!
我们访问权限列表(/admin/permission/index)新增权限,该权限只针对文章的修改,随后我们将其分配给用户所属角色
需要注意了,此处严重警告,这里新增加的权限所控制的路由也就是文章的更新操作(/article/update)分配给当前用户仅且一次,重复分配当前操作给所属角色或用户,可能造成rule失效,失效原因则是覆盖!
此刻再次刷新文章的更新页面(/article/update/1),很显然直接给我们了403 forbidden没权限访问的提示,也就是我们刚刚添加的rule生效了!如果此刻没生效,请检查上面所说的两个注意点!
然后我们实现ArticleRule::execute方法内业务逻辑,可参考如下:
<span>class</span> ArticleRule <span>extends</span><span> Rule { </span><span>public</span> <span>$name</span> = 'article'<span>; </span><span>/*</span><span>* * @param string|integer $user 当前登录用户的uid * @param Item $item 所属规则rule,也就是我们后面要进行的新增规则 * @param array $params 当前请求携带的参数. * @return true或false.true用户可访问 false用户不可访问 </span><span>*/</span> <span>public</span> <span>function</span> execute(<span>$user</span>, <span>$item</span>, <span>$params</span><span>) { </span><span>$id</span> = <span>isset</span>(<span>$params</span>['id']) ? <span>$params</span>['id'] : <span>null</span><span>; </span><span>if</span> (!<span>$id</span><span>) { </span><span>return</span> <span>false</span><span>; } </span><span>$model</span> = Article::findOne(<span>$id</span><span>); </span><span>if</span> (!<span>$model</span><span>) { </span><span>return</span> <span>false</span><span>; } </span><span>$username</span> = Yii::<span>$app</span>->user->identity-><span>username; </span><span>$role</span> = Yii::<span>$app</span>->user->identity-><span>role; </span><span>if</span> (<span>$role</span> == User::ROLE_ADMIN || <span>$username</span> == <span>$model</span>-><span>operate) { </span><span>return</span> <span>true</span><span>; } </span><span>return</span> <span>false</span><span>; } }</span>
最后就是验证了,到底我们所实现的rule认证起作用了没呢?
测试步骤如下可做参考:
[考虑目前国内网站大部分采集文章十分频繁,更有甚者不注明原文出处,原作者更希望看客们查看原文,以防有任何问题不能更新所有文章,避免误导!]
查看原文

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Il permet aux utilisateurs d'effectuer des opérations plus approfondies et de personnaliser le système. L'autorisation root est une autorisation d'administrateur dans le système Android. L'obtention des privilèges root nécessite généralement une série d'étapes fastidieuses, qui peuvent toutefois ne pas être très conviviales pour les utilisateurs ordinaires. En activant les autorisations root en un seul clic, cet article présentera une méthode simple et efficace pour aider les utilisateurs à obtenir facilement les autorisations système. Comprenez l'importance et les risques des autorisations root et disposez d'une plus grande liberté. Les autorisations root permettent aux utilisateurs de contrôler entièrement le système de téléphonie mobile. Renforcez les contrôles de sécurité, personnalisez les thèmes et les utilisateurs peuvent supprimer les applications préinstallées. Par exemple, la suppression accidentelle de fichiers système provoquant des pannes du système, une utilisation excessive des privilèges root et l'installation par inadvertance de logiciels malveillants sont également risquées. Avant d'utiliser les privilèges root

Certains dossiers ne sont pas toujours accessibles en raison des autorisations, et dans le guide d'aujourd'hui, nous allons vous montrer comment accéder aux dossiers utilisateur sur votre ancien disque dur sous Windows 11. Le processus est simple mais peut prendre un certain temps, parfois même des heures, selon la taille du lecteur, alors soyez extrêmement patient et suivez exactement les instructions de ce guide. Pourquoi ne puis-je pas accéder à mes dossiers utilisateur sur mon ancien disque dur ? Les dossiers utilisateur appartiennent à un autre ordinateur, vous ne pouvez donc pas les modifier. Vous ne disposez d'aucune autorisation sur le dossier autre que la propriété. Comment ouvrir les fichiers utilisateur sur un ancien disque dur ? 1. Devenez propriétaire du dossier et modifiez les autorisations. Recherchez l'ancien répertoire utilisateur, cliquez dessus avec le bouton droit et sélectionnez Propriétés. Accédez à "Un

Dans iOS17, Apple a plus de contrôle sur ce que les applications peuvent voir sur les photos. Lisez la suite pour savoir comment gérer l'accès aux applications par application. Sous iOS, le sélecteur de photos intégré à l'application d'Apple vous permet de partager des photos spécifiques avec l'application, tandis que le reste de votre photothèque reste privé. Les applications doivent demander l'accès à l'intégralité de votre photothèque et vous pouvez choisir d'accorder l'accès suivant aux applications : Accès restreint – Les applications ne peuvent voir que les images que vous pouvez sélectionner, ce que vous pouvez faire à tout moment dans l'application ou en accédant aux paramètres. > Confidentialité et sécurité > Photos pour afficher les images sélectionnées. Accès complet – L'application peut afficher des photos

1. Processeur Lors du choix d'une configuration informatique, le processeur est l'un des composants les plus importants. Pour jouer à des jeux comme CS, les performances du processeur affectent directement la fluidité et la vitesse de réponse du jeu. Il est recommandé de choisir les processeurs Intel Core i5 ou i7 car ils disposent de puissantes capacités de traitement multicœur et de hautes fréquences, et peuvent facilement répondre aux exigences élevées du CS. 2. Carte graphique La carte graphique est l'un des facteurs importants dans les performances du jeu. Pour les jeux de tir tels que CS, les performances de la carte graphique affectent directement la clarté et la fluidité de l'écran de jeu. Il est recommandé de choisir les cartes graphiques de la série NVIDIA GeForce GTX ou de la série AMD Radeon RX. Elles ont d'excellentes capacités de traitement graphique et une fréquence d'images élevée, et peuvent offrir une meilleure expérience de jeu. 3. Puissance de la mémoire.

Utilisez PHP pour contrôler la caméra : Analysez l'ensemble du processus, de la connexion à la prise de vue. Les applications de caméra sont de plus en plus répandues, comme les appels vidéo, les systèmes de surveillance, etc. Dans les applications Web, nous devons souvent contrôler et faire fonctionner des caméras via PHP. Cet article explique comment utiliser PHP pour réaliser l'ensemble du processus, de la connexion de la caméra à la prise de vue. Confirmez l'état de connexion de la caméra. Avant de commencer à utiliser la caméra, nous devons d'abord confirmer l'état de connexion de la caméra. PHP fournit une bibliothèque d'extensions vidéo pour faire fonctionner la caméra. Nous pouvons passer le code suivant

Comment définir l'accès aux autorisations dans l'espace QQ ? Vous pouvez définir l'accès aux autorisations dans l'espace QQ, mais la plupart des amis ne savent pas comment définir l'accès aux autorisations dans l'espace QQ. Voici ensuite le schéma expliquant comment définir l'accès aux autorisations dans l'espace QQ. éditeur pour les utilisateurs. Tutoriel texte, les utilisateurs intéressés viennent jeter un œil ! Tutoriel d'utilisation de QQ Espace QQ comment définir l'accès aux autorisations 1. Ouvrez d'abord l'application QQ, cliquez sur [Avatar] dans le coin supérieur gauche de la page principale 2. Développez ensuite la zone d'informations personnelles sur la gauche et cliquez sur la fonction [Paramètres] ; dans le coin inférieur gauche ; 3. Accédez à la page des paramètres. Faites glisser votre doigt pour trouver l'option [Confidentialité] ; 4. Ensuite, dans l'interface de confidentialité, sélectionnez le service [Paramètres d'autorisation] 5. Accédez ensuite à la dernière page et sélectionnez [Space Dynamics ; ]; 6. Configurez à nouveau dans QQ Space

Autorisations et stratégies de contrôle d'accès auxquelles vous devez prêter attention avant de créer un serveur Web sur CentOS Dans le processus de création d'un serveur Web, les autorisations et les stratégies de contrôle d'accès sont très importantes. La définition correcte des autorisations et des politiques de contrôle d'accès peut protéger la sécurité du serveur et empêcher les utilisateurs non autorisés d'accéder à des données sensibles ou de faire fonctionner le serveur de manière inappropriée. Cet article présentera les autorisations et les stratégies de contrôle d'accès auxquelles il faut prêter attention lors de la création d'un serveur Web sous le système CentOS, et fournira des exemples de code correspondants. Gestion des utilisateurs et des groupes Tout d'abord, nous devons créer un

Gestion des autorisations du forum Discuz : lisez le guide de configuration des autorisations Dans la gestion des forums Discuz, la configuration des autorisations est un élément crucial. Parmi eux, le paramétrage des autorisations de lecture est particulièrement important, car il détermine l'étendue du contenu que les différents utilisateurs peuvent voir dans le forum. Cet article présentera en détail les paramètres d'autorisation de lecture du forum Discuz et comment le configurer de manière flexible pour différents besoins. 1. Concepts de base des autorisations de lecture Dans le forum Discuz, les autorisations de lecture incluent principalement les concepts suivants qui doivent être compris : Autorisations de lecture par défaut : par défaut après l'enregistrement d'un nouvel utilisateur
