您当前的位置: 首页 > 

暂无认证

  • 2浏览

    0关注

    94592博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

yii2权限curd

发布时间:2022-02-12 00:57:29 ,浏览量:2

在这里插入图片描述

'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()); //你所登录的账号 
关注
打赏
1655516835
查看更多评论
立即登录/注册

微信扫码登录

0.1004s