package net.techreadiness.customer.action.task.user.delete;
import static net.techreadiness.security.CorePermissionCodes.CORE_CUSTOMER_USER_DELETE;
import java.util.Collection;
import java.util.Map;
import javax.inject.Inject;
import net.techreadiness.annotation.CoreSecured;
import net.techreadiness.customer.datagrid.UsersByIdItemProvider;
import net.techreadiness.service.object.User;
import net.techreadiness.ui.action.task.user.UserTaskFlowAction;
import net.techreadiness.ui.tags.datagrid.DataGridState;
import net.techreadiness.ui.util.ConversationScoped;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
@Results({ @Result(name = "success", location = "/task/user/delete.jsp"),
@Result(name = "nouserDelete", location = "/task/user/nouserDelete.jsp") })
public class DeleteAction extends UserTaskFlowAction {
private static final long serialVersionUID = 1L;
@Inject
private UsersByIdItemProvider usersByIdItemProvider;
@ConversationScoped
private DataGridState<Map<String, String>> deleteUsersDataGrid;
@Override
@CoreSecured({ CORE_CUSTOMER_USER_DELETE })
public String execute() {
if (getTaskFlowData().getUsers() == null || getTaskFlowData().getUsers().isEmpty()) {
return "nouserDelete";
}
usersByIdItemProvider.setUsers(getTaskFlowData().getUsers());
for (User user : getTaskFlowData().getUsers()) {
if (user.getDeleteDate() != null) {
deleteUsersDataGrid.selectItem(String.valueOf(user.getUserId()), user.getAsMap());
}
}
return SUCCESS;
}
public Collection<User> getUsers() {
return getTaskFlowData().getUsers();
}
}