Control de seguridad a una aplicacion (0.5 RC1)

edited julio 2008 in Principiantes
Ya que en la versión 5.1 RC se implementa el uso de aplicaciones, ¿cómo se podría aplicar un control de seguridad a toda una aplicación?

No un sistema complejo de usuarios, solo un usuario y una contraseña para una aplicación de administración.

¿Alguna idea?

PD: He estado comprendiendo muchas cosas del framework gracias al foro, de verdad que aplausos para la comunidad, y espero en un futuro cercano poder también colaborar, aunque mis conocimientos son básicos.

Mil gracias.

Comentarios

  • edited 1:54
    Yo utilizo este codigo, que copie de una aplicacion que esta en el grupo de google.

    La modifiqué a mi necesidad:

    en el archivo application.php
    public function before_filter(){
    			$controlador = $this->controller_name;
    			$accion = $this->action_name;
    			
    			$usuarios_id = Session::get_data('usuarios_id');
    			 
    			if( $controlador != "entrada" ){
    				
    				if( $usuarios_id == ''){
    					$this->route_to('controller: admin', 'action: no_acceso');
    					return false;
    				}
    				
    				$tipo_usuario = Session::get_data('tipo_usuario');
    				
    				if( $controlador == "administrador" && $tipo_usuario == "normal"){
    					
    				 	$this->route_to('controller: admin', 'action: no_acceso');
    					return false;
    				}
    				
    			}
    			 
    			 
    			 
    }
    

    Las variables de sessión se escriben cuando el usuario quiere entrar en la aplicacion (esto esta en otro controlador llamado entrada). Por eso ahi hay dos llamadas get_data, una para saber el ID del usuario y otro el nivel de privilegios que tiene (yo tengo dos, nomal y administrador)

    Un saludo
  • edited 1:54
    Hola wiggly, gracias por tu ayuda, y disculpa te molesto mas;

    Como haces la comprobación d eusuarios? en la base de datos? es que la verdad soy muy novato en el tema, y estoy rompiéndome la cabeza tratando de entenderlo.

    Mil gracias.
  • edited 1:54
    este es el metodo completo:
    public function valida(){
    
    			if($this->Usuarios->find_first("login = '{$this->request('login')}'
    							and password = sha1('{$this->request('password')}')")){
    				/**
    				 * Almaceno en la variable de session el id del usuario
    				 * autenticado
    				 */
    				Session::set_data('usuarios_id', $this->Usuarios->id);
    				$id = Session::get_data('usuarios_id');
    			
    				$usuario = $this->Usuarios->find($id);
    				$usuario->ultimoAcceso = Date("Y-m-d H:i:s");
    				$this->Usuarios->sql("UPDATE `usuarios` SET ultimoAcceso = '{$usuario->ultimoAcceso}' WHERE id = '{$id}'");
    				
    				$tipoUsuario = $usuario->tipo;
    				/**
    				 * Lo redireccionos al formulario de clientes
    				 */
    				Session::set_data('tipo_usuario', $tipoUsuario);
    				if( $tipoUsuario == "normal" )
    					return $this->redirect('cita');
    				else
    					return $this->redirect('administrador');
    			} else {
    				Flash::error('Usuario/Clave incorrectos');
    				return $this->route_to('action: index');
    			}
    
    }
    

    Un saludo
  • edited 1:54
    Un detalle del Titulo que le has puesto a este mensaje:

    La version NO 5.1 RC

    El nombre correcto es 0.5 RC 1

    Un saludo
  • edited 1:54
    Es cierto, mil gracias por tu ayuda, lo implementaré y les cuento como me va.

    Ya mismo cambio el título.
Sign In or Register to comment.