in teamcity-invitations-plugin-server/src/main/java/org/jetbrains/teamcity/invitations/JoinProjectInvitationType.java [203:225]
public ModelAndView invitationAccepted(@NotNull SUser user, @NotNull HttpServletRequest request, @NotNull HttpServletResponse response) {
try {
SProject created = core.runAsSystem(() -> {
Role role = getRole();
SUserGroup group = getGroup();
if (role == null && group == null) {
throw new InvitationException("Failed to proceed invitation with a non-existing role '" + roleId + "' and group '" + groupKey + "'");
}
if (role != null) core.addRole(user, role, project.getProjectId());
if (group != null) core.assignToGroup(user, group);
return project;
});
invitationWorkflowFinished(this);
return new ModelAndView(new RedirectView("/project.html?projectId=" + created.getExternalId(), true));
} catch (Exception e) {
Loggers.SERVER.warn("Failed to create project for the invited user " + user.describe(false), e);
return new ModelAndView(new RedirectView("/", true));
}
}