saya simpan coding diatas ke protected/components/UserIdentity.php, tapi tetap saja belum berhasil , untuk akses ke databasenya sy pake ini.
public function authenticate()
{
$record=User::model()->findByAttributes(array('NamaUser'=>$this->username));
if($record===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if($record->Password!== md5($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$record->UserID;
$this->username=$record->NamaUser;
$this->errorCode=self::ERROR_NONE;
$this->setPersistentStates(array(
'password' => $this->password,
// set any other user data
//'id' => $record->UserID,
));
}
return !$this->errorCode;
}
kalo coding diatas saya simpan di protected/controllers/UserController.php
admin hanya bisa view seperti yg lainnya, sepertinya Levelnya ada masalah. Bagaimana caranya ya?? mohon bantuannya…
oh… terus kalo setiap user bisa diassign ke beberapa role, seharusnya koding di bawah ini diletakkan dimana? apakah di “protected/components/controller.php”… (saya bener-bener minta pencerahannya)
bisa dipake untuk setiap controller kalo misalnya mau dalam satu controller ada action yg bisa dipake user, admin, atau guest sekaligus…
tapi biar gak terlalu ribet, saya biasanya usahakan satu controller itu gak usah kebanyakan rule, misalnya ada controller buat admin aja, ada yg buat guest aja, dll…
kadang kalo saya ngebikin controller yang cuman buat admin ya tinggal
///protected/components/MyAdminController.php
abstract class MyAdminController extends CController {
public function filters()
{
return array(
'accessControl',
);
}
public function accessRules()
{
return array(
array('allow',
'roles'=>array('admin'),
),
array('deny',
'users'=>array('*'),
),
);
}
}
terus ya semua controller yg dipake Admin, tinggal
///protected/controllers/UserController.php
class UserController extends MyAdminController {
}
gitu aja,
lalu biar gak terlalu ribet buat ngurus2in role2 user pake extension SRBAC aja
maksud saya bukan itu om… tapi ada 2 akses user, yg pertama sebagai admin, yg kedua sebagai user dimana user ini hanya bisa CRUD sesuai namausernya/UserIDnya. solusinya gmn ya om?
aku ikutan ya! kalo mungkin itu memang bener yang dibilang masta poetra tadi!
itu ada di actionUpdate nya!
public function actionUpdate($id)
{
$id = Yii:app()->user->id; // [b]ID ditentuin disini gan kan yang dibuka id dia tuh[/b]
$model=$this->loadModel($id);
// Uncomment the following line if AJAX validation is needed
// $this->performAjaxValidation($model);
if(isset($_POST['TbUser']))
{
$model->attributes=$_POST['TbUser'];
if($model->save())
$this->redirect(array('view','id'=>$model->id));
}
$this->render('update',array(
'model'=>$model,
));
}
mau tanya juga dong. sama juga seputar accessRule.
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
);
}
/**
* Specifies the access control rules.
* This method is used by the 'accessControl' filter.
* @return array access control rules
*/
public function accessRules()
{
return array(
array('allow', // allow all users to perform 'index' and 'view' actions
'actions'=>array('index','view'),
'users'=>array('*'),
),
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update'),
'users'=>array('@'),
),
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete','cekusage'),
//'users'=>array('admin',isset(Yii::app()->user->isAdmin),isset(Yii::app()->user->username)),
//'users'=>array('admin','isset(Yii::app()->session[\'isAdmin\'])','isset(Yii::app()->session[\'username\'])'),
),
array('deny', // deny all users
'users'=>array('*'),
),
);
}
ini salah satu controller saya. pengen tau nih kalo misal nya untuk ‘users’=> bisa g berdasarkan session? kayak contoh diatas. soal nya kalo udah login trus expire ada error CWebUser.username not Define. trus mau tanya expression tuh gimana maksud nya? kalo misal nya deklarasi rule cuman 1 kali bisa g? soal nya di setiap controller saya semua ada access rule nya
array('allow', // allow admin user to perform 'admin' and 'delete' actions
'actions'=>array('admin','delete','cekusage'),
'expression'=>'$user->role=="admin"',
),
Jangan lupa di config class user bikin customwebuser yang ada getRole()