yii2权限curd

在这里插入图片描述

'authManager' =>[
            'class'=>\yii\rbac\DbManager::className()
        ]
composer selfupdate
composer update yiisoft/yii2-composer --no-plugins
yii migrate --migrationPath=@yii/rbac/migrations
-- phpMyAdmin SQL Dump
-- version 4.5.1
-- http://www.phpmyadmin.net
--
-- Host: 127.0.0.1
-- Generation Time: 2022-02-10 08:08:14
-- 服务器版本: 10.1.13-MariaDB
-- PHP Version: 5.6.21

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `fff`
--

-- --------------------------------------------------------

--
-- 表的结构 `user`
--

CREATE TABLE `user` (
  `id` int(11) NOT NULL,
  `username` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `auth_key` varchar(32) COLLATE utf8_unicode_ci NOT NULL,
  `password_hash` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `password_reset_token` varchar(255) COLLATE utf8_unicode_ci DEFAULT NULL,
  `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `status` smallint(6) NOT NULL DEFAULT '10',
  `created_at` int(11) NOT NULL,
  `updated_at` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

--
-- 转存表中的数据 `user`
--

INSERT INTO `user` (`id`, `username`, `auth_key`, `password_hash`, `password_reset_token`, `email`, `status`, `created_at`, `updated_at`) VALUES
(1, 'cyg', '123456', '123456', NULL, '', 10, 0, 0);

--
-- Indexes for dumped tables
--

--
-- Indexes for table `user`
--
ALTER TABLE `user`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `username` (`username`),
  ADD UNIQUE KEY `email` (`email`),
  ADD UNIQUE KEY `password_reset_token` (`password_reset_token`);

--
-- 在导出的表使用AUTO_INCREMENT
--

--
-- 使用表AUTO_INCREMENT `user`
--
ALTER TABLE `user`
  MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

第一步:
解析:

$authoBbj=Yii::$app->authManager;
//获取这个权限对象
		$permission=$authoBbj->createPermission("创建");
//建立一个创建权限
		$permission->description="这个权限的作用是创建";
		//描述这个权限的作用
		$authoBbj->add($permission);
		//注册进权限表中

效果图:
在这里插入图片描述第二步:

$authoBbj=Yii::$app->authManager;
//获取这个权限对象
		$role=$authoBbj->createRole("总经理");
		//创建一个总经理角色
		$role->description="我是总经理角色";
		//描述这个角色是什么
		$authoBbj->add($role);
		//注册进权限表中.

在这里插入图片描述
第三步:

$role=Yii::$app->authManager->getRole("总经理");
//获取角色
$permission=Yii::$app->authManager->getPermission("创建");
//获取权限
Yii::$app->authManager->addChild($role,$permission);
//把权限给角色

在这里插入图片描述

第四步:

$user=\common\models\User::findOne(['id'=>1]);
		Yii::$app->user->login($user);
		//代码登录

第五步:

$authoBbj=Yii::$app->authManager;
		$role=$authoBbj->getRole("总经理");
		$authoBbj->assign($role,Yii::$app->user->id);
		//把总经理这个角色给user表里面的登录id

在这里插入图片描述

第六步:
判断user表里面的用户1是否具备总经理这个角色

$Role = Yii::$app->authManager->getRolesByUser(Yii::$app->user->getId());
		var_dump($Role);

在这里插入图片描述
第七步:
判断用户表的用户1是否具备创建这个权限

var_dump(Yii::$app->user->can('创建'));

在这里插入图片描述第八步:
获取角色拥有的权限

$auth=Yii::$app->authManager;
	
$permissions = $auth->getPermissionsByRole('总经理');
var_dump($permissions);

在这里插入图片描述
第九步:
获取用户被赋予的角色

$auth=Yii::$app->authManager;
	
$roles = $auth->getAssignments(Yii::$app->user->getId());
var_dump($roles);

在这里插入图片描述

第十步:
更新权限 角色

$authoBbj=Yii::$app->authManager;
		$new_permission=$authoBbj->createPermission("我是更新权限");
		$new_role=$authoBbj->createRole("经理");
		$authoBbj->update("创建",$new_permission);
		$authoBbj->update("总经理",$new_role);

在这里插入图片描述第十一步:
删除权限 角色

$authoBbj=Yii::$app->authManager;
		$permission=$authoBbj->createPermission("我是更新权限");
		$authoBbj->remove($permission);
		$role=$authoBbj->createRole("经理");
		$authoBbj->remove($role);

在这里插入图片描述
第十一步:
删除角色下的所有权限

$authoBbj=Yii::$app->authManager;
		$authoBbj->removeChildren("你所定义的角色");

第十二步:
//收回用户拥有的所有角色

 $auth=Yii::$app->authManager;
		$auth->revokeAll(Yii::$app->user->getId());
		//你所登录的账号
  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贵哥的编程之路(热爱分享)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值