login menggunakan 2 form dari 2 tabel

gan ane lagi binggung nih.

ane punya 2 tabel, tabel admin sama tabel user.

nah ane pengen bukin loginnya jadi binggung gan…

karena tabel admin sama user ga mungkin digabung.

ada yang punya saran ga gan?

kalo ane sih maunya form admin langsung di hit di URLnya.

kalo yang user pake form yang dari gii aja…

tolongin ane gan…

makasih para suhu.

maklum newbie…

emang bedanya admin ama user apaan ya bang :P

kenapa ga dibuat satu aja?



+----+----------+----------+--------------+


| id | username | password | status_member|


+----+----------+----------+--------------+

status member buat ngebedain apa dia admin ato user biasa

gini nanti user itu harus di approve dulu sama si admin.

jadi kan di tabel user ada id_admin.

nah kalo di jadiin satu, itu tabel jadi ga normal lagi.

ada masukan ga gan?

emangnya tabel login isinya apaan ya? apakah informasi user+pass

berdasar dari tabel yg ku buat diatas



tbl user


+----+----------+----------+--------------+---------+


| id | username | password | status_member|  active | {username UNIQUE INDEXES}


+----+----------+----------+--------------+---------+





tbl detail_user


+----------+------+---------+------------+


| username | name | address |  birthdate | {username PK references to user.username}


+----------+------+---------+------------+

form /site/login khusus buat member

form /backend/login khusus buat admin

kalo mau aprove kan tinggal SELECT username WHERE status_member = ‘user_biasa’ AND active = 0;




tabel admin

+----------+----------+----------+

| id_admin | username | password |

+----------+----------+----------+


tabel user

+--------+----------+----------+----------+--------+

| id_user| id_admin | username | password | status |  

+--------+----------+----------+----------+--------+


id_admin di isi dari tabel admin, status default 0,

kalo udah di approve sama admin, nanti status jadi 1 trus id_admin di tabel user juga di update sama admin yang approve.




berarti tar loginnya ada 2 form

misal:

form /site/login khusus buat member

form /backend/login khusus buat admin

site/login kopi aja ke /backend/admin, useridentitynya berarti ada dua yak, khsus admin ama khusus user

udah bisa gan…

hahaha…

di controllernya kalua gini apanya yg salah ya gan?


    public function actionMyadmin() {

        $model = new LoginForm;


        // if it is ajax validation request

        if (isset($_POST['ajax']) && $_POST['ajax'] === 'login-form') {

            echo CActiveForm::validate($model);

            Yii::app()->end();

        }


        // collect user input data

        if (isset($_POST['LoginForm'])) {

            $model->attributes = $_POST['LoginForm'];

            // validate user input and redirect to the previous page if valid

            if ($model->validate() && $model->login_admin())

                $this->redirect(Yii::app()->user->returnUrl);

        }

        // display the login form

        $this->renderPartial('login_admin', array('model' => $model));

    }

terus di model/LoginForm.php, seperti ini





	public function login_admin()

	{

		if($this->_identity===null)

		{

			$this->_identity=new AdminIdentity($this->username,$this->password);

			$this->_identity->authenticate();

		}

 [ini yg error]-->   	if($this->_identity->errorCode===AdminIdentity::ERROR_NONE)

		{

			$duration=$this->rememberMe ? 3600*24*30 : 0; // 30 days

			Yii::app()->admin->login($this->_identity,$duration);

			return true;

		}

		else

			return false;

	}



AdminIdentity seperti ini




class Admindentity extends CUserIdentity

{


    private $_id;

    public function authenticate() {

        $record = Admin::model()->findByAttributes(array('username' => $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->id_admin;

            $this->errorCode = self::ERROR_NONE;

            $this->setPersistentStates(array(

                'password' => $this->password,

                'username' => $this->username,

            ));

        }

        return !$this->errorCode;

    }


    public function getId() {

        return $this->_id;

    }

}




muncul warning gini gan

tolong koreksinya, apanya yg salah ya?

bukannya udah jelas itu kelas AdminIdentity itu ga ada!

perhatikan nama kelas identitas admin yang di posting, (ane tau, tapi di umpetin dulu) :D

Admindentity <— nama class ente gan harusnya —>AdminIdentity

heheh ane juga nubie banget…tar ane numpang" tanya ya disini…salam kenal :P