php - Yii - How to Hide/View Button in CGridview Based on User's Level? -
i tried view or show button (cbuttoncolumn) in cgridview, in /views/file/admin.php:
.... //getlevel()==1 means admin, getlevel==2 means common users array( 'class'=>'bootstrap.widgets.tbbuttoncolumn', 'template'=>'{view}{update}{delete}', 'visible'=> (yii::app()->user->getlevel()==1), 'deleteconfirmation'=>"js: 'are want delete '+$(this).parent().parent().children(':first-child').text()+ '?'", //i tried modify code below, there's nothing happens, 'view' button not //display when access common user (getlevel()==2) 'buttons'=>array( 'view' => array( 'visible'=> yii::app()->user->getlevel()==2, ), ) ), .... webuser.php
<?php class webuser extends cwebuser{ protected $_model; protected function loaduser() { if ( $this->_model === null ) { $this->_model = user::model()->findbypk($this->id); } return $this->_model; } function getlevel() { $user=$this->loaduser(); if($user) return $user->id_level; return 100; } } ?> i tried code, there 'view' button not display, , there's no error when load page. can me solve problem? lot.
you setting column visibility admin users on line
'template'=>'{view}{update}{delete}', 'visible'=> (yii::app()->user->getlevel()==1), so
'view' => array( 'visible'=> yii::app()->user->getlevel()==2, ), has no effect. remove first setting visible. @soju , @rafay said visible should php expression therefore should read
'view' => array( 'visible'=> 'yii::app()->user->getlevel()==2', ),
Comments
Post a Comment