From 8d99c88af55041ff06e6b9372b6b1f66220bed38 Mon Sep 17 00:00:00 2001
From: rsanchez <rsanchez@curisit.net>
Date: Mon, 10 Apr 2017 16:08:58 +0000
Subject: [PATCH] #3529 feature - Added applications to user profile and upgrade to angular4
---
securis/src/main/java/net/curisit/securis/services/UserResource.java | 36 +++++++++++++++++++++++++++++++-----
1 files changed, 31 insertions(+), 5 deletions(-)
diff --git a/securis/src/main/java/net/curisit/securis/services/UserResource.java b/securis/src/main/java/net/curisit/securis/services/UserResource.java
index 0c3e233..a4789d4 100644
--- a/securis/src/main/java/net/curisit/securis/services/UserResource.java
+++ b/securis/src/main/java/net/curisit/securis/services/UserResource.java
@@ -34,6 +34,7 @@
import net.curisit.integrity.commons.Utils;
import net.curisit.securis.DefaultExceptionHandler;
import net.curisit.securis.SeCurisException;
+import net.curisit.securis.db.Application;
import net.curisit.securis.db.Organization;
import net.curisit.securis.db.User;
import net.curisit.securis.ioc.EnsureTransaction;
@@ -131,7 +132,12 @@
}
try {
- this.setUserOrg(user, user.getOrgsIds(), em);
+ this.setUserOrgs(user, user.getOrgsIds(), em);
+ } catch (SeCurisException e) {
+ return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
+ }
+ try {
+ this.setUserApps(user, user.getAppsIds(), em);
} catch (SeCurisException e) {
return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
}
@@ -149,7 +155,7 @@
return Response.ok(user).build();
}
- private void setUserOrg(User user, Set<Integer> orgsIds, EntityManager em) throws SeCurisException {
+ private void setUserOrgs(User user, Set<Integer> orgsIds, EntityManager em) throws SeCurisException {
Set<Organization> orgs = null;
if (orgsIds != null && !orgsIds.isEmpty()) {
orgs = new HashSet<>();
@@ -165,6 +171,23 @@
user.setOrganizations(orgs);
+ }
+
+ private void setUserApps(User user, Set<Integer> appsIds, EntityManager em) throws SeCurisException {
+ Set<Application> apps = null;
+ if (appsIds != null && !appsIds.isEmpty()) {
+ apps = new HashSet<>();
+ for (Integer appId : appsIds) {
+ Application o = em.find(Application.class, appId);
+ if (o == null) {
+ LOG.error("User application with id {} not found in DB", appId);
+ throw new SeCurisException("User's application not found with ID: " + appId);
+ }
+ apps.add(o);
+ }
+ }
+
+ user.setApplications(apps);
}
@PUT
@@ -185,7 +208,12 @@
}
try {
- this.setUserOrg(currentUser, user.getOrgsIds(), em);
+ this.setUserOrgs(currentUser, user.getOrgsIds(), em);
+ } catch (SeCurisException e) {
+ return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
+ }
+ try {
+ this.setUserApps(currentUser, user.getAppsIds(), em);
} catch (SeCurisException e) {
return Response.status(Status.NOT_FOUND).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER, e.getMessage()).build();
}
@@ -199,8 +227,6 @@
} else {
// Password has not been modified
// return
- // Response.status(DefaultExceptionHandler.DEFAULT_APP_ERROR_STATUS_CODE).header(DefaultExceptionHandler.ERROR_MESSAGE_HEADER,
- // "User password is mandatory").build();
}
currentUser.setLastLogin(user.getLastLogin());
--
Gitblit v1.3.2