Configuración de Ldap

  1. Se debe configurar el archivo de apache (php.ini), y se descomentar la línea (php_lpad.dll).

  2. Copiar la librería adLDAP en la carpeta extensions y UserIdentity en el directorio components.

  3. En el archivo main ubicado en config:


'components'=>array(

        'ldap'=>array(

            'class'=>'application.extensions.adLDAP.YiiLDAP',

             // those are standard adLDAP options check http://adldap.sourceforge.net/ for documentation

             'options'=> array(

                            'ad_port'      => 389,

                            'domain_controllers'    => array('ad_server'),

                            'account_suffix' =>  '@domain_name',

                            'base_dn' => NULL,

                    // for basic functionality this could be a standard, non privileged domain user (required)

                            'admin_username' => 'jdoe',

                            'admin_password' => 'password',

            ),

        ),



  1. En el login puedes validar si el usuario se encuentra en la base de datos de tu sistema (en caso que tengas una tabla de usuarios para ver los permisos), si no se encuentra llama a una página con mensaje "Comuniquese con el administrador".

public function actionLogin()

	{

                $this->layout='//layouts/login';

		$model=new LoginForm;

                session_start();

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

		{

			echo CActiveForm::validate($model);

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

		}


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

		{

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

                       

			if($model->validate() && $model->login()){

                            $usuario= Usuario::model()->findByAttributes(array('usuario'=>Yii::app()->user->name));

                            if (!empty($usuario)){

                                $_SESSION['uID'] =$usuario->usuarioID; //Guardas el código del usuario en el sistema

                                $tipousuario= Usuario::model()->findByPk($usuario->usuarioID)->tipousuarioID;

                                if ($tipousuario=2 or $tipousuario=3 or $tipousuario=5 or $tipousuario=6 or $tipousuario=7 or $tipousuario=<img src='http://www.yiiframework.com/forum/public/style_emoticons/default/cool.gif' class='bbc_emoticon' alt='8)' />

                                    $this->redirect(array('requerimiento/adminaprobar'));

                                else{

                                     $this->redirect(array('requerimiento/adminderivar'));

                                }

                            }  

                           else{

                            $this->redirect(array('contactadmin'));

                        }

                        }

                        

		}

		$this->render('login',array('model'=>$model));

	}