如何从Yii的数据库中获得用户权限

我非常非常新的Yii。 我正在开发一个现实世界的例子。 我有一个表,因此模型,称为用户从数据库中获取的数据。 数据库中的三个主要领域是用户名,密码和UserRole的。 用户名和密码的工作就好了。 我需要看的UserRole的数据库,并此基础上,分配角色给用户。 例如是用户的UserRole场== 1,用户是admin,可以创建,读取,更新和删除(CRUD)。 但是,如果用户的UserRole == 2,用户可以更新和创建但不能删除。 我试图与“表达”IB accessRules()在UserController.php做到这一点,但它没有工作。 然后,我阅读了一下,发现我应该作用做。 这就是我写的:

public function accessRules() { $auth = Yii::app()->authManager; $auth->createOperation('createUser','create a user'); $auth->createOperation('updateUser','update a user'); $auth->createOperation('deleteUser','delete a user'); $role=$auth->createRole('creator'); $role->addChild('createUser'); $role=$auth->createRole('updater'); $role->addChild('updateUser'); $role=$auth->createRole('deleter'); $role->addChild('deleteUser'); return array( ................................ array('allow', 'actions'=>array('create','update'), 'users'=>array('@'), 'roles'=>????, .....................

??? 是我不知道该怎么做。 我确定我在正确的地方/文件createOperation /的addChild? 我如何使用“角色”返回数组中? 还应该在哪里,我从数据库中获取的UserRole的?

我拼命寻找答案的Yii论坛不活跃

谢谢

--------------解决方案-------------

操作和角色的创建是一次性的活动(无论何时创建或编辑)。 你需要有一个单独的方法,你将调用一次。

如果你想有一个基于角色的访问系统的地方,你需要添加额外的表到您的数据库。 警予/框架/ WEB /认证/ schema.sql文件 - 该模式可以在文件夹中找到。

但要实现RBAC最简单的方法是使用等扩展权利 - http://www.yiiframework.com/extension/rights/

您必须分配角色(县)登录用户(或用已知的用户ID)

$auth->assign('creator',user()->id);
$auth->assign('updater', 102); //102 as user id
//...

而在accessRules你必须写

'actions'=>array('create','update'),
'roles'=>array('creator','updater'),

难道这answeryou正在寻找?

分类:警予 时间:2015-03-15 人气:0
本文关键词: 警予,访问规则
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.649 (s). 10 q(s)