栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

yii2权限curd

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

yii2权限curd

'authManager' =>[
            'class'=>yiirbacDbManager::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";


;
;
;
;

--
-- 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;
;
;
;

第一步:
解析:

$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=commonmodelsUser::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());
		//你所登录的账号
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/734197.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号