等不及web方式来配置rbac,请教qiang几个问题。

1 是否需要自己定义model。如果定义是不是定义(AuthItem和AuthAssignment)两个就可以了?

2 感觉表设计挺灵活的,可否把你在1.1版本中将要做的web方式配置rbac思路讲讲?

database schema在framework/web/auth/schema.sql

需要三个model

暂时还没考虑怎么做这个东东。;) 不过我自己在做的一个大型项目里很快就需要这个了。

1 要是我来设计,我可能会把3个表合成一个来设计。就一个model搞定。不知道这样做可以实现哪些特殊需求?

2 您做的项目有用到工作流引擎吗?

  1. 你怎么合并这三个表的?

  2. 以前做的有(不过比较简单),目前这个没有。

我说错了,是1个model,2个表。

表1:

create table AuthItem(

name              varchar(64) not null,

type              integer not null,

description          text,

bizrule              text,

data              text,

parent            varchar(64) not null,

primary key (name)

);

建立一个model为AuthItem

public function relations(){


'children'=>array(self::HAS_MANY,'AuthItem','parent'),


'userList'=>array(self::MANY_MANY, 'User', 'AuthAssignment(itemname, userid)')


}


这只是一个构思而已,而且这样的改动估计没有什么意义,还是以你的为准。看来等web方式出来在用了。暂时先用脚本生成。

你这个表的设计是假设role是以树状方式组织的,而yii里的更广泛一点,它是无圈图,即一个role可以有多个parent,也可以有多个child,只要不形成圈即可。