Upload
alexis-woodard
View
129
Download
10
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
目录
• CakePHP 权限控制列表( ACL )
• APP 管理后台
ACL 简介 - 认证与授权
• authenticate ( authentication )与 authorize ( authorization )
• authorize 基于 authenticate
ACL 简介
• ARO 与 ACO , aros_acos
AROACO
aros_acos
ACL 简介
• ACL 特点
• 基于 controller 验证: $this->Auth->authorize = array('Controller');
• 基于 action 验证: $this->Auth->authorize = array( 'Actions' => array('actionPath' => controllers'));
• 基于 crud 验证: $this->Auth->authorize = array('Crud');
ACL 简介
• ACL 特点(基于 action 的权限验证)
•$this->Auth->allow('actionName'); 跳过认证,同时也跳过了权限验证
•所有的 controller 、 action 必须在权限树里面(跳过权限验证的除外)
•无授权 == 没有权限
•向上(树的根)查询,直到查到控制( allow 或者 deny )为止(默认controller 无权限)
ACL 简介
• 树
APP 管理后台 - 权限树(北京)
beijing
AppMessages
systemMessageAdd
grade
xiaoxueOne yuwen
subject
xiaoxueTwo shuxue yingyu
root
controller
action
APP 管理后台 - 权限树(北京)
beijing
AppMessages
systemMessageAdd
grade
xiaoxueOne yuwen
subject
xiaoxueTwo shuxue yingyu
root
controller
action
默认( controller )
APP 管理后台 - 权限树(北京)
beijing
AppMessages
systemMessageAdd
grade
xiaoxueOne yuwen
subject
xiaoxueTwo shuxue yingyu
root
controller
action
扩展权限树
APP 管理后台 - 权限
•//core.phpConfigure::write('Acl.classname', 'DbAcl');Configure::write('Acl.database', 'default');
•$this->Auth->authorize = array( 'Actions' => array('actionPath' => 'beijing'));
权限配置
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',
*)
权限验证
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'
);
授权与取消授权
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
APP 管理后台 - 权限
权限说明
•单层的角色授权•分校的权限授权与取消授权统一•action 的权限控制无需代码•权限树的节点与数据库 alias 字段对应•alias 必须在兄弟间唯一•alias 不能是中文
APP 管理后台 - 消息
说明
•系统消息与 PUSH 消息的区别•由脚本执行定时推送(默认为 5 分钟;无立即推送)•PUSH 消息的特点
•不能保证 100% 成功•内容过长则直接丢弃( 256 字节)•遇到无法推送的 Token ,则后面的 Token 全部放弃推
送•提供 feedback 服务(发现 -> 剔除 -> 发现 -> 再剔除)•循环 PUSH (仿真以 2 循环,线上以 50 循环)
APP 管理后台 - 版本控制及接口
说明(全国版)
•“ 强制升级”与“是否可用”都区分系统,设备与渠道
•升级的版本中存在“强制升级”则提示强制升级,且升级到“可用”版本的最新版
谢谢观赏