protected ModelAndView doGet()

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;
    }