Modificar Usuario

modificar_usuario (administrador_usuario as Boolean, id_usuario as String, (opcional) nombre as String, (opcional) apellido as String, (opcional) clave as String, (opcional) id_idioma as String,(opcional) codigo_postal as String, (opcional)dato_adicional_1(opcional) dato_adicional_2(opcional) dato_adicional_3(opcional) direccion as String, (opcional) email as String, (opcional) localidad as String, (opcional) telefono as String, (opcional) url as String, (opcional) foto_nombre as String, (opcional) foto_base64 as Base64)

El método modifica un usuario en el campus. Modifica solamente los datos generales del usuario, es decir aquellos que no están relacionados con los grupos a los que pertenecen.

Devuelve: [1|error]


Funcionamiento

  • El único campo obligatorio es 'id_usuario', por lo que podemos elegir modificar solo aquellos datos del usuario que nos interesen, puesto que todos son opcionales.
    • Si no se especifican valores para los campos no obligatorios, estos permanecen vacíos, es decir no existen valores por defecto definidos para ellos.
  • El 'id_usuario' ingresado esta sujeto a las mismas validaciones a las que he sometido al ingresarlo desde la administración.
    • Importante: El valor pasado al parametro id_usuario ahora debe ser el del username.
  • El 'nombre' ingresado no puede superar los 50 caracteres.
  • El 'apellido' ingresado no puede superar los 50 caracteres.
  • El valor ingresado para el campo 'clave' esta sujeto a las restricciones definidas en la configuración.
    • La clave establecida es siempre permanente.
  • El valor ingresado para el campo 'id_idioma' debe corresponder con un valor de 'id_idioma' existente en la tabla idiomas.
  • El campo 'administrador_usuario' es de tipo booleano, por lo tanto deberían pasarse valores 0 o 1, o 'true' o 'false'.
  • Si queremos modificar un usuario seteandolo como webmaster (administrador_usuario debe ser cualquier valor distinto de vacío, false, 0), se creará un registro de ese usuario para cada grupo existente en la plataforma, con los siguientes valores por defecto:
    • En 'perfil' se seteará "I".
    • En 'estado' se seteará "A".
    • En 'administrador_grupo' se seteará "-".
  • dato_adicional_1 = indica el contenido del campo 'valor' de la tabla 'datos_adicionales_valores', cuyo campo 'id_campo', corresponde al 'id_campo' de la tabla 'datos_adicionales_legacy' para el registro con 'nombre_campo' = "empresa_usuario". Esto no significa que el valor en cuestión sea el correspondiente al dato adicional EMPRESA_ACTUAL, sino que corresponde al valor del dato adicional cuyo 'id_campo', en la tabla 'datos_adicionales_campos', es el mismo que el 'id_campo' para el registro correspondiente al 'nombre_campo' = "empresa_usuario".
  • dato_adicional_2 = indica el contenido del campo 'valor' de la tabla 'datos_adicionales_valores', cuyo campo 'id_campo', corresponde al 'id_campo' de la tabla 'datos_adicionales_legacy' para el registro con 'nombre_campo' = "telefono2_usuario". Esto no significa que el valor en cuestión sea el correspondiente al dato adicional TELEFONO_MOVIL, sino que corresponde al valor del dato adicional cuyo 'id_campo', en la tabla 'datos_adicionales_campos', es el mismo que el 'id_campo' para el registro correspondiente al 'nombre_campo' = "telefono2_usuario".
  • dato_adicional_3 = indica el contenido del campo 'valor' de la tabla 'datos_adicionales_valores', cuyo campo 'id_campo', corresponde al 'id_campo' de la tabla 'datos_adicionales_legacy' para el registro con 'nombre_campo' = "direccion2_usuario". Esto no significa que el valor en cuestión sea el correspondiente al dato adicional OTRO_DOMICILIO, sino que corresponde al valor del dato adicional cuyo 'id_campo', en la tabla 'datos_adicionales_campos', es el mismo que el 'id_campo' para el registro correspondiente al 'nombre_campo' = "direccion2_usuario".
  • El tipo de dato correspondiente a 'valor' depende de cada dato adicional.
    • Para el campo adicional de tipo SELECT, debe llegar el valor en sí, como para el resto de los tipos de campos. La aclaración es pertinente porque en la tabla en cuestión se termina guardando el id.

  • Si queremos establecer la foto para el usuario, debemos completar dos parámetros: 'foto_nombre' y 'foto_base64'.
    • 'foto_nombre':
      • en dicho parámetro se especificará el [nombre].[extension] de la foto subida.
      • estan permitidas las siguientes extensiones:.gif, .jpg, .jpeg, .png, .bmp.
    • 'foto_base64': en dicho parámetro se especificará la codificación en base64 correspondiente a la foto en cuestión.
      • tener en cuenta que el contenido base64 especificado puede o no incluir el MIME, se debería poder procesar de las dos maneras.
      • los tipos de mime types válidos son: image/gif, image/jpeg, image/png, image/bmp.
      • Ejemplo de conversor de imagenes a base64 online: http://emiliocobos.net/demos/conversor-de-imagenes-a-base64/
    • La posibilidad de subir la foto del usuario será opcional, pero si se hace, es obligatorio completar ambos parámetros.
      • si el parámetro 'foto_nombre' se envía vacío, esto indica borrado de la foto actual, si es que existe.
    • Lo que se hará es crear la imagen con el [nombre].[extension] especificado en 'foto_nombre' y con el contenido especificado en 'foto_base64'.


Ejemplo de Respuesta

Ejemplo de respuesta de la llamada modificar_usuario con los datos a modificar en un usuario


  • Llamada:

     <aula:modificar_usuario>
        <aula:usuario>
           <aula:administrador_usuario></aula:administrador_usuario>
           <aula:id_usuario>manes2</aula:id_usuario>
           <aula:nombre>facu</aula:nombre>
           <aula:apellido>manes</aula:apellido>
           <aula:clave>asd123</aula:clave>
           <aula:id_idioma>10</aula:id_idioma>
           <aula:codigo_postal></aula:codigo_postal>
           <aula:dato_adicional_1></aula:dato_adicional_1>
           <aula:dato_adicional_2></aula:dato_adicional_2>
           <aula:dato_adicional_3></aula:dato_adicional_3>
           <aula:direccion></aula:direccion>
           <aula:email></aula:email>
           <aula:localidad>Salto</aula:localidad>
           <aula:telefono></aula:telefono>
           <aula:url></aula:url>
           <aula:foto_nombre>lisa.jpg</aula:foto_nombre>
           <aula:foto_base64>data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAkGBwgHBgkICAgKCgkLDhcPDg0NDhwUFREXIh4jIyEeI....</aula:foto_base64>
        </aula:usuario>
     </aula:modificar_usuario>

En esta llamada, podemos observar que: se solicita modificar los atributos para un usuario con 'id_usuario'= "manes2".


  • Respuesta:

     <modificar_usuario_response xmlns="urn:Educativa/Aula/">
        <estado>1</estado>
     </modificar_usuario_response>


Errores de validación

  • Educativa::Aula::Error::IdUsuarioInvalido - ocurre cuando la identificación del usuario contiene caracteres inválidos.
  • Educativa::Aula::Error::UsuarioInexistente - ocurre cuando el usuario no se encuentra registrado en la plataforma.
  • Educativa::Error::InvalidEmailAddress - ocurre cuando el mail ingresado no es una dirección válida.
  • Educativa::Aula::Error::InvalidNombreApellidoUsuario - cuando el nombre o apellido ingresado contienen caracteres no permitidos.
  • Educativa::Error::ClaveUsuarioInvalida - cuando la clave ingresada no cumple con la política de claves definida en la plataforma.
  • Educativa::Error::IdiomaInvalido - cuando el id_idioma ingresado no esta definido en la plataforma.
  • Educativa::Aula::Error::UrlUsuario - cuando la url ingresada no contiene http:// o https:// al inicio.
  • Educativa::Aula::Error::DAValorInvalido - cuando uno de los valores asignados a los campos de la forma dato_adicional_[n] no cumple con las validaciones definidas, si es que estos apuntan a uno de los datos adicionales con validaciones: SITIO_WEB, DOCUMENTO, SEXO.
  • Educativa::Aula::Error::NombreArchivoInvalido - cuando el [nombre].[extension], ingresados en 'foto_nombre', supera los 250 caracteres.También ocurre cuando las tags del parámetro fueron borradas , siendo que que el párametro 'foto_base64' si fue especificado.
  • Educativa::Aula::Error::ExtensionInvalida - cuando la [extension] del nombre ingresado en 'foto_nombre' no esta dentro de las siguientes: .gif, .jpg, .jpeg, .png, .bmp.
  • Educativa::Aula::Error::TipoMimeInvalido - el tipo de mime definido en la cabecera de la cadena, especificada en 'foto_base64', no corresponde a uno de los tipos de mimes definidos para los tipos de archivos permitidos.
  • Educativa::Aula::Error::Base64Invalido - cuando habiendo especificado valor para el parámetro 'foto_nombre', el parámetro 'foto_base64' fue especificado vacío, o sus tags fueron borradas directamente.