Welcome to Scribd. Sign in or start your free trial to enjoy unlimited e-books, audiobooks & documents.Find out more
Download
Standard view
Full view
of .
Look up keyword
Like this
2Activity
0 of .
Results for:
No results containing your search query
P. 1
class UserIdentity extends CUserIdentity

class UserIdentity extends CUserIdentity

Ratings: (0)|Views: 46|Likes:
Selamat siang teman2, kemarin saya mencoba bagaimana menggunakan
class UserIdentity extends CUserIdentity

Dalam yii framework, nah sebenarnya saya sdh mempunyai table yang saya beri nama Tabelpengguna, dalam Tabelpengguna ini ada field status yang menadakan apakah dy administrator, reseller ataukah user biasa, dalam kasus ini status saya buat berupa interger administrator=1, reseller=2 dan user = 3. Nah sekarang bagaimana caranya saya buat agar pada saat login dan berhasil maka status itu akan disimpan dalam sebuah variable yang dapat dibaca dihampir seluruh bagian yii??

Penyelesaian :
Pertama2, saya create dulu model Tabelpengguna menggunakan failitas CRUD, tapi hanya model aja bukan yang komplet. Lalu pada file \protected\models\Tabelpengguna.php saya tambahkan beberapa baris program seperti dibawah ini :
public function validatePassword($password)
{
return $this->katasandi === $password;
}

Setelah itu pastikan bahwa file \protected\controllers\SiteController.php ada baris program seperti ini
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
);
}

Setelah itu edit berkas \protected\components\UserIdentity.php, untuk kasusu saya sih yang harus saya simpan adalah Id, email dan status, jadi saya buat seperti ini :


class UserIdentity extends CUserIdentity
{
private $_id;

public function authenticate()
{
$username = strtolower($this->username);
$user = Tabelpengguna::model()->find('LOWER(email)=?', array($username));
if( $user===null )
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if(!$user->validatePassword($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->username = $this->username;
$this->_id = $user->Id;
$this->setState('status', $user->status);
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}

public function getId()
{
return $this->_id;
}

}

Nah perhatikan untuk klas CWebUser itu standar nya hanya menyimpan id dan nama saja, untuk hal ini nama diubah menjadi email. Coba liat baris program yang $this->setState('status', $user->status); dengan baris program tersebut kita dapat menyimpan banyak variabel yang kita butuhkan tentang user, TAPI INGAT JANGAN MENYIMPAN HAL-HAL YANG TERLALU PENTING SEPERTI PASSWORD KARENA JIKA PENGGUNA mengaktifkan(ingat login saya) maka informasi tersebut tersimpan dalam cookies.. so jangan coba coba ya hehehehe
Nah sekarang, kita sudah mengetahui bagaimana status itu disimpan yang tadinya diambil dari Tabelpengguna dalam database.

Untuk membaca variabel tersebut bisa dalam controller, view dan yang jelas dalam \protected\views\layouts\main.php tidak dapat dilakukan.
Silahkan ketik seperti dibawah ini :
echo Yii::app()->user->status;
Selamat siang teman2, kemarin saya mencoba bagaimana menggunakan
class UserIdentity extends CUserIdentity

Dalam yii framework, nah sebenarnya saya sdh mempunyai table yang saya beri nama Tabelpengguna, dalam Tabelpengguna ini ada field status yang menadakan apakah dy administrator, reseller ataukah user biasa, dalam kasus ini status saya buat berupa interger administrator=1, reseller=2 dan user = 3. Nah sekarang bagaimana caranya saya buat agar pada saat login dan berhasil maka status itu akan disimpan dalam sebuah variable yang dapat dibaca dihampir seluruh bagian yii??

Penyelesaian :
Pertama2, saya create dulu model Tabelpengguna menggunakan failitas CRUD, tapi hanya model aja bukan yang komplet. Lalu pada file \protected\models\Tabelpengguna.php saya tambahkan beberapa baris program seperti dibawah ini :
public function validatePassword($password)
{
return $this->katasandi === $password;
}

Setelah itu pastikan bahwa file \protected\controllers\SiteController.php ada baris program seperti ini
public function filters()
{
return array(
'accessControl', // perform access control for CRUD operations
);
}

Setelah itu edit berkas \protected\components\UserIdentity.php, untuk kasusu saya sih yang harus saya simpan adalah Id, email dan status, jadi saya buat seperti ini :


class UserIdentity extends CUserIdentity
{
private $_id;

public function authenticate()
{
$username = strtolower($this->username);
$user = Tabelpengguna::model()->find('LOWER(email)=?', array($username));
if( $user===null )
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if(!$user->validatePassword($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->username = $this->username;
$this->_id = $user->Id;
$this->setState('status', $user->status);
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}

public function getId()
{
return $this->_id;
}

}

Nah perhatikan untuk klas CWebUser itu standar nya hanya menyimpan id dan nama saja, untuk hal ini nama diubah menjadi email. Coba liat baris program yang $this->setState('status', $user->status); dengan baris program tersebut kita dapat menyimpan banyak variabel yang kita butuhkan tentang user, TAPI INGAT JANGAN MENYIMPAN HAL-HAL YANG TERLALU PENTING SEPERTI PASSWORD KARENA JIKA PENGGUNA mengaktifkan(ingat login saya) maka informasi tersebut tersimpan dalam cookies.. so jangan coba coba ya hehehehe
Nah sekarang, kita sudah mengetahui bagaimana status itu disimpan yang tadinya diambil dari Tabelpengguna dalam database.

Untuk membaca variabel tersebut bisa dalam controller, view dan yang jelas dalam \protected\views\layouts\main.php tidak dapat dilakukan.
Silahkan ketik seperti dibawah ini :
echo Yii::app()->user->status;

More info:

Published by: andrea stevens karnyoto on Sep 10, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF or read online from Scribd
See more
See less

09/10/2011

pdf

 
Andrea Stevens Karnyoto (CV. Anugrah Empat Pilar)andrekarnyoto@yahoo.com/andre@empatpilarweb.co.id(FB: Karnyoto Andre )Selamat siang teman2, kemarin saya mencoba bagaimana menggunakan
class
UserIdentity
extends
CUserIdentity
 Dalam yii framework, nah sebenarnya saya sdh mempunyai table yang saya beri nama Tabelpengguna,dalam Tabelpengguna ini ada field status yang menadakan apakah dy administrator, reseller ataukahuser biasa, dalam kasus ini status saya buat berupa interger administrator=1, reseller=2 dan user = 3.Nah sekarang bagaimana caranya saya buat agar pada saat login dan berhasil maka status itu akandisimpan dalam sebuah variable yang dapat dibaca dihampir seluruh bagian yii??Penyelesaian :Pertama2, saya create dulu model Tabelpengguna menggunakan failitas CRUD, tapi hanya model ajabukan yang komplet. Lalu pada file
\protected\models\Tabelpengguna.php
saya tambahkan beberapabaris program seperti dibawah ini :
 public function
validatePassword($password){
return $this
->katasandi=== $password;}
 Setelah itu pastikan bahwa file
\protected\controllers\SiteController.php
ada baris program seperti ini
 public function
filters(){
return array
('accessControl',// perform access control for CRUDoperations );}
 Setelah itu edit berkas
\protected\components\UserIdentity.php
, untuk kasusu saya sih yang harussaya simpan adalah Id, email dan status, jadi saya buat seperti ini :
<?php 
class
UserIdentity
extends
CUserIdentity{
 private
$_id;
 public function
authenticate(){$username = strtolower(
$this
->username);$user = Tabelpengguna::
model
()->find('LOWER(email)=?',

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->