Modificar Usuario

modificar_usuario (administrador_usuario as Boolean, id_usuario as Integer, nombre as String, apellido as String, clave as String, 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

  • Si queremos modificar un usuario debemos especificar minimamente valores para los siguientes campos obligatorios:'id_usuario', 'nombre', 'apellido', 'clave', 'id_idioma', 'administrador_usuario'.
    • El 'id_usuario' ingresado esta sujeto a las mismas validaciones a las que he sometido al ingresarlo desde la administración.
    • 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.
  • 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 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 vació, 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á 2A".
    • 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".
  • 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.