在我的Web应用程序中,我想仅为特定列授予一种类型用户的更新操作的访问权限。我用Google搜索了很长时间但找不到解决方案。我该怎么办? 我有一个名为producer offer的表,它有一个名为provide_qty的列。有三种类型的用户,生产者,消费者和管理员。生产者应该能够更新任何列,但消费者应该只能更新名为" provided_quantity"的生产者商品表的列。
我对生产者商品表的访问权限功能
public function accessRules()
{
return array
(
array('allow', 'actions'=>array('bookOffer','update',), 'expression'=>'isset(Yii::app()->user->type)&&(Yii::app()->user->type==="CONSUMER")'),
array('allow', 'actions'=>array( 'create','update','delete'), 'expression'=>'isset(Yii::app()->user->type)&&(Yii::app()->user->type==="PRODUCER")'),
array('allow', 'actions'=>array('manage','createViaSms','view','myOffers'),'users'=>array('*')),
array('deny', 'users'=>array('*'),),
);
}
我对消费者需求表的访问规则
public function accessRules()
{
return array
(
array('allow', 'actions'=>array( 'create','delete','update' ), 'expression'=>'isset(Yii::app()->user->type)&&(Yii::app()->user->type==="CONSUMER")'),
array('allow', 'actions'=>array( 'manage','view','myNeeds'), 'users'=>array('*'), ),
array('deny', 'users'=>array('*'),),
);
}
答案 0 :(得分:1)
Yii accessRules
控制对controller/action
的访问权限。标准的Yii方法是为每个模型/表创建一个update
动作。
但您希望控制对模型中的列的访问权限。
所以你有两个选择:
action
。然后使用accessRules
来控制谁可以执行action
。