anroots / db-acl
该包已被废弃且不再维护。没有建议的替代包。
基于数据库的ACL模块,适用于Kohana 3.3。
1.0.1
2013-03-27 12:25 UTC
Requires
- php: >=5.4.0
- composer/installers: *
This package is not auto-updated.
Last update: 2022-02-01 12:22:20 UTC
README
基于数据库的ACL模块,适用于Kohana 3.3 / PHP 5.4。用户通过其角色获得执行某些操作的权利。每个角色可以有多个权限。您可以根据需要,在数据库中定义新的角色和权限。
实际上,我并不推荐使用此模块,除非您确实希望角色/权限管理在数据库中发生(某些项目需要通过GUI由管理员用户管理权限)。对于替代方案(以及更好的实现),请参阅https://github.com/vendo/acl。
依赖项
- PHP >= 5.4
- Kohana >= 3.3
- 默认数据库、认证和ORM模块
用法
// ... public function save_customer() { $current_user = Auth::instance()->get_user(); if (!$current_user->can(Permission::EDIT_CUSTOMERS)) { throw new Authorization_Exception(); } // Save the Customer ORM model $this->save(); } // ...
定义权限
在开发应用程序时,在permissions
表中创建新条目。在代码中,将权限与角色关联并检查用户是否有权执行某些操作。
权限常量
在您的APPPATH
中覆盖Permission
以定义权限常量。常量值对应于permissions
表的id
列。
<?php class Model_Permission extends ACL_Model_Permission { const EDIT_USERS = 1; const ADD_NEW_POST = 2; } $user->can(Model_Permission::EDIT_USERS);
检查权限
$user->can($permission); // 拥有该权限
$user->has_permissions(array $permissions); // 拥有所有指定的权限
$user->has_any_permission(array $permission); // 拥有指定的任一权限
安装
- 将文件添加到您的模块文件夹
作为Git子模块
git clone git://github.com/anroots/kohana-db-acl.git modules/db-acl
作为Composer依赖项
{ "require": { "php": ">=5.4.0", "composer/installers": "*", "anroots/db-acl":"1.*" } }
- 在bootstrap.php中启用(在auth/orm模块之上/之前)
- 运行create-tables.sql(如果您尚未运行,请运行orm/auth-schema-*.sql)
- 确保您的Model_User(如果已覆盖)使用ACL_Trait_User特性
- 创建一些权限,并在Model_User上调用其中一个权限方法