cruge / models / auth / AlternateAuthDemo.php

<?php
/*
	Esta es una clase de demostracion para que se conozca como crear metodos alternos de inicio de sesion.

	en esta clase se autenticara al usuario contra la lista de user y password definida en config/main asi:


	// EN CONFIG/MAIN LE INDICAS A CRUGE QUE USE ESTA CLASE 'authdemo':

		'cruge'=>array(
			'tableprefix'=>'cruge_',
			// 'availableAuthMethods'=>array('default'),
			'availableAuthMethods'=>array('authdemo'),
			...
			...
			(el string "authdemo" debe esta definido en la clase de autenticacion,
			este string es devuelto en la clase: AlternateAuthDemo.php )


 	@author: Christian Salazar H. <christiansalazarh@gmail.com> @bluyell
	@copyright Copyright &copy; 2008-2012 Yii Software LLC
	@license http://www.yiiframework.com/license/
*/
class AlternateAuthDemo extends CBaseUserIdentity implements ICrugeAuth
{

    private $username;
    private $password;
    private $options;

    private $_user;

    /**
    este nombre sera referenciado en config/main para hacerle saber a Cruge que use esta clase
    para autenticar:

    'availableAuthMethods'=>array('authdemo'),
     */
    public function authName()
    {
        return "authdemo";
    }

    /*	no confundir con un getUserName, esto es un getUser a nivel de instancia,
        debe retornar algun objeto que implemente a ICrugeStoredUser, por defecto se puede usar un
        objeto de clase CrugeStoredUser.

        @returns instancia de ICrugeStoredUser hallado tras la autenticacion exitosa
    */
    public function getUser()
    {
        return $this->_user;
    }

    /*
        recibe desde cruge parametros considerados como user y password, pueden no ser user y password a nivel
        conceptual..sino por ejemplo, cedula y clave, numerotarjeta y clave, etc.
    */
    public function setParameters($username, $password, $options = array())
    {
        $this->username = $username;
        $this->password = $password;
        $this->options = $options;
    }

    public function authenticate()
    {

        // en errorcode reporta el error generado
        //
        $this->errorCode = self::ERROR_USERNAME_INVALID;


        // retorna boolean, true si la autenticacion es exitosa
        //
        return $this->errorCode == self::ERROR_NONE;
    }
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.