in teamcity-invitations-plugin-server/src/main/java/org/jetbrains/teamcity/invitations/InvitationsProceedController.java [42:74]
protected ModelAndView doHandle(@NotNull HttpServletRequest request, @NotNull HttpServletResponse response) throws Exception {
SUser user = SessionUser.getUser(request);
Object tokenObj = request.getParameter("token");
if (tokenObj != null) {
String token = (String) tokenObj;
if (UserFunctions.isGuestUser(user)) {
redirectTo(request.getContextPath() + InvitationsLandingController.INVITATIONS_PATH + "?guestError=1&token=" + token, response);
return null;
}
Invitation invitation = core.runAsSystem(() -> invitations.getInvitation(token));
if (invitation == null) {
Loggers.SERVER.warn("User accepted the invitation with token " + token + " but invitation doesn't exist anymore");
return new ModelAndView(new RedirectView("/"));
}
if (!invitation.isEnabled()) {
Loggers.SERVER.warn("User accepted the invitation with token " + token + " but invitation is disabled");
return new ModelAndView(new RedirectView("/"));
}
if (invitation.getValidationError() != null) {
Loggers.SERVER.warn("User accepted the invitation with token " + token + " but invitation is invalid: " + invitation.getValidationError());
return new ModelAndView(new RedirectView("/"));
}
ModelAndView result = invitation.invitationAccepted(user, request, response);
Loggers.ACTIVITIES.info("User " + user.describe(false) + " accepted the invitation " + invitation.describe(true) + ".");
return result;
} else {
Loggers.SERVER.warn("User accepted the invitation with unknown token: " + WebUtil.getRequestDump(request));
return new ModelAndView(new RedirectView("/"));
}
}