Controller中进行权限校验的方式:
第一种: 通过can函数来判断是否有某个权限的执行权限,如果没有则抛出未授权的异常,通常在Controller的Action开头使用,如下
/** * 发布商品 */ public function actionAdd () { if(! can('shop-goods-add')) { throw new \common\base\UnauthorizedException(); } ......... }
第二种:重写Controller的auths函数,返回访问权限配置:
/** * 权限校验 * * {@inheritDoc} * * @see \common\web\Controller::auths() */ public function auths () { // 发布商品 $auths['add|add-images|success'] = 'shop-goods-add'; // 编辑商品 $auths['edit|edit-images|edit-gift'] = 'shop-goods-edit'; // 获取运费模板列表:必须拥有发布或者编辑的权限 $auths['freights'] = [ 'shop-goods-add', 'shop-goods-edit' ]; // 商品上下架 $auths['offsale|onsale'] = 'shop-goods-sale'; // 商品删除 $auths['delete'] = 'shop-goods-delete'; return $auths; }
现在主要对第二种进行详细解读:
1.模式:$auths[A] = B;
其中 A 为访问Action的Id,例如:actionAdd则A为add,actionAddGoods则A为add-goods;如果需要多个action对应一套权限代码,则多个actionId间用“|”分割。
其中 B 为权限代码,可以为字符串,多个权限可以用数组表示,并且多个权限间的逻辑关系为“或”,只要有用户拥有其中一个权限即可进行访问操作。
2.公式:$auths[A|A|A|A|A] = [B,B,B,B,B]
相关推荐
Yii 2.0 权威指南 本教程的发布遵循 Yii 文档使用许可. 版权所有 2014 (c) Yii Software LLC. 介绍 已定稿 关于 Yii 已定稿 从 Yii 1.1 升级 入门 已定稿 安装 Yii 已定稿 运行应用 已定稿 第一次问候 已定稿 ...
Yii2参考手册,Yii2中文手册完整版
yii2 swoole:让yii2运行在swoole上 , 运行在swoole上的yii2是运行在php-fpm上yii2的5倍以上
因为YII2不支持中文验证码,所以写了一个,欢迎下载 支持成语产生。 使用说明在PSCaptcha.php文件中 压缩包内带字体,所以有些大 文件放到 common\libs\captcha 目录,没有就新建 * PSCaptcha 产生一个验证码图片. ...
Yii2中文手册CHM版
去返网分享yii权限管理,yii权限,以及函数的讲解分析
该资源包含yii2中文开发手册和yii2英文开发手册
完整的yii2框架中文手册: 1. 易于安装 2. 利用现代技术 3. 高度可扩展性 4. 鼓励测试 5. 简化的安全方案 6. 缩短开发时间 7. 很容易通过调整获得更好的性能 Yii可以帮助你快速的创建现代的web应用程序,并确保它们...
Yii2中文手册(完整版).
主要介绍了yii2控制器Controller Ajax操作方法,结合实例形式分析了Yii控制器调用ajax的相关技巧,需要的朋友可以参考下
Yii采用严格的OOP编写,并有着完善的库引用以及全面的教程。从 MVC,DAO/ActiveRecord,widgets,caching,等级式RBAC,Web服务,到主题化,I18N和L10N,Yii提供了今日Web 2.0应用开发所需要的几乎一切功能。事实上...
yii2 创建表单 笔记
yii2-oauth2-server, 用于实现OAuth2服务器的包装器( https yii2-oauth2-server用于实现OAuth2服务器的包装器( https://github.com/bshaffer/oauth2-server-php 插件)安装安装这里扩展的首选方法是通过 Composer 。...
yii中文手册,你可以通过两种方式安装 Yii:使用 Composer 或下载一个归档文件。推荐使用前者,这样只需执行一条 ...注意:和 Yii 1 不同,以标准方式安装 Yii 2 时会同时下载并安装框架本身 和一个应用程序的基本骨架。
演示版要求PHP 7.3或更高版本Yii 2.x安装composer require --dev jamband/yii2-schemadump用法在config / console.php中添加以下内容: return [ . . . 'components' => [ . . . ], 'controllerMap' => [ 'migrate' ...
Yii2中文手册(完整版)
yii2命令行中使用migration备份和还原数据库
yii2-easy-wechat:应用于yii2的WeChatSDK
yii2 advanced
yii 2 中文手册 电子书epub。可以在kindle上使用。