cakephp 权限控制列表( acl ) app 管理后台
DESCRIPTION
目录. CakePHP 权限控制列表( ACL ) APP 管理后台. authenticate (authentication)与authorize(authorization) authorize基于 authenticate. ACL 简介 - 认证与授权. A RO与ACO,aros_acos. ARO. ACO. ACL 简介. aros_acos. A CL特点. 基于 controller 验证: $this->Auth->authorize = array('Controller'); - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/1.jpg)
目录
• CakePHP 权限控制列表( ACL )
• APP 管理后台
![Page 2: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/2.jpg)
ACL 简介 - 认证与授权
• authenticate ( authentication )与 authorize ( authorization )
• authorize 基于 authenticate
![Page 3: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/3.jpg)
ACL 简介
• ARO 与 ACO , aros_acos
AROACO
aros_acos
![Page 4: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/4.jpg)
ACL 简介
• ACL 特点
• 基于 controller 验证: $this->Auth->authorize = array('Controller');
• 基于 action 验证: $this->Auth->authorize = array( 'Actions' => array('actionPath' => controllers'));
• 基于 crud 验证: $this->Auth->authorize = array('Crud');
![Page 5: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/5.jpg)
ACL 简介
• ACL 特点(基于 action 的权限验证)
•$this->Auth->allow('actionName'); 跳过认证,同时也跳过了权限验证
•所有的 controller 、 action 必须在权限树里面(跳过权限验证的除外)
•无授权 == 没有权限
•向上(树的根)查询,直到查到控制( allow 或者 deny )为止(默认controller 无权限)
![Page 6: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/6.jpg)
ACL 简介
• 树
![Page 7: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/7.jpg)
APP 管理后台 - 权限树(北京)
beijing
AppMessages
systemMessageAdd
grade
xiaoxueOne yuwen
subject
xiaoxueTwo shuxue yingyu
root
controller
action
![Page 8: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/8.jpg)
APP 管理后台 - 权限树(北京)
beijing
AppMessages
systemMessageAdd
grade
xiaoxueOne yuwen
subject
xiaoxueTwo shuxue yingyu
root
controller
action
默认( controller )
![Page 9: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/9.jpg)
APP 管理后台 - 权限树(北京)
beijing
AppMessages
systemMessageAdd
grade
xiaoxueOne yuwen
subject
xiaoxueTwo shuxue yingyu
root
controller
action
扩展权限树
![Page 10: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/10.jpg)
APP 管理后台 - 权限
•//core.phpConfigure::write('Acl.classname', 'DbAcl');Configure::write('Acl.database', 'default');
•$this->Auth->authorize = array( 'Actions' => array('actionPath' => 'beijing'));
权限配置
![Page 11: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/11.jpg)
APP 管理后台 - 权限
// 验证权限的方法$this->Acl->check($aro, $aco, $action)
// 检查北京系统消息的添加权限(用户 ID==2 的用户)$this->Acl->check(array('model' => 'User', 'foreign_key' => 2),
'beijing/AppMessages/systemMessageAdd/', *)
// 检查北京系统消息添加权限中的数学学科的添加权限(角色 ID==2 的用户)$this->Acl->check(array('model' => 'Role', 'foreign_key' => 2), 'beijing/AppMessages/systemMessageAdd/subject/shuxue',
*)
权限验证
![Page 12: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/12.jpg)
APP 管理后台 - 权限
// 取消(北京分校)角色 ID==3 的所有用户添加系统消息选择年级条件的权限$this->Acl->deny(array('model' => 'Role', 'foreign_key' => 3),
'beijing/AppMessages/systemMessageAdd/grade');
// 授予(北京分校)角色 ID==3 的所有用户添加系统消息选择小学三年级条件的权限$this->Acl->deny(array('model' => 'Role', 'foreign_key' => 3), 'beijing/AppMessages/systemMessageAdd/grade/xiaoxueThree'
);
授权与取消授权
![Page 13: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/13.jpg)
APP 管理后台 - 权限
权限树初始化工具
1.CakePlugin::load('AclExtras');•./Console/cake AclExtras.AclExtras aco_sync•https://github.com/markstory/acl_extras
2.app/Console/Command/AcoCheckShell.php•./Console/cake aco_check•https://github.com/codingthoughts/cakephp-aco-check
![Page 14: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/14.jpg)
APP 管理后台 - 权限
权限说明
•单层的角色授权•分校的权限授权与取消授权统一•action 的权限控制无需代码•权限树的节点与数据库 alias 字段对应•alias 必须在兄弟间唯一•alias 不能是中文
![Page 15: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/15.jpg)
APP 管理后台 - 消息
说明
•系统消息与 PUSH 消息的区别•由脚本执行定时推送(默认为 5 分钟;无立即推送)•PUSH 消息的特点
•不能保证 100% 成功•内容过长则直接丢弃( 256 字节)•遇到无法推送的 Token ,则后面的 Token 全部放弃推
送•提供 feedback 服务(发现 -> 剔除 -> 发现 -> 再剔除)•循环 PUSH (仿真以 2 循环,线上以 50 循环)
![Page 16: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/16.jpg)
APP 管理后台 - 版本控制及接口
说明(全国版)
•“ 强制升级”与“是否可用”都区分系统,设备与渠道
•升级的版本中存在“强制升级”则提示强制升级,且升级到“可用”版本的最新版
![Page 17: CakePHP 权限控制列表( ACL ) APP 管理后台](https://reader031.vdocuments.site/reader031/viewer/2022012316/5681351a550346895d9c7072/html5/thumbnails/17.jpg)
谢谢观赏