Controlador es el siguiente
class UsersController extends AppController{
var $name = 'Users';
var $helpers=array('Html','Form','Ajax');
var $uses = array('Tipouser','User');
var $displayField = "tipousers";
function index($order = null){
SWITCH($order){
CASE 1:
$this->set("users",$this->User->findAll(null,null,'username',null,null,null));
break;
CASE 2:
$this->set("users",$this->User->findAll(null,null,'created',null,null,null));
break;
default:
$this->set("users",$this->User->findAll());
}
}
function insertdddw(){
//$this->set('tipouser',Set::combine($listtipuser, "{n}.Tipouser.id","{n}.Tipouser.descripcion"));
$this->set('tipouser',$this->Tipouser->findAll());
}
/*
*Funcion: siempre que el usuario se encuentre correctamente logueado en el sistema
*/
function beforeFilter(){
$this->__validateLoginStatus();
}
/*
*Funcion: permite validar que los datos del usuario son correctos
*/
function login(){
if(empty($this->data)==false){
if(($user = $this->User->validateLogin($this->data['User'])) == true){
$this->Session->write('User',$user);
$this->Session->setFlash('Ingreso al Sistema Satisfactoriamente');
$this->redirect('index');
exit();
}else{
$this->Session->setFlash('Disculpe, su login o password son incorrectos');
//$this->redirect('login');
//exit();
}
}
}
/*
* Funcion: Permite realizar al borrado de la sesion en el sistema
*/
function logout(){
$this->Session->destroy('user');
$this->Session->setFlash('El usuario se desconecto Satisfactoriamente');
$this->redirect('login');
}
function __validateLoginStatus(){
if($this->action != 'login' && $this->action != 'logout'){
if($this->Session->check('User')==false){
$this->redirect('login');
$this->Session->SetFlash('La direccion que quiere ingresar requiere de logueo en el sistema');
}
}
}
/*
* Funcion: agregar nuevo usuario retorna al indice principal
*/
function add(){
if(!empty($this->data)){
/*Validamos que el usuario no exista ya en el sistema*/
if($this->User->findByUsername($this->data['User']['username'])){
$this->User->invalidate('username');
$this->Session->SetFlash('El Nombre de usuario ingresado ya existe');
}else{
/*validamos el correo electronico*/
if($this->User->findByEmail($this->data['User']['email'])){
$this->User->invalidate('email');
$this->Session->SetFlash('El E-Mail ya fue registrado para otro usuario');
}else{
/*encryptamos el password con md5*/
$this->data['User']['password']=md5($this->data['User']['password']);
if($this->User->save($this->data)){
$this->flash('Los datos Fueron Guardados Ok','/users/');
}
}
}
}
}
/*
*Funcion: permite ver los datos de los usuarios del sistema
*/
function verdatos($id = null){
if($id <> null){
$this->User->id=$id;
$this->set('users',$this->User->read());
}else{
exit();
}
}
/*
*Funtion: permite realizar la modificacion de un archivo determinado
*/
function editar($id=null){
$this->User->id = $id;
if(empty($this->data)){
$this->insertdddw();
$this->data = $this->User->read();
$tipo_user = $this->Tipouser->find("list", array("fields"=>array("Tipouser.id","Tipouser.descripcion")));
$this->set("tipousers",$tipo_user);
}else{
if($this->User->save($this->data)){
$this->flash('Los Datos Fueron Modificados Satisfactoriamente','/users/');
}
}
}
}
?>
La vista es la siguiente
Es importante agregar esto en el controlador
var $displayField = "tipousers";
Las tablas son estas
mysql> DESCRIBE users;
+--------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| username | varchar(30) | NO | | | |
| password | varchar(40) | NO | | | |
| email | varchar(40) | NO | | | |
| created | datetime | YES | | NULL | |
| tipousers_id | smallint(6) | YES | | NULL | |
+--------------+------------------+------+-----+---------+----------------+
+-------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| descripcion | varchar(50) | YES | | NULL | |
+-------------+-------------+------+-----+---------+----------------+
Esto es todo muy simple eh???
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario