diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/ProfileOrderAuthorization.java b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/ProfileOrderAuthorization.java
index 1b64bc8ee..e94896943 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/ProfileOrderAuthorization.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/ProfileOrderAuthorization.java
@@ -27,6 +27,8 @@ package org.navalplanner.business.users.entities;
*/
public class ProfileOrderAuthorization extends OrderAuthorization {
+ private Profile profile;
+
/**
* Necessary for Hibernate.
*/
@@ -43,4 +45,12 @@ public class ProfileOrderAuthorization extends OrderAuthorization {
public static ProfileOrderAuthorization create(OrderAuthorizationType type) {
return create(new ProfileOrderAuthorization(type));
}
+
+ public void setProfile(Profile profile) {
+ this.profile = profile;
+ }
+
+ public Profile getProfile() {
+ return profile;
+ }
}
diff --git a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/UserOrderAuthorization.java b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/UserOrderAuthorization.java
index 4e6ca7d52..50f90e047 100644
--- a/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/UserOrderAuthorization.java
+++ b/navalplanner-business/src/main/java/org/navalplanner/business/users/entities/UserOrderAuthorization.java
@@ -27,6 +27,8 @@ package org.navalplanner.business.users.entities;
*/
public class UserOrderAuthorization extends OrderAuthorization {
+ private User user;
+
/**
* Necessary for Hibernate.
*/
@@ -43,4 +45,12 @@ public class UserOrderAuthorization extends OrderAuthorization {
public static UserOrderAuthorization create(OrderAuthorizationType type) {
return create(new UserOrderAuthorization(type));
}
+
+ public void setUser(User user) {
+ this.user = user;
+ }
+
+ public User getUser() {
+ return user;
+ }
}
diff --git a/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml b/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml
index 6ff6a17fe..a797ac8b5 100644
--- a/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml
+++ b/navalplanner-business/src/main/resources/org/navalplanner/business/users/entities/Users.hbm.xml
@@ -82,9 +82,11 @@
+
+
diff --git a/navalplanner-business/src/test/java/org/navalplanner/business/test/users/daos/OrderAuthorizationDAOTest.java b/navalplanner-business/src/test/java/org/navalplanner/business/test/users/daos/OrderAuthorizationDAOTest.java
index 8a70ef32d..0e1e80a26 100644
--- a/navalplanner-business/src/test/java/org/navalplanner/business/test/users/daos/OrderAuthorizationDAOTest.java
+++ b/navalplanner-business/src/test/java/org/navalplanner/business/test/users/daos/OrderAuthorizationDAOTest.java
@@ -26,14 +26,23 @@ import static org.junit.Assert.assertNotNull;
import static org.navalplanner.business.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_FILE;
import static org.navalplanner.business.test.BusinessGlobalNames.BUSINESS_SPRING_CONFIG_TEST_FILE;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.UUID;
+
import org.junit.Test;
import org.junit.runner.RunWith;
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
import org.navalplanner.business.users.daos.IOrderAuthorizationDAO;
+import org.navalplanner.business.users.daos.IProfileDAO;
+import org.navalplanner.business.users.daos.IUserDAO;
import org.navalplanner.business.users.entities.OrderAuthorization;
import org.navalplanner.business.users.entities.OrderAuthorizationType;
+import org.navalplanner.business.users.entities.Profile;
import org.navalplanner.business.users.entities.ProfileOrderAuthorization;
+import org.navalplanner.business.users.entities.User;
import org.navalplanner.business.users.entities.UserOrderAuthorization;
+import org.navalplanner.business.users.entities.UserRole;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@@ -54,6 +63,12 @@ public class OrderAuthorizationDAOTest {
@Autowired
IOrderAuthorizationDAO orderAuthorizationDAO;
+ @Autowired
+ IUserDAO userDAO;
+
+ @Autowired
+ IProfileDAO profileDAO;
+
private UserOrderAuthorization createValidUserOrderAuthorization() {
return UserOrderAuthorization.create(OrderAuthorizationType.READ_AUTHORIZATION);
}
@@ -62,6 +77,17 @@ public class OrderAuthorizationDAOTest {
return ProfileOrderAuthorization.create(OrderAuthorizationType.READ_AUTHORIZATION);
}
+ private User createValidUser() {
+ String loginName = UUID.randomUUID().toString();
+ return User.create(loginName, loginName, new HashSet());
+ }
+
+ private Profile createValidProfile() {
+ Set roles = new HashSet();
+ roles.add(UserRole.ROLE_BASIC_USER);
+ return Profile.create(UUID.randomUUID().toString(), roles);
+ }
+
@Test
public void testInSpringContainer() {
assertNotNull(orderAuthorizationDAO);
@@ -100,4 +126,24 @@ public class OrderAuthorizationDAOTest {
orderAuthorizationDAO.save(profileOrderAuthorization);
assertEquals(previous + 2, orderAuthorizationDAO.list(OrderAuthorization.class).size());
}
+
+ @Test
+ public void testNavigateFromOrderAuthorizationToUser() {
+ User user = createValidUser();
+ userDAO.save(user);
+ UserOrderAuthorization userOrderAuthorization = createValidUserOrderAuthorization();
+ userOrderAuthorization.setUser(user);
+ orderAuthorizationDAO.save(userOrderAuthorization);
+ assertEquals(user.getId(), userOrderAuthorization.getUser().getId());
+ }
+
+ @Test
+ public void testNavigateFromOrderAuthorizationToProfile() {
+ Profile profile = createValidProfile();
+ profileDAO.save(profile);
+ ProfileOrderAuthorization profileOrderAuthorization = createValidProfileOrderAuthorization();
+ profileOrderAuthorization.setProfile(profile);
+ orderAuthorizationDAO.save(profileOrderAuthorization);
+ assertEquals(profile.getId(), profileOrderAuthorization.getProfile().getId());
+ }
}