国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
Yii2 rbac權(quán)限控制之rule教程詳解,yii2rbac
Heim php教程 php手冊 Yii2 rbac權(quán)限控制之rule教程詳解,yii2rbac

Yii2 rbac權(quán)限控制之rule教程詳解,yii2rbac

Jul 06, 2016 pm 02:24 PM
rbac yii2

Yii2 rbac權(quán)限控制之rule教程詳解,yii2rbac

在我們之前Yii2搭建后臺并實(shí)現(xiàn)rbac權(quán)限控制完整實(shí)例教程中,不知道你曾經(jīng)疑惑過沒有一個(gè)問題,rule表是做什么的,為什么在整個(gè)過程中我們都沒有涉及到這張表?

相信我不說,部分人也都會去嘗試,或百度或google,到頭來也會竹籃打水,這部分講解的內(nèi)容少之又少?。?/p>

對于一般的權(quán)限系統(tǒng)而言,我們之前做的rbac一般情況下是足夠的,即時(shí)沒有rule,相信你也能實(shí)現(xiàn)我們用rule實(shí)現(xiàn)的功能。

我們就以官網(wǎng)的例子給出一個(gè)具體的操作教程,看看這個(gè)神秘的rule到底是做什么的!

看需求:

我們有管理員和普通用戶,對于文章系統(tǒng)而言,我們允許管理員對文章的任何操作,但是只允許普通用戶創(chuàng)建文章和修改自己創(chuàng)建的文章,注意哦,是允許其修改自己創(chuàng)建的文章,不是不允許修改文章,也不是修改所有的文章!

看yii2 rbac rule怎么去實(shí)現(xiàn),重點(diǎn)是教大家怎么去使用這個(gè)rule,也解開眾多人心中的節(jié)!

在我們添加rule之前,需要先實(shí)現(xiàn) yii\rbac\Rule類的execute方法。

<&#63;php
namespace backend\components;
use Yii;
use yii\rbac\Rule;
class ArticleRule extends Rule
{
public $name = 'article';
public function execute($user, $item, $params)
{
// 這里先設(shè)置為false,邏輯上后面再完善
return false;
}
}

接著,我們才可以去后臺rule列表(/admin/rule/index)添加rule。具體添加方式可參考下方截圖

注意,上面這一步很多人會死在類名的添加上,記得加上我們ArticleRule文件所在的命名空間!

我們看第三步,該步驟也是很容易出錯(cuò)的地方!該篇教程請注意集中精力,前方高能!

我們訪問權(quán)限列表(/admin/permission/index)新增權(quán)限,該權(quán)限只針對文章的修改,隨后我們將其分配給用戶所屬角色

需要注意了,此處嚴(yán)重警告,這里新增加的權(quán)限所控制的路由也就是文章的更新操作(/article/update)分配給當(dāng)前用戶僅且一次,重復(fù)分配當(dāng)前操作給所屬角色或用戶,可能造成rule失效,失效原因則是覆蓋!

此刻再次刷新文章的更新頁面(/article/update/1),很顯然直接給我們了403 forbidden沒權(quán)限訪問的提示,也就是我們剛剛添加的rule生效了!如果此刻沒生效,請檢查上面所說的兩個(gè)注意點(diǎn)!

然后我們實(shí)現(xiàn)ArticleRule::execute方法內(nèi)業(yè)務(wù)邏輯,可參考如下:

class ArticleRule extends Rule
{
public $name = 'article';
/**
* @param string|integer $user 當(dāng)前登錄用戶的uid
* @param Item $item 所屬規(guī)則rule,也就是我們后面要進(jìn)行的新增規(guī)則
* @param array $params 當(dāng)前請求攜帶的參數(shù). 
* @return true或false.true用戶可訪問 false用戶不可訪問
*/
public function execute($user, $item, $params)
{
$id = isset($params['id']) &#63; $params['id'] : null;
if (!$id) {
return false;
}
$model = Article::findOne($id);
if (!$model) {
return false;
}
$username = Yii::$app->user->identity->username;
$role = Yii::$app->user->identity->role;
if ($role == User::ROLE_ADMIN || $username == $model->operate) {
return true;
}
return false;
}
}

最后就是驗(yàn)證了,到底我們所實(shí)現(xiàn)的rule認(rèn)證起作用了沒呢?

測試步驟如下可做參考:

1.當(dāng)前用戶創(chuàng)建一篇文章,記得記錄當(dāng)前文章的創(chuàng)建者,其角色是管理員,我們默認(rèn)User::ROLE_ADMIN

2.創(chuàng)建一個(gè)普通用戶,且也創(chuàng)建一篇文章,同時(shí)也需要記錄當(dāng)前文章的創(chuàng)建者

3.分別用管理員帳號和普通用戶登錄系統(tǒng)修改這兩篇文章,結(jié)論自然是滿足我們一開始所提的需求,管理員兩篇文章均可修改,普通用戶只能修改自己的文章

以上所述是小編給大家介紹的Yii2 rbac權(quán)限控制之rule教程詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對幫客之家網(wǎng)站的支持!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
So entfernen Sie Jquery in yii2 So entfernen Sie Jquery in yii2 Feb 17, 2023 am 09:55 AM

So entfernen Sie jquery aus yii2: 1. Bearbeiten Sie die Datei AppAsset.php und kommentieren Sie den Wert ?yii\web\YiiAsset“ in der Variablen $depends aus. 2. Bearbeiten Sie die Datei main.php und fügen Sie die Konfiguration als ?'yii“ hinzu. unter dem Feld ?components“ \web\JqueryAsset' => ['js' => [],'sourcePath' => null,]“, um das JQuery-Skript zu entfernen.

Implementierung der rollenbasierten Zugriffskontrolle (RBAC): Verwendung von PHP und RBAC Implementierung der rollenbasierten Zugriffskontrolle (RBAC): Verwendung von PHP und RBAC Jun 20, 2023 pm 10:39 PM

Angesichts der Beliebtheit von Internetanwendungen hoffen wir, die Daten innerhalb der Anwendung zu schützen, um sicherzustellen, dass sensible Daten nicht missbraucht oder gestohlen werden. Eine der L?sungen ist die Verwendung einer rollenbasierten Zugriffskontrolle (RBAC). Rollenbasierte Zugriffskontrolle (RBAC) ist ein Zugriffskontrollmodell, das auf der Beziehung zwischen Benutzern und Rollen basiert. Die Kernidee dieses Modells besteht darin, die Rolle des Benutzers mit dem Zugriffskontrollvorgang zu verknüpfen, anstatt den Zugriffskontrollvorgang direkt mit dem Benutzer zu verknüpfen. Dieser Ansatz verbessert die Flexibilit?t der Zugangskontrolle,

So anzeigen Sie Fehlereingaben in Yii2 an So anzeigen Sie Fehlereingaben in Yii2 an Apr 18, 2025 pm 11:09 PM

In YII2 gibt es zwei Hauptmethoden, um Fehleranforderungen anzuzeigen. Man kann yii :: $ app- & amp; gt; errorHandler- & amp; gt; exception () verwenden, um Fehler automatisch zu fangen und anzuzeigen, wenn eine Ausnahme auftritt. Das andere besteht darin, $ thderror () zu verwenden, wodurch ein Fehler angezeigt wird, wenn die Modellvalidierung fehlschl?gt und in der Ansicht über $ model- & amp; gt; getRors () zugegriffen werden kann. In der Ansicht k?nnen Sie verwenden, wenn ($ errors = $ model- & amp; gt; getRrors ())

So installieren Sie die Redis-Erweiterung mit dem YII2-Framework So installieren Sie die Redis-Erweiterung mit dem YII2-Framework May 26, 2023 pm 06:41 PM

1. Sie müssen die Windows-Version des Master-Zweigs von yii2-redis Composer herunterladen. 2. Entpacken und nach ?vendor/yiisoft“ kopieren. 3. ?yiisoft/yii2-redis“=>array(‘name‘=>‘yiisoft“ in den Erweiterungen hinzufügen .php unter yiisoft /yii2-redis','version'=>'2.0.

Ein paar ausgew?hlte CTF-übungen helfen Ihnen beim Erlernen des yii2-Frameworks! Ein paar ausgew?hlte CTF-übungen helfen Ihnen beim Erlernen des yii2-Frameworks! Feb 23, 2022 am 10:33 AM

In diesem Artikel werden Sie in das yii2-Framework eingeführt, einige CTF-übungen vorgestellt und diese zum Erlernen des yii2-Frameworks verwendet. Ich hoffe, dass es für alle hilfreich ist.

Wie verwalte ich RBAC-Berechtigungen in ThinkPHP6? Wie verwalte ich RBAC-Berechtigungen in ThinkPHP6? Jun 12, 2023 am 08:10 AM

Mit der kontinuierlichen Weiterentwicklung des Internets und der weit verbreiteten Nutzung von Anwendungen erfordern immer mehr Websites und Anwendungen eine Zugriffskontrolle, um die Sicherheit sensibler Informationen und Ressourcen zu gew?hrleisten. Mit der kontinuierlichen Weiterentwicklung des Projekts und der kontinuierlichen Erweiterung der Funktionen hat sich das RBAC-Berechtigungsverwaltungssystem zu einer sehr beliebten und ausgereiften L?sung entwickelt. In diesem Artikel stellen wir vor, wie Sie RBAC für die Berechtigungsverwaltung im ThinkPHP6-Framework verwenden. Was ist RBAC-Berechtigungsmanagement? RBAC (Role-BasedAccess

Meistern Sie die Rolle der PHP-Based Access Control (RBAC)-Authentifizierung Meistern Sie die Rolle der PHP-Based Access Control (RBAC)-Authentifizierung Aug 07, 2023 pm 03:39 PM

Beherrschen der Rolle in PHP – BasedAccessControl (RBAC) Authentifizierung Einführung: Authentifizierung ist eine wesentliche Funktion bei der Entwicklung von Webanwendungen. Role-BasedAccessControl (RBAC) ist ein h?ufig verwendeter Authentifizierungsmodus, der die Zugriffskontrolle rund um Rollen verwaltet und so die Verteilung von Berechtigungen flexibler und einfacher zu verwalten macht. In diesem Artikel wird die Implementierung der RBAC-Authentifizierung in PHP vorgestellt und relevante Codebeispiele bereitgestellt. 1. überblick über die Rolle von RBAC

Neueste Best Practices für Java JAAS Neueste Best Practices für Java JAAS Feb 23, 2024 pm 10:52 PM

1. JAAS-übersicht JavaJAAS (JavaAuthenticationandAuthorizationService) ist ein Framework für die Single-Sign-On-Integration (SSO) in mehreren Systemen, die rollenbasierte Zugriffskontrolle (RBAC) und die Autorisierungsverwaltung. Mit JAAS k?nnen Anwendungen den Zugriff auf Daten oder Ressourcen schützen und Zugriffskontrollmechanismen definieren. 2. Die neuesten Best Practices von JAAS 1. Verwenden Sie JAAS zur Authentifizierung. JAAS bietet zwei Hauptauthentifizierungsmethoden: Tokenbasierte Authentifizierung: Bei dieser Methode werden Token (z. B. Benutzername und Kennwort) verwendet, um die Identit?t des Benutzers zu überprüfen. Zertifizierungsbasierte Authentifizierung: Diese Methode verwendet eine Zertifizierung (z. B. ein digitales Zertifikat), um die Identit?t des Benutzers zu überprüfen. 2

See all articles