String action = getAction(request);
String[] params = getActionParams(request);
if (Params.USER_GROUP.INVITE.PARAMS.ACTION_ID.equals(action)) {
String licID = params[0];
License licenseToAffect = (License) DaoFactory.getLicenseDao().find(new Long(Long.parseLong(licID)));
if (licenseToAffect == null) {
// No group found
LOGGER.debug("failed to retrieve the license to affect");
request.setAttribute(Params.REDIRECT.REQUEST.REDIRECTION_URL, ActionsHelper.homepageForward().getPath());
request.setAttribute(Params.REDIRECT.REQUEST.MESSAGE_KEY, "illegal.state");
return "redirect";
} else {
String mail = (String)request.getParameter(Params.USER_GROUP.INVITE.PARAMS.MAIL+licID);
if (StringUtils.isBlank(mail)) {
addWOJMessages(request, RessourceBundleApplicationMessage.warning("woj.user.group.mail.required", null));
prepareValueForAdministration(form, request, userLogged, licenseToAffect.getGroup());
return "user.group.administrate";
}
ServiceFactory.getLicenseService().inviteUserToUseLicense(userLogged, mail, licenseToAffect.getId());
request.getParameterMap().put(Params.USER_GROUP.EDIT.PARAMS.GROUP_ID, "" + licenseToAffect.getGroup().getId());
addWOJMessages(request, RessourceBundleApplicationMessage.info("woj.page.admin.user.group.ok.invite.free", new Object[] {mail}));
return administrateGroup(form, request, response);
}
} else if (Params.USER_GROUP.UNINVITE_LICENCE.PARAMS.ACTION_ID.equals(action)) {
String licId = params[0];
License licenseToAffect = (License) DaoFactory.getLicenseDao().find(new Long(Long.parseLong(licId)));
if (licenseToAffect == null) {
// No group found
LOGGER.debug("failed to retrieve the license to affect");
request.setAttribute(Params.REDIRECT.REQUEST.REDIRECTION_URL, ActionsHelper.homepageForward().getPath());
request.setAttribute(Params.REDIRECT.REQUEST.MESSAGE_KEY, "illegal.state");
return "redirect";
} else {
licenseToAffect.setInvitedMail(null);
ServiceFactory.getLicenseService().saveLicense(licenseToAffect);
long grpId = licenseToAffect.getGroup().getId();
request.getParameterMap().put(Params.USER_GROUP.EDIT.PARAMS.GROUP_ID, "" + grpId);
return administrateGroup(form, request, response);
}
} else if (Params.USER_GROUP.REMOVE_LICENCE.PARAMS.ACTION_ID.equals(action)) {
String licId = params[0];
License licenseToAffect = (License) DaoFactory.getLicenseDao().find(new Long(Long.parseLong(licId)));
if (licenseToAffect == null) {
// No group found
LOGGER.debug("failed to retrieve the license to affect");
request.setAttribute(Params.REDIRECT.REQUEST.REDIRECTION_URL, ActionsHelper.homepageForward().getPath());
request.setAttribute(Params.REDIRECT.REQUEST.MESSAGE_KEY, "illegal.state");
return "redirect";
} else {
long grpId = licenseToAffect.getGroup().getId();
ServiceFactory.getGroupService().removeLicense(new Long(grpId), new Long(licenseToAffect.getId()));
request.getParameterMap().put(Params.USER_GROUP.EDIT.PARAMS.GROUP_ID, "" + grpId);
return administrateGroup(form, request, response);
}
} else {
LOGGER.debug("Cannot find known action in: " + request.getParameterMap());