<?php

class UsuarioController extends Controller
{
	
	public $layout='//layouts/column2';

	
	public function filters()
	{
		return array(
			'accessControl',
			'postOnly + delete',
		);
	}

	public function accessRules()
	{
		return array(
			array('allow',  
				'actions'=>array('create','update','delete','index','password','modificarpass'),
				'expression' => array('UsuarioController', 'validaracceso'),
			),
			array('deny',
				'users'=>array('*'),
			),
		);
	}

        
        
        public static function validaracceso() {
            if (!Yii::app()->user->isGuest) {

                   return true;
            } else {
                Yii::app()->user->setFlash('danger', Yii::app()->params['sesion']);
                return false;
            }
        }
        
     
        

	public function actionCreate()
	{
            
                $this->pageTitle = ' AGREGAR USUARIO';
		$model=new Usuario;

		$this->performAjaxValidation($model);

		if(isset($_POST['Usuario']))
		{
			$model->attributes=$_POST['Usuario'];
                        
                        try
                        {
                          $agregar= Usuario::agregarUsuario();  
                          if ($agregar) {
                          
                            $model->unsetAttributes();  
                            Yii::app()->user->setFlash('success', '¡El usuario se ha guardado exitosamente!');
                            $this->redirect(array('index'));  
                            }  else {
                               Yii::app()->user->setFlash('info', 'no  realizo ningún cambio.');
                            }

                           
                        }catch(Exception $e)
                        {
                         Yii::app()->user->setFlash('danger', Yii::app()->params['error']); 
                        }
		}

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


	public function actionUpdate($id)
	{
		$this->pageTitle = 'MODIFICAR USUARIO';
                
                $this->pageTitle = 'Editar Usuario';
                $model=$this->loadModel($id);
                $model->scenario = 'update'; 
               
	        $this->performAjaxValidation($model);

		if(isset($_POST['Usuario']))
		{
                    
                    $model->attributes=$_POST['Usuario'];
                    
		    if($model->validate()){    
                    try
                    {
                     
                      $editar=Usuario::modificarUsuario($id);  
                      
        
                        Yii::app()->user->setFlash('success', 'El usuario fue actualizado con éxito.');   
                        $this->redirect(Yii::app()->request->baseUrl."/usuario");
 
                    }catch(Exception $e)
                    {
                     Yii::app()->user->setFlash('danger', Yii::app()->params['error']); 
                    }  
                    }
		}

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


	public function actionDelete($id)
	{$eliminar=  Usuario::eliminarUsuario($id);
            if($eliminar){
             
                Yii::app()->user->setFlash('success', '¡El usuario se ha eliminado exitosamente!');
                }
		
		if(!isset($_GET['ajax']))
			$this->redirect(isset($_POST['returnUrl']) ? $_POST['returnUrl'] : array('index'));
	}


	public function actionIndex()
	{
                $this->pageTitle = 'USUARIOS';
                if (isset($_GET['pageSize'])){
                    Yii::app()->user->setState('pageSize', (int) $_GET['pageSize']);
                    unset($_GET['pageSize']);
                }
		$model=new Usuario('search');
		$model->unsetAttributes();  // clear any default values
		if(isset($_GET['Usuario']))
			$model->attributes=$_GET['Usuario'];
              
                
		$this->render('index',array(
			'model'=>$model
		));
	}

	
	public function loadModel($id)
	{
		$model=Usuario::model()->findByPk($id);
		if($model===null)
			throw new CHttpException(404,'The requested page does not exist.');
		return $model;
	}

	protected function performAjaxValidation($model)
	{
		if(isset($_POST['ajax']) && $_POST['ajax']==='usuario-form')
		{
			echo CActiveForm::validate($model);
			Yii::app()->end();
		}
	}
        
         public function actionPassword()
	{
            
            if (!Yii::app()->user->isGuest) {
                
                $id=Yii::app()->user->id;
		$model=$this->loadModel($id);
                $model->scenario='password';
                $this->pageTitle = 'CAMBIAR CONTRASEÑA';
		$this->performAjaxValidation($model);
                $model->password='';
		if(isset($_POST['Usuario']))
		{
                        $model->attributes=$_POST['Usuario'];
                    
                        if(    
                          (!empty($_POST['Usuario']['password']))    
                           and (!empty($_POST['Usuario']['confirmar_password']))      
                        ){
                            
                           $modificar=  Usuario::modificarPassword($id);   
                            
                            Yii::app()->user->setFlash('success', 'Se actualizo la contraseña.');
                            $this->redirect(Yii::app()->request->baseUrl."/site/login"); 
                            
                              
                    }else{
                        Yii::app()->user->setFlash('danger', 'Debe completar el formulario.'); 
                    }  
		}
		$this->render('password',array(
			'model'=>$model,
		));
                
            }
            
            
            
                     
                     
	}
        
        
        
        
        
         public function actionModificarpass($id)
	{
            
          
		$model=$this->loadModel($id);
                $model->scenario='password';
                $this->pageTitle = 'CAMBIAR CONTRASEÑA';
		$this->performAjaxValidation($model);
                $model->password='';
		if(isset($_POST['Usuario']))
		{
                        $model->attributes=$_POST['Usuario'];
                    
                        if(    
                          (!empty($_POST['Usuario']['password']))    
                           and (!empty($_POST['Usuario']['confirmar_password']))      
                        ){
                            
                           $modificar=  Usuario::modificarPassword($id);   
                               
                            Yii::app()->user->setFlash('success', 'Se actualizo la contraseña.');
                            $this->redirect(Yii::app()->request->baseUrl."/usuario"); 
                            
                               
                    }else{
                        Yii::app()->user->setFlash('danger', 'Debe completar el formulario.'); 
                    }  
		}
		$this->render('password',array(
			'model'=>$model,
		));     
	}
        
        
        
        
        
        
        
        
        
}
