Option to delete a user pending in the interface of user list
FEA: ItEr75S04BugFixing
This commit is contained in:
parent
8f35436f26
commit
55f8d95e10
6 changed files with 78 additions and 1 deletions
|
|
@ -26,6 +26,7 @@ import java.util.List;
|
|||
import org.navalplanner.business.common.daos.IGenericDAO;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.scenarios.entities.Scenario;
|
||||
import org.navalplanner.business.users.entities.OrderAuthorization;
|
||||
import org.navalplanner.business.users.entities.User;
|
||||
|
||||
/**
|
||||
|
|
@ -80,4 +81,5 @@ public interface IUserDAO extends IGenericDAO<User, Long>{
|
|||
|
||||
public List<User> findByLastConnectedScenario(Scenario scenario);
|
||||
|
||||
List<OrderAuthorization> getOrderAuthorizationsByUser(User user);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,7 +28,9 @@ import org.hibernate.criterion.Restrictions;
|
|||
import org.navalplanner.business.common.daos.GenericDAOHibernate;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.scenarios.entities.Scenario;
|
||||
import org.navalplanner.business.users.entities.OrderAuthorization;
|
||||
import org.navalplanner.business.users.entities.User;
|
||||
import org.navalplanner.business.users.entities.UserOrderAuthorization;
|
||||
import org.springframework.stereotype.Repository;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
|
@ -117,4 +119,11 @@ public class UserDAO extends GenericDAOHibernate<User, Long>
|
|||
return c.list();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<OrderAuthorization> getOrderAuthorizationsByUser(User user) {
|
||||
List orderAuthorizations = getSession()
|
||||
.createCriteria(UserOrderAuthorization.class)
|
||||
.add(Restrictions.eq("user", user)).list();
|
||||
return orderAuthorizations;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,6 +23,7 @@ package org.navalplanner.web.users;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.users.entities.Profile;
|
||||
import org.navalplanner.business.users.entities.User;
|
||||
|
|
@ -125,4 +126,6 @@ public interface IUserModel {
|
|||
|
||||
boolean hasChangedDefaultPasswordOrDisabled(MandatoryUser admin);
|
||||
|
||||
void confirmRemove(User user) throws InstanceNotFoundException;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -25,6 +25,8 @@ import static org.navalplanner.web.I18nHelper._;
|
|||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.users.entities.Profile;
|
||||
import org.navalplanner.business.users.entities.User;
|
||||
|
|
@ -46,6 +48,7 @@ import org.zkoss.zk.ui.util.GenericForwardComposer;
|
|||
import org.zkoss.zul.Combobox;
|
||||
import org.zkoss.zul.Comboitem;
|
||||
import org.zkoss.zul.Constraint;
|
||||
import org.zkoss.zul.Messagebox;
|
||||
import org.zkoss.zul.Textbox;
|
||||
import org.zkoss.zul.api.Window;
|
||||
|
||||
|
|
@ -58,6 +61,8 @@ import org.zkoss.zul.api.Window;
|
|||
public class UserCRUDController extends GenericForwardComposer implements
|
||||
IUserCRUDController {
|
||||
|
||||
private static final org.apache.commons.logging.Log LOG = LogFactory.getLog(UserCRUDController.class);
|
||||
|
||||
private Window createWindow;
|
||||
|
||||
private Window listWindow;
|
||||
|
|
@ -277,4 +282,35 @@ public class UserCRUDController extends GenericForwardComposer implements
|
|||
listWindow)
|
||||
: visibility;
|
||||
}
|
||||
|
||||
public void confirmRemove(User user) {
|
||||
int result = showConfirmDeleteUser(user);
|
||||
if (result == Messagebox.OK) {
|
||||
try {
|
||||
userModel.confirmRemove(user);
|
||||
goToList();
|
||||
} catch (InstanceNotFoundException e) {
|
||||
messagesForUser
|
||||
.showMessage(
|
||||
Level.ERROR,
|
||||
_("Cannot delete user: it does not exist anymore"));
|
||||
LOG.error(_("Error removing element: ", user.getId()), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private int showConfirmDeleteUser(User user) {
|
||||
try {
|
||||
return Messagebox.show(
|
||||
_("Confirm deleting this User. Are you sure?"),
|
||||
_("Delete"), Messagebox.OK | Messagebox.CANCEL,
|
||||
Messagebox.QUESTION);
|
||||
} catch (InterruptedException e) {
|
||||
LOG.error(
|
||||
_("Error on showing removing element: ", user.getId()),
|
||||
e);
|
||||
}
|
||||
return Messagebox.CANCEL;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,10 +26,11 @@ import java.util.List;
|
|||
|
||||
import org.apache.commons.lang.Validate;
|
||||
import org.navalplanner.business.common.Configuration;
|
||||
import org.navalplanner.business.common.Registry;
|
||||
import org.navalplanner.business.common.exceptions.InstanceNotFoundException;
|
||||
import org.navalplanner.business.common.exceptions.ValidationException;
|
||||
import org.navalplanner.business.users.daos.IOrderAuthorizationDAO;
|
||||
import org.navalplanner.business.users.daos.IUserDAO;
|
||||
import org.navalplanner.business.users.entities.OrderAuthorization;
|
||||
import org.navalplanner.business.users.entities.Profile;
|
||||
import org.navalplanner.business.users.entities.User;
|
||||
import org.navalplanner.business.users.entities.UserRole;
|
||||
|
|
@ -55,6 +56,9 @@ public class UserModel extends PasswordUtil implements IUserModel {
|
|||
@Autowired
|
||||
private IUserDAO userDAO;
|
||||
|
||||
@Autowired
|
||||
private IOrderAuthorizationDAO orderAuthorizationDAO;
|
||||
|
||||
@Autowired
|
||||
private IDBPasswordEncoderService dbPasswordEncoderService;
|
||||
|
||||
|
|
@ -221,4 +225,22 @@ public class UserModel extends PasswordUtil implements IUserModel {
|
|||
return user.hasChangedDefaultPasswordOrDisabled();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional
|
||||
public void confirmRemove(User user)
|
||||
throws InstanceNotFoundException {
|
||||
List<OrderAuthorization> orderAuthorizations = getReferencedByOtherEntities(user);
|
||||
if (!orderAuthorizations.isEmpty()) {
|
||||
for (OrderAuthorization orderAuthorization : orderAuthorizations) {
|
||||
orderAuthorizationDAO.remove(orderAuthorization.getId());
|
||||
}
|
||||
}
|
||||
userDAO.remove(user.getId());
|
||||
}
|
||||
|
||||
@Transactional(readOnly = true)
|
||||
public List<OrderAuthorization> getReferencedByOtherEntities(User user){
|
||||
return userDAO.getOrderAuthorizationsByUser(user);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,6 +39,11 @@
|
|||
tooltiptext="${i18n:_('Edit')}"
|
||||
onClick="controller.goToEditForm(self.parent.parent.value);">
|
||||
</button>
|
||||
<button sclass="icono" image="/common/img/ico_borrar1.png"
|
||||
hoverImage="/common/img/ico_borrar.png"
|
||||
tooltiptext="${i18n:_('Delete')}"
|
||||
onClick="controller.confirmRemove(self.parent.parent.value);">
|
||||
</button>
|
||||
</hbox>
|
||||
</row>
|
||||
</rows>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue