i
Usuarios
La clase modelo contiene las propiedades con sus métodos getter y setter, mientras que la clase servicio contiene las operaciones a realizar con el modelo.
Contenido de la Clase Modelo
El modelo de un usuario contiene:
•Constructor del modelo.
•Conjunto de métodos getter y setter de sus atributos.
Métodos getter para obtener los atributos del usuario
La clase modelo de un caso contiene un conjunto de métodos getter para los atributos del usuario.
Operación |
Descripción |
Parámetros |
---|---|---|
getFirstName() |
Obtiene el nombre del usuario. |
|
getLastName() |
Obtiene el apellido del usuario. |
|
getEmail() |
Obtiene el email del usuario. |
|
getUserCode() |
Obtiene el código del usuario. |
|
getAlias() |
Obtiene el alias del usuario. |
|
getOrganizationalUnit() |
Obtiene la unidad organizacional del usuario. |
|
getAuthorizedUserCode() |
Obtiene el código del usuario autorizante. |
|
getCalendar() |
Obtiene el calendario del usuario. |
|
getJobs() |
Obtiene los puestos laborales. |
|
getDelegates() |
Obtiene los usuarios delegados del usuario. |
|
getDelegatesOf() |
Obtiene los usuarios donde el usuario se encuentra definido como delegado. |
|
getActive() |
Obtiene el estado del usuario.
Valores posibles: 1 - Activo 0- Inactivo |
|
getExpiration() |
Obtiene la fecha de caducidad del usuario. |
|
getUserDurationDays() |
Obtiene la cantidad de días en los que expira la contraseña desde que el usuario fue creado.
Valores posibles: 0 - Nunca 30 - 30 días 60 - 60 días 90 - 90 días |
|
getLicenses() |
Retorna una lista con los productos licenciados para el usuario. |
|
getPermissions() |
Retorna una lista con los permisos del usuario.
|
|
getRoles() |
Retorna una lista con los roles del usuario. |
|
getIdentificationType() |
Obtiene el tipo de identificación de los datos personales del usuario. |
|
getIdentificationNumber() |
Obtiene el número de identificación de los datos personales del usuario. |
|
getPhone() |
Obtiene el número de teléfono del usuario. |
|
getExtensionNumber() |
Obtiene la extensión de teléfono del usuario. |
|
getNationality() |
Obtiene la nacionalidad del usuario. |
|
getBirthday() |
Obtiene la fecha de nacimiento del usuario. |
|
getCountry() |
Obtiene el país del usuario. |
|
getState() |
Obtiene la provincia del usuario |
|
getCity() |
Obtiene la ciudad del usuario. |
|
getZipCode() |
Obtiene el código postal del usuario. |
|
getStreetName() |
Obtiene la calle del usuario. |
|
getStreetNumber() |
Obtiene el número de vivienda del usuario. |
|
getDepartament() |
Obtiene el código de departamento del usuario. |
|
getLinkedinAccount() |
Obtiene el código de usuario de linkedin. |
|
getTwitterAccount() |
Obtiene el código de usuario de twitter. |
|
getFacebookAccount() |
Obtiene el código de usuario de facebook. |
|
getYouTubeAccount() |
Obtiene el código de usuario de youtube. |
|
getSkypeAccount() |
Obtiene el código de usuario de skype. |
|
getObservation() |
Obtiene las observaciones del usuario. |
Contenido de la Clase Servicio
El servicio permite realizar las siguientes operaciones:
Operación |
Descripción |
Parámetros |
---|---|---|
read(user) |
Lee una instancia. |
User user: Objeto modelo a leer |
create(user) |
Si el usuario ejecutor tiene permiso para crear usuarios, se crea uno. En caso de éxito retorna el código de usuario, caso contrario da una excepción con el mensaje de error. |
User user: Objeto modelo a crear |
update(user) |
Si el usuario ejecutor tiene permiso para modificar usuarios, se realiza la modificación. En caso de éxito retorna el código de usuario, caso contrario da una excepción con el mensaje de error. |
User user: Objeto modelo a modificar |
delete(user) |
Si el usuario ejecutor tiene permiso para eliminar usuarios, lo elimina. Si no es exitoso, da una excepción con el mensaje de error. |
User user: Objeto modelo a elininar |
getUserImage(user) |
Obtiene la imagen del perfil del usuario. |
User user: Objeto modelo a leer |
getThumbnail(user) |
Obtiene la imagen del perfil del usuario en miniatura. |
User user: Objeto modelo a leer |
verifySecurity(user,function) |
Retorna verdadero si el usuario tiene en sus permisos la función de seguridad especificada como parámetro, y falso en caso contrario. |
User user: Objeto modelo a leer
String function: Código de la función de seguridad especificada |
search(searchCriteria) |
Permite recuperar las instancias de usuario que cumplan con los criterios de búsqueda. |
SearchCriteria searchCriteria: Criterios de búsqueda |
invite(Mail, Subjet, Text, IdApplication, OrganizationalUnit, Licences, Permissions, Roles) |
Permite realizar invitaciones de usuarios a una aplicación específica de Deyel. Si no se informa la misma, se asume la aplicación Global.
Si el invitado tiene usuario, al mismo se le agregan los permisos de la invitación que hasta el momento no tenía. Si tiene sesión abierta, ingresa a la aplicación especificada, caso contrario se lo redirige al login de dicha aplicación. Si el invitado no tiene usuario, al aceptar la invitación el mismo se crea y se loguea a Deyel desde la invitación especificada.
Si alguno de los datos no fuera válido retorna una excepción indicando el motivo. |
String Mail: correo electrónico del usuario a invitar
String Subjet: asunto del mail a enviar.
String Text: contenido del mail a enviar.
String IdApplication: identificador de la aplicación a la cuál ingresará el usuario invitado
String OrganizationalUnit: código de la unidad organizacional del usuario invitado
List<User.Licenses> Licences: tipos de licencias asignados al usuario invitado
List<User.Permissions> Permissions: permisos asignados al usuario invitado
List<User.Roles> Roles: roles asignados al usuario invitado |
Ejemplo de Uso
En los ejemplos se utiliza el objeto Deyel usuario y cada ejemplo contiene el uso de la clase modelo “User” y la clase servicio “UserService”.
1.Creación del servicio
Este servicio se crea por única vez en la regla y se lo reutiliza en las distintas operaciones.
UserService userService = new UserService(getApiClient());
|
2.Lectura de un usuario
En este ejemplo se lee un usuario con la propiedad userCode con valor “JPAZ”, utilizando el método read(user) de la clase servicio “UserService”. Se obtiene el valor de la propiedad lastName con el método getter de la clase modelo “User”.
User user = new User(); user.setUserCode("AFARIAS"); user = userService.read(user);
|
3.Creación de un usuario
En este ejemplo se crea un usuario con la propiedad userCode con valor "NUEVO". Se lo activa con licencia para el producto Deyel y el permiso de usuario Final.
UserService userService = new UserService(getApiClient()); User user = new User(); user.setUserCode("NUEVO"); user.setFirstName("Nuevo"); user.setLastName("Usuario"); user.setEmail("nuevousuario@optaris.com"); user.setAlias("nuevousuario@optaris.com"); user.setOrganizationalUnit("0000000003"); user.setActive(1); List<User.Licenses> licensesList = new ArrayList<>(); User.Licenses licenses = new User.Licenses(); licenses.setProduct("DEYEL"); licenses.setLicenseType("EVE"); licensesList.add(licenses); List<User.Permissions> permissionsList = new ArrayList<>(); User.Permissions permissions = new User.Permissions(); permissions.setApplication("DEYEL"); permissions.setPermissionCode("USUARIOFINAL"); permissionsList.add(permissions); user.setLicenses(licensesList); user.setPermissions(permissionsList); userService.create(user);
|
4.Modificación de un usuario
En este ejemplo se modifica el usuario identificado con userCode "AFARIAS". Se lo inactiva y se le cambia la unidad organizacional.
User user = new User(); user.setUserCode(“AFARIAS”); user = userService.read(user); user.setOrganizationalUnit("0000000008"); user.setActive(0); userService.update(user);
|
5.Eliminación de un usuario
En este ejemplo se elimina al usuario identificado con userCode "AFARIAS".
User user = new User(); user.setUserCode(“AFARIAS”); user = userService.read(user); userService.delete(user);
|
6.Obtener la imagen del perfil del usuario
En este ejemplo se lee un usuario identificado con userCode “AFARIAS” y se obtiene su imagen de perfil mediante el método getUserImage(user) de la clase servicio “UserService”.
User user = new User(); user.setUserCode("AFARIAS"); userService.getUserImage(user);
|
7.Obtener imagen en miniatura del perfil del usuario
En este ejemplo se lee un usuario identificado con userCode “AFARIAS” y se obtiene su imagen de perfil en miniatura mediante el método getThumbnail(user) de la clase servicio “UserService”.
User user = new User(); user.setUserCode("AFARIAS"); userService.getThumbnail(user);
|
8.Verificación de seguridad
En este ejemplo se verifica si un usuario identificado con userCode “AFARIAS’ tiene definida la función de seguridad “DUU0C001”. Se utiliza el método verifySecurity((user, “DuU0C001”) de la clase servicio “UserService” con el usuario leído mediante el método read(user) y la función de seguridad especificada, como parámetros.
User user = new User(); user.setUserCode("AFARIAS"); user = userService.read(user); boolean userHasAccess = userService.verifySecurity(user, "DUU0C001");
|
9.Invitación a usuarios
En este ejemplo se envía una invitación al mail “prueba@optaris.com” . Dicha invitación contiene: licencia para dos productos, dos permisos y dos roles. Se establece la aplicación puntual a la que el usuario debe ingresar.
UserService userService = new UserService(getApiClient()); List<User.Licenses> licensesList = new ArrayList<>(); // Definir 2 licencias User.Licenses licenses1 = new User.Licenses(); licenses1.setProduct("DEYEL"); licenses1.setLicenseType("NOM"); User.Licenses licenses2 = new User.Licenses(); licenses2.setProduct("CONT"); licenses2.setLicenseType("MIT"); licensesList.add(licenses1); licensesList.add(licenses2); // Definir 2 permisos List<User.Permissions> permissionsList = new ArrayList<>(); User.Permissions permissions1 = new User.Permissions(); permissions1.setApplication("DEYEL"); permissions1.setPermissionCode("USUARIOFINAL"); permissions2.setApplication("GLOBAL"); permissions2.setPermissionCode("MODELADOR"); permissionsList.add(permissions1); permissionsList.add(permissions2); // Definir 2 roles List<User.Roles> rolesList = new ArrayList<>(); User.Roles rol1 = new User.Roles(); rol1.setRole("DEYEL_PRUEBAFUNCIONES"); rol1.setApplication("DEYEL"); User.Roles rol2 = new User.Roles(); rol2.setRole("ARGLOBAL_COMUNICACIONCUIT"); rol2.setApplication("GLOBAL"); rolesList.add(rol1); rolesList.add(rol2); //Definir la aplicación String idApp = "AED9B9C79826C48"; try { userService.invite("prueba@optaris.com", "Prueba de invitación con app", "texto de prueba", idApp, "0000000008", licensesList, permissionsList, rolesList); } catch (Exception e) { log(e.getMessage()); }
|
Búsqueda
Existen dos tipos de búsquedas: Eager y Lazy.
Las búsquedas sobre los usuarios se pueden realizar mediante el uso del objeto SearchCriteria. Dicho objeto implementa los métodos setReadTypeLazy() y setReadTypeEager() para indicar el tipo de búsqueda que se va a realizar y el método getReadType() para recuperar el tipo de búsqueda establecido.
Si se desea utilizar la búsqueda Eager no es necesario especificarlo con el método setReadTypyEager() porque es la que se utiliza en forma predeterminada.
La lectura de la búsqueda de tipo Lazy recupera en forma predeterminada los valores de las siguientes propiedades del usuario: UserCode, FirstName, LastName, Active, Type, Alias, Email, OrganizationalUnit, Calendar, la referencia de la imagen de usuario que se recupera mediante el método getUserImagelLink(), y la referencia de la imagen thumbnail de usuario que ser recupera mediante el método getThumbnailLink() del objeto User.
El objeto searchCriteria implementa el método setLazyFields() donde se definen las propiedades a obtener. Dicho método se utiliza cuando se requiere el valor de una propiedad que no se recupera en forma predeterminada en la búsqueda de tipo Lazy.
Para recuperar las propiedades del usuario: dsFirstName, dsLastName, cdActive, codigoMail, ImgUser se utiliza el método setLazyFields() que implementa el objeto searchCriteria.
List xProjection = new java.utiljj.ArrayList(); xProjection.add("dsFirstName"); xProjection.add("dsLastName"); xProjection.add("cdActive"); xProjection.add("codigoAMail"); xProjection.add("imgUser"); xSearchCriteria.setLazyFields(xProjection);
|
Ejemplos de Búsqueda
1.Búsqueda Eager
En este ejemplo se recupera una lista con los usuarios que en la propiedad dsEmail contengan “gmail” y que en la propiedad cdOrgUnit tengan el identificador de la unidad organizacional de “Ventas” (0000000007). Los resultados son ordenados por apellido en forma ascendente. Se recorre la lista visualizando los nombres y apellidos de los usuarios. Se utiliza el mismo criterio que para las búsquedas de los formularios.
SearchCriteria searchCriteria = new SearchCriteria(); Criteria criteria1 = Criteria.like("dsEmail", "gmail"); Criteria criteria2 = Criteria.eq("cdOrgUnit", "0000000007"); searchCriteria.addCriteria(criteria1); searchCriteria.addCriteria(criteria2); searchCriteria.addOrderAsc("dsLastName"); SearchResult SearchResult = userService.search(searchCriteria); Iterator it = SearchResult.getResult().iterator(); while (it.hasNext()) { User user = (User) it.next(); log(user.getFirstName() + " " + user.getLastName()); }
|
2.Búsqueda Lazy
En este ejemplo se quieren obtener los valores de las propiedades “dsFirstName” y “dsLastName”.
Se recuperan los usuarios que en la propiedad cdOrgUnit tengan valores del identificador de la unidad organizacional distintos de “Ventas” (0000000007) y de “Sistemas” (0000000008). Los resultados son ordenados por apellido en forma descendente y el tamaño de la página se establece en 5.
Se recorre la lista visualizando los nombres y apellidos de los usuarios. Se utiliza el mismo criterio que para las búsquedas de los formularios.
SearchCriteria xSearchCriteria = new SearchCriteria(); xSearchCriteria.setReadTypeLazy(); xSearchCriteria.addCriteria(Criteria.nin("cdOrgUnit", java.util.Arrays.asList("0000000007", "0000000008" ))); xSearchCriteria.setPageSize(5); List xProyection = new java.util.ArrayList(); xProyection.add("dsFirstName"); xProyection.add("dsLastName"); xSearchCriteria.addOrderDesc("dsLastName"); xSearchCriteria.setLazyFields(xProyection); SearchResult xSearchResult= xUserService.search(xSearchCriteria); for (int page = 1; page <= xSearchResult.getPages(); page++) { List<User> lsUser = xSearchResult.goToPage(page).getResult(); for (User xUser : lsUser) { log(xUser.getFirstName() + " " + xUser.getLastName()+ " pagina = "+page); } }
|