Sugerencia del programas de usuarios

edited agosto 2008 in Dudas/Problemas
Hola, estuve viendo el programa de usuarios y al crear otro usuario (que quiero sea administrador) vi la necesidad de copiarles los permisos, por lo que se me ocurrió saltar el tema de verificación cuando Usuario sea de tipo 'A' (campo agregado a la tabla de usuarios) y cambie esto en la bifore_filter() de application.php.
anda bien, pero me sigue haciendo restricciones o unables en usuarios, permisos, etc. No encuentro donde anda las restricciones estas.
aquí les paso el código modificado de before_filter:
	public function before_filter($controlador, $accion){

			/**
			 * El controlador login es el unico que no tiene validacion
			 * $usuarios_id viene de la variable de sesión usuarios_id
			 * creada en el controlador login/valida
*/
			if($controlador!='admin'):
				$usuarios_id = Session::get_data('usuarios_id');
                                $u = $this->Usuarios->find_first($usuarios_id);
                                //echo 'TIPO '. $u->tipo;
                                if($u->tipo !='A'){
                                    $objacciones = $this->Acciones->find_first("nombre='$accion'");

                                    $tiene_permiso = $this->Permisos->count("controlador='$controlador' and
                                            acciones_id = '$objacciones->id' and
                                            usuarios_id = '$usuarios_id'");
                                     // Muestra un mensaje con la accion realizada
                                     flash::success('Accion: '.$objacciones->nombre);
                                    /**
                                     * Si no tiene acceso ejecuta la accion no_acceso en el
                                     * controlador login
                                    */
                                    if(!$tiene_permiso):
                                            $this->route_to('controller: admin', 'action: no_acceso');
                                            return false;
                                    else:
                                            /**
                                            * Revisa si el controlador es StandarForm y
                                            * oculta los botones a los que no tiene acceso
                                            */
                                            if(is_subclass_of($this, 'StandardForm')):

                                                    /**
                                                    *Traemos toda la tabla Acciones
                                                    */
                                                    $objacciones = $this->Acciones->find();

                                                     foreach($objacciones as $objaccion):

                                                            /**
                                                             * Por cada accion busco el regristo en la tabla permisos
                                                             */
                                                            $objpermiso = $this->Permisos->find_first("controlador='$controlador' and
                                                                                                                                                     usuarios_id = '$usuarios_id' and
                                                                                                                                                      acciones_id = '$objaccion->id'");
                                                            flash::success($objaccion->nombre.' '.$objpermiso->estado);
                                                            /**
                                                             * Si no existe o esta desactivado elimino el boton correspondiente
                                                             */
                                                            if($objpermiso->estado=='D' or !$objpermiso->estado):
                                                                    switch($objaccion->nombre):
                                                                            case 'insert':
                                                                                    $this->unable_insert();
                                                                                    break;
                                                                            case 'query':
                                                                                    $this->unable_query();
                                                                                    break;
                                                                            case 'browse':
                                                                                    $this->unable_browse();
                                                                                    break;
                                                                            case 'update':
                                                                                    $this->unable_update();
                                                                                    break;
                                                                            case 'delete':
                                                                                    $this->unable_delete();
                                                                                    break;
                                                                            case 'report':
                                                                                    $this->unable_report();
                                                                                    break;
                                                                    endswitch;
                                                            endif;
                                                    endforeach;
                                            endif;
                                    endif;
                                    echo "error";
                        }
			endif;
		}
Sign In or Register to comment.