Registrar Usuarios

registrar_usuarios ( (opcional) administrador_usuario as Boolean, id_usuario as Integer, nombre as String, apellido as String, clave as String,(opcional) id_idioma as String, (opcional) email as String, (opcional)foto_nombre as String, (opcional) foto_base64 as Base64, (opcional) ( (opcional) administrador_grupo as String, (opcional) estado as String, id_grupo as Integer, (opcional) perfil as String) )

El método crea usuarios en el campus asociándolos a grupos (cada usuario puede asociarse a un único grupo) y estableciendole las características especificadas. El funcionamiento es el mismo que actualmente posee el WS 'registrar_usuario', solo que debe poder procesar la creación de múltiples usuarios simultáneamente.

Devuelve: id_usuario + estado + (error_code + error_string)

  • estado 'true' si el usuario fue creado correctamente en el grupo indicado: por cada tupla de datos que se pudo procesar correctamente.
  • estado 'false' por cada tupla de datos que NO se pudo procesar correctamente. En este caso se muestra también el error correspondiente.


Funcionamiento

  • Si queremos crear un usuario debemos especificar minimamente valores para los siguientes campos obligatorios:'id_usuario', 'nombre', 'apellido', 'clave', y valor para el campo 'id_grupo' correspondiente al grupo al cual se agrega el usuario, este campo es obligatorio en el caso de que el usuario a ingresar no sea webmaster('administrador_usuario' = 0).
  • La estructura correspondiente(usuario-grupo) debe ser repetida n veces según la cantidad de tuplas usuario-grupo que se quieran procesar.
    • El 'id_usuario' ingresado esta sujeto a las mismas validaciones a las que esta 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.
    • El valor ingresado para el campo 'id_grupo' debe corresponder con un valor existente para 'id_curso' en la tabla cursos.
  • Si queremos que el usuario este desactivo en el grupo, debemos especificar el valor vació, 0 o "false" para el campo 'estado', con cualquier otro valor que especifiquemos, el usuario va a registrarse como activo.
  • El valor ingresado para el campo 'perfil' debe corresponderse con un valor de 'IdCategoria' existente en la tabla perfiles_.
  • Si no se especifican valores para los campos no obligatorios, estos permanecen vacíos, es decir no existen valores por defecto definidos para ellos. Excepto para los campos 'administrador_usuario', 'id_idioma', 'perfil', 'estado' y 'administrador_grupo' , si no se especifican valores para ellos se setean los siguientes valores por defecto:
    • 'administrador_usuario' se seteará "-"
    • 'id_idioma' se seteará "1".
    • 'perfil' se seteará "A".
    • 'estado' se seteará "-".
    • 'administrador_grupo' se seteará "-".
  • Los campos 'administrador_usuario' y 'administrador_grupo'(corresponde al campo administrador_curso) son de tipo booleano, por lo tanto deberían pasarse valores 0 o 1, o "true" o "false".
  • Si queremos crear un usuario webmaster(administrador_usuario debe ser cualquier valor distinto de: vació, false, 0), no hace falta especificar valores para el bloque usuario_grupo, ya que se creará un registro de ese usuario para cada grupo existente en la plataforma.
    • En 'perfil' se seteará "I".
    • En 'estado' se seteará "A".
    • En 'administrador_grupo' se seteará "-".
  • 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.
    • 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

Tanto el mensaje por creación correcta, como el mensaje por problemas en la creación, deben presentarse junto con el id_usuario ingresado afectado. Es decir, en la salida debe mostrarse un bloque por cada tupla de datos ingresada junto con un mensaje indicando la situación de cada una.


Para el formato de ingreso de datos se propone seguir con la forma actual de ingreso para el WS 'registrar_usuario', solo que ingresando n bloques usuario-grupo, según se requiera.


  • Llamada:ingresaríamos el siguiente bloque n veces:

     <aula:registrar_usuario>
        <aula:usuario>
           <aula:administrador_usuario>false</aula:administrador_usuario>
           <aula:id_usuario>f_manes</aula:id_usuario>
           <aula:nombre>facundo</aula:nombre>
           <aula:apellido>manes</aula:apellido>
           <aula:clave>asdasd</aula:clave>
           <aula:id_idioma>1</aula:id_idioma>
           <aula:email>f_manes@hotmail.com</aula:email>
           <aula:foto_nombre>lisa.jpg</aula:foto_nombre>
           <aula:foto_base64>data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAkGBwgHBgkICAgKCgkLDhcPDg0NDhwUFREXIh4jIyEeI....</aula:foto_base64>
        </aula:usuario>
        <aula:usuario_grupo>
           <aula:administrador_grupo>true</aula:administrador_grupo>
           <aula:estado>1</aula:estado>
           <aula:id_grupo>42</aula:id_grupo>
           <aula:perfil>I</aula:perfil>
        </aula:usuario_grupo>
     </aula:registrar_usuario>


  • Respuesta:se mostrará un bloque con la respuesta a cada tupla ingresada:

     <resultado>
        <id_usuario>f_manes</id_usuario>
        <estado>false</estado>
        <error>
           <error_code>Educativa::Aula::Error::GrupoInexistente</error_code>
           <error_string>No existe el grupo "24"</error_string>
        </error>
     </resultado>


Errores de validación

  • Educativa::Aula::Error::IdUsuarioInvalido - ocurre cuando la identificación del usuario contiene caracteres inválidos.
  • Educativa::Aula::Error::UsuarioExistente - ocurre cuando el usuario ya se encuentra registrado en la plataforma.
  • Educativa::Aula::Error::GrupoInexistente - ocurre cuando se intenta inscribir el usuario a un grupo no existente en la plataforma.
  • Educativa::Aula::Error::PerfilUsuarioInvalido - ocurre cuando el perfil ingresado no corresponde a uno de los perfiles existentes en la plataforma.
  • Educativa::Aula::Error::UsuarioExistenteSistema - ocurre cuando el usuario existe en otro producto, en un entorno con login centralizado.
  • 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::NombreArchivoInvalido - cuando el [nombre].[extension], ingresados en 'foto_nombre', supera los 250 caracteres.También ocurre cuando las tags del parámetro fueron borradas o se paso el valor vacío, 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.