redireccion despues de loguearse usuario

edited agosto 2007 in Bugs y Problemas
Es posible que sea un bug, de todas maneras estoy repasando el codigo a ver que sucede, pero honestamente les cuento, que estaba trabajando con la version RC4 y me hacia la redireccion de esta manera bien, si es admin vaya al menuprincipal del admin, si es coordinador vaya al menuprincipal de coordinador, etc, asi sucesivamente, es decir que me lo hacia bien, weno luego baje del svn la ultima version la RC5 y sucede lo siguiente que al loguearme como coordinador, docente, estudiante, y admin, solo me muestra siempre el mismo usuario que es el admin, y que por casualidad es el primer registro que tengo en esa tabla usuarios, no se si al realizar las modificaciones de esta version RC5 pues hubo problema con el metodo find_first, que es el que utilizo para validar la entrada del usuario, es decir si coinciden el nombre de usuario y la contraseña, entonces entre a su menu correspondiente.

No se si a alguien le esta pasando lo mismo pero la verdad es que me da para pensar que es un bug puesto que estaba trabajando bien con la version RC4, y a penas me puse a probar la RC5 sucede esto.

Saludos!

Comentarios

  • Pienso que deberías revisar bien a fondo tu codigo para descartar fallas de lógica.

    Éxitos...
  • Alguien ha trabajado sobre find_first?
  • edited 3:44
    si el problema existe en la version RC6, la ultima, ya estuve hablando con el señor Deivinson, de esto hoy, el abrio otro post y pues exponiendo de la misma forma como se comporta el bug despues de utilizar el metodo before_filter, de igual forma que yo cuando en su debido momento hice el comentario en este post, realmente creo que el problema es con el filtrado cuando un usuario intenta loguearse, pero como habia comentado anteriormente yo utilizo el metodo find_first para poder validar la entrada de cualquier usuario y despues utilizo el metodo before_filter para hacer el filtrado hacia que parte de la aplicacion debe ir dicho usuario.

    espero esto sea resuelto, solo hasta hoy se pudo probar eso, el señor deivinson y yo charlamos de eso y el se dio cuenta que es asi!.
    saludos
  • Solventado el problema con el metodo find_first para aquellos que desean utilizar una version superior 0.4.5RC3 y tenian problema con el metodo find_first aqui esta solucion (despues de una conversa con Andres)

    deben sustituir el metodo find_first por este:
    public function find_first($what=''){
    
    		if(!$this->dumped) {
    
    			$this->dump();
    
    		}
    
    		$config = Config::read();
    
    		$what = get_params(func_get_args());
    
    		if(is_array($what)){
    
    			$select = "select ";
    
    			if(!$what['conditions']){
    
    				if(!is_param($what[0])){
    
    					if(is_numeric($what[0])){
    
    						if(!$this->primary_key[0]){
    
    							if(isset($this->id)){
    
    								$this->primary_key[0] = "id";
    
    							}
    
    						}
    
    						if($this->is_view&&!$this->primary_key[0]){
    
    							$this->primary_key[0] = 'id';
    
    						}
    
    						ActiveRecord::sql_item_sanizite($this->primary_key[0]);
    
    						$what['conditions'] = "{$this->primary_key[0]} = '{$what[0]}'";
    
    					} else {
    
    						$what['conditions'] = $what[0];
    
    					}
    
    				}
    
    			}
    
    			if($what["columns"]) {
    
    				ActiveRecord::sql_sanizite($what["columns"]);
    
    				$select.="{$what["columns"]} from {$this->source} where ";
    
    			} else {
    
    				$select.="* from {$this->source} where " ;
    
    			}
    
    			if($what["conditions"]) {
    
    				if($config->database->type=='oracle'){
    
    					/**
    
    					 * Bug: Solo cambia la primera aparici�n de una fecha
    
    					 */
    
    					if(ereg("'[0-9]{4}-[0-9]{2}-[0-9]{2}'", $what['conditions'], $reg)){
    
    						$what['conditions'] = str_replace($reg[0], "TO_DATE({$reg[0]}, 'YYYY-MM-DD')", $what['conditions']);
    
    					}
    
    				}
    
    				$select.=" {$what["conditions"]} ";
    
    			} else {
    
    				$select.=" 1=1 ";
    
    			}
    
    			if($config->database->type=='oracle'){
    
    				if($what["limit"]) {
    
    					$what["limit"] = intval($what["limit"]);
    
    					$select.=" and rownum <= {$what["limit"]} ";
    
    				} else {
    
    					$select.=" and rownum = 1";
    
    				}
    
    			}
    
    			if($what["order"]) {
    
    				ActiveRecord::sql_sanizite($what["order"]);
    
    				$select.=" order by {$what["order"]} ";
    
    			} else {
    
    				$select.=" order by 1 ";
    
    			}
    
    			if($config->database->type!='oracle'){
    
    				if($what["limit"]) {
    
    					$what["limit"] = intval($what["limit"]);
    
    					$select.=" limit {$what["limit"]} ";
    
    				} else {
    
    					$select.=" limit 1";
    
    				}
    
    			}
    
    			if(!$this->db){
    
    				$this->db = db::raw_connect();
    
    			}
    
    			$this->db->debug = $this->debug;
    
    			$this->db->logger = $this->logger;
    
    			$result = $this->db->fetch_one($select);
    
    			if($result){
    
    				$this->dump_result_self($this->db->fetch_one($select));
    
    				return $this->dump_result($result);
    
    			}
    
    			return false;
    
    		}
    
    		return false;
    
    	}
    

    Importante probar este codigo y decir si esta funcional...
  • edited 3:44
    Listo voy a probar a ver, de hecho me encontraba estancado en la RC3 desde hace rato que reporte este bug, entonces listo amigos, prueba y les comento.

    Saludos!
Sign In or Register to comment.