diff --git a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/PlanningStateCreator.java b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/PlanningStateCreator.java index e32dc7ae1..7b2f03d47 100644 --- a/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/PlanningStateCreator.java +++ b/libreplan-webapp/src/main/java/org/libreplan/web/planner/order/PlanningStateCreator.java @@ -82,7 +82,9 @@ import org.libreplan.business.scenarios.entities.Scenario; import org.libreplan.business.users.daos.IOrderAuthorizationDAO; import org.libreplan.business.users.entities.OrderAuthorization; import org.libreplan.business.users.entities.ProfileOrderAuthorization; +import org.libreplan.business.users.entities.User; import org.libreplan.business.users.entities.UserOrderAuthorization; +import org.libreplan.web.UserUtil; import org.libreplan.web.calendars.BaseCalendarModel; import org.libreplan.web.planner.TaskElementAdapter; import org.springframework.beans.factory.annotation.Autowired; @@ -867,7 +869,16 @@ public class PlanningStateCreator { } public void reassociateResourcesWithSession() { + User user = UserUtil.getUserFromSession(); + boolean isBoundUser = (user != null) && user.isBound(); + for (Resource resource : resources) { + if (isBoundUser + && user.getWorker().getId().equals(resource.getId())) { + // Resource bound to current user is already associated with + // session + continue; + } resourceDAO.reattach(resource); } // ensuring no repeated instances of criterions