Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

ayuda componente Auth Cake-Php

Estas en el tema de ayuda componente Auth Cake-Php en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Hola gente , estoy siguiendo un libro muy bueno sobre cake-php llamado (para los que le interese aprender Cake-Php es muy muy recomendable) CakePHP Application ...
  #1 (permalink)  
Antiguo 15/12/2009, 10:46
Avatar de Dundee  
Fecha de Ingreso: junio-2002
Ubicación: El Médano
Mensajes: 1.310
Antigüedad: 22 años, 5 meses
Puntos: 8
ayuda componente Auth Cake-Php

Hola gente , estoy siguiendo un libro muy bueno sobre cake-php llamado (para los que le interese aprender Cake-Php es muy muy recomendable) CakePHP Application Development. También unos videotutoriales para los que prefieran ver y oir además de leer (creo que ambas formas de aprendizaje pueden ir perfectamente de la mano).

El problema que tengo es que no consigo realizar correctamente la autentificación de usuarios.
Según entiendo el componente Auth encripta automaticamente el campo password pero en mi caso no sucede así, tampoco se muestran los errores como los he definido en 'messages' en la variable $validate del modelo.
Voy a pegar el código haber si alguien me puede echar una manillo.

Mil gracias de antemano y perdón por la extensión del post.

users_controller.php
Código:
function add() {
		if (!empty($this->data)) {
		//var_dump($this->data);
		
		//comprobamos y creamos el hash del password2
			if ($this->data['User']['password2'])
			$this->data['User']['password2hased']=$this->Auth->password($this->data['User']['password2']);
			
			$this->User->create();
			if ($this->User->save($this->data)) {
				$this->Session->setFlash(__('El nuevo usuario ha sido guardado correctamente', true));
				$this->redirect(array('action'=>'index'));
			} else {
				$this->Session->setFlash(__('El usuario no puede ser guardado. por favor inténtelo más tarde.', true));
			}
		}
	}
Modelo: user.php
Código:
class User extends AppModel {

	var $name = 'User';
	var $validate = array(
		'name' => array(
			'notempty' => array(
				'rule' => array('minLenght',2),
				'required' => true,
				'allowEmpty' => false,
				'message' => 'El nombre no puede estar vacío'
			),
	
		'unique' => array(
			'rule' =>array('checkUnique','code'),
			'message'=> 'El usuario ya existe'
			)),
			
		'surname' => array(
			'notempty' => array(
				'rule' => array('minLenght',2),
				'required' => true,
				'allowEmpty' => false,
				'message' => 'El/los apellido/s no puede estar vacío'
			)), 
		
		'passwordSimilar' => array(
			'rule' => 'checkPasswords',
			'message' => 'Las contraseñas no son iguales, por favor revíselas, gracias.'
		)
	);

	//The Associations below have been created with all possible keys, those that are not needed can be removed
	var $hasMany = array(
		'Cliente' => array(
			'className' => 'Cliente',
			'foreignKey' => 'user_id',
			'dependent' => false,
			'conditions' => '',
			'fields' => '',
			'order' => '',
			'limit' => '',
			'offset' => '',
			'exclusive' => '',
			'finderQuery' => '',
			'counterQuery' => ''
		)
	);
	
	function checkUnique($data,$fieldName){
	$valid=false;
	if ( isset($fieldName) ){
	$valid=$this->isUnique(array($fieldName => $data));
	}
	return $valid;
	}

	function checkPassword($data) {
	if ($data['password'] == $this->data['User']['password2hashed'])
	return true;
	
	return false;
	}
El componente Auth lo cargo en el app_controller de la siguiente forma:
app_controller.php

Código:
<?php 
	class AppController extends Controller {
      var $components = array('Auth');
	
	  function beforeFilter() {

	  //cambiamos valores por defecto  de username y password (en este caso solo usernama que es ahora code)
	  // que vienen definidos en el core
	  $this->Auth->fields = array(
            'username' => 'code', 
            'password' => 'password'
            );
			
		}
}
?>
__________________
Videotutoriales de Drupal

Etiquetas: cakephp
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 20:08.