in teamcity-invitations-plugin-server/src/main/java/org/jetbrains/teamcity/invitations/InvitationAdminController.java [67:109]
protected ModelAndView doGet(@NotNull final HttpServletRequest request, @NotNull final HttpServletResponse response) {
SUser currentUser = SessionUser.getUser(request);
SProject project = teamCityCoreFacade.findProjectByExtId(request.getParameter("projectId"));
if (project == null) {
Loggers.SERVER.warn("Unrecognized invitation request (missing project): " + WebUtil.getRequestDump(request));
return SimpleView.createTextView("Project not found");
}
ModelAndView result;
if (StringUtil.isEmptyOrSpaces(request.getParameter("token"))) {
//return 'new invitation' view
InvitationType<?> invitationType = findInvitationType(request);
if (invitationType == null) {
Loggers.SERVER.warn("Unrecognized invitation request (missing type): " + WebUtil.getRequestDump(request));
return SimpleView.createTextView("Invitation type not found");
}
if (!invitationType.isAvailableFor(currentUser, project)) {
throw new AccessDeniedException(currentUser, "You don't have permissions to create invitation of type '" + invitationType.getDescription() + "'"
+ " in the project " + project.describe(false));
}
result = invitationType.getEditPropertiesView(currentUser, project, null);
} else {
//return 'edit invitation' view
String token = request.getParameter("token");
Invitation found = invitations.getInvitation(token);
if (found == null) {
Loggers.SERVER.warn("Unrecognized invitation request (not found invitation): " + WebUtil.getRequestDump(request));
return SimpleView.createTextView("Invitation not found");
}
if (!found.isAvailableFor(currentUser)) {
throw new AccessDeniedException(currentUser, "You don't have permissions to edit invitation " + found.getToken());
}
result = found.getType().getEditPropertiesView(currentUser, project, found);
}
result.addObject("project", project);
return result;
}