17
目目 • CakePHP 目目目目目目ACL • APP 目目目目

CakePHP 权限控制列表( ACL ) APP 管理后台

Embed Size (px)

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 Presentation

Citation preview

Page 1: CakePHP 权限控制列表( ACL ) APP 管理后台

目录

• CakePHP 权限控制列表( ACL )

• APP 管理后台

Page 2: CakePHP 权限控制列表( ACL ) APP 管理后台

ACL 简介 - 认证与授权

• authenticate ( authentication )与 authorize ( authorization )

• authorize 基于 authenticate

Page 3: CakePHP 权限控制列表( ACL ) APP 管理后台

ACL 简介

• ARO 与 ACO , aros_acos

AROACO

aros_acos

Page 4: CakePHP 权限控制列表( ACL ) APP 管理后台

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 管理后台

ACL 简介

• ACL 特点(基于 action 的权限验证)

•$this->Auth->allow('actionName'); 跳过认证,同时也跳过了权限验证

•所有的 controller 、 action 必须在权限树里面(跳过权限验证的除外)

•无授权 == 没有权限

•向上(树的根)查询,直到查到控制( allow 或者 deny )为止(默认controller 无权限)

Page 6: CakePHP 权限控制列表( ACL ) APP 管理后台

ACL 简介

• 树

Page 7: CakePHP 权限控制列表( ACL ) APP 管理后台

APP 管理后台 - 权限树(北京)

beijing

AppMessages

systemMessageAdd

grade

xiaoxueOne yuwen

subject

xiaoxueTwo shuxue yingyu

root

controller

action

Page 8: CakePHP 权限控制列表( ACL ) APP 管理后台

APP 管理后台 - 权限树(北京)

beijing

AppMessages

systemMessageAdd

grade

xiaoxueOne yuwen

subject

xiaoxueTwo shuxue yingyu

root

controller

action

默认( controller )

Page 9: CakePHP 权限控制列表( ACL ) APP 管理后台

APP 管理后台 - 权限树(北京)

beijing

AppMessages

systemMessageAdd

grade

xiaoxueOne yuwen

subject

xiaoxueTwo shuxue yingyu

root

controller

action

扩展权限树

Page 10: CakePHP 权限控制列表( ACL ) APP 管理后台

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 管理后台

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 管理后台

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 管理后台

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 管理后台

APP 管理后台 - 权限

权限说明

•单层的角色授权•分校的权限授权与取消授权统一•action 的权限控制无需代码•权限树的节点与数据库 alias 字段对应•alias 必须在兄弟间唯一•alias 不能是中文

Page 15: CakePHP 权限控制列表( ACL ) APP 管理后台

APP 管理后台 - 消息

说明

•系统消息与 PUSH 消息的区别•由脚本执行定时推送(默认为 5 分钟;无立即推送)•PUSH 消息的特点

•不能保证 100% 成功•内容过长则直接丢弃( 256 字节)•遇到无法推送的 Token ,则后面的 Token 全部放弃推

送•提供 feedback 服务(发现 -> 剔除 -> 发现 -> 再剔除)•循环 PUSH (仿真以 2 循环,线上以 50 循环)

Page 16: CakePHP 权限控制列表( ACL ) APP 管理后台

APP 管理后台 - 版本控制及接口

说明(全国版)

•“ 强制升级”与“是否可用”都区分系统,设备与渠道

•升级的版本中存在“强制升级”则提示强制升级,且升级到“可用”版本的最新版

Page 17: CakePHP 权限控制列表( ACL ) APP 管理后台

谢谢观赏