/** * This method is used to retrieve the information to show the change project type dialog. * The actual change project type is located in ProjectResource. */ @GET @Path ("{projectIdOrKey}/changetypedata/") public Response getChangeProjectTypeData(@PathParam ("projectIdOrKey") final String projectIdOrKey) { final Either<Response, Project> eitherProjectOrErrors = getEitherProjectOrErrors(projectIdOrKey, ProjectAction.EDIT_PROJECT_CONFIG); return eitherProjectOrErrors.left().on(new Function<Project, Response>() { @Nullable @Override public Response apply(final Project project) { List<ProjectTypeBean> projectTypeBeans = getProjectTypeBeans(projectTypeManager.getAllAccessibleProjectTypes()); HelpUrl helpLink = helpUrls.getUrl("jira_applications_overview"); ProjectBean projectBean = projectBeanFactory.fullProject(project, ""); return Response.ok(new ChangeProjectTypeData(projectBean, helpLink.getUrl(), projectTypeBeans)).build(); } }); }
public Response updateProjectAvatar(final @PathParam ("projectIdOrKey") String projectIdOrKey, final AvatarBean avatarBean) return getProjectForEdit(projectIdOrKey).left().on(new Function<Project, Response>()
@Override public Response apply(final PermissionScheme scheme) { return toResponse(oldToNew.apply(scheme)).left().on(new Function<PermissionSchemeInput, Response>() { @Override public Response apply(final PermissionSchemeInput newScheme) { return responseFactory.validateOutcome(permissionSchemeService.updatePermissionScheme(getUser(), schemeId, newScheme)).left().on(new Function<PermissionScheme, Response>() { @Override public Response apply(final PermissionScheme createdScheme) { return newSchemeToResponse.apply(createdScheme); } }); } }); } });
/** * Returns all projects which are visible for the currently logged in user. If no user is logged in, it returns the * list of projects that are visible when using anonymous access. * * @since v4.3 * * @param expand the parameters to expand * @param recent if this parameter is set then only projects recently accessed by the current user (if not logged in then based on HTTP session) will be returned (maximum count limited to the specified number but no more than 20). * @return all projects for which the user has the BROWSE project permission. If no user is logged in, * it returns all projects, which are visible when using anonymous access. * * @response.representation.200.qname * projects * * @response.representation.200.mediaType * application/json * * @response.representation.200.doc * Returns a list of projects for which the user has the BROWSE, ADMINISTER or PROJECT_ADMIN project permission. * * @response.representation.200.example * {@link com.atlassian.jira.rest.v2.issue.project.ProjectBean#PROJECTS_EXAMPLE} */ @GET public Response getAllProjects(@QueryParam ("expand") final String expand, @QueryParam ("recent") Integer recent) { return (recent != null ? getMostRecentProjects(recent) : getAllProjects()).left().on(projectListAsResponse(expand)); }
@Override public Response apply(final List<PermissionSchemeExpandParam> expands) { final ApplicationUser user = jiraAuthenticationContext.getUser(); ProjectService.GetProjectResult projectGetResult = projectFinder.getGetProjectForActionByIdOrKey(user, projectKeyOrId, ProjectAction.VIEW_PROJECT); return responseFactory.validateOutcome(projectGetResult).left().on(new Function<Project, Response>() { @Override public Response apply(final Project project) { ServiceResult serviceResult = permissionSchemeService.assignPermissionSchemeToProject(user, permissionSchemeId.getId(), project.getId()); if (serviceResult.isValid()) { return getProjectPermissionScheme(user, project, expands); } else { return responseFactory.errorResponse(serviceResult.getErrorCollection()); } } }); } });
private Response updatePermissionScheme(final Long schemeId, final Function<PermissionScheme, Either<ErrorCollection, PermissionSchemeInput>> oldToNew, final Function<PermissionScheme, Response> newSchemeToResponse) { return responseFactory.validateOutcome(permissionSchemeService.getPermissionScheme(getUser(), schemeId)).left().on(new Function<PermissionScheme, Response>() { @Override public Response apply(final PermissionScheme scheme) { return toResponse(oldToNew.apply(scheme)).left().on(new Function<PermissionSchemeInput, Response>() { @Override public Response apply(final PermissionSchemeInput newScheme) { return responseFactory.validateOutcome(permissionSchemeService.updatePermissionScheme(getUser(), schemeId, newScheme)).left().on(new Function<PermissionScheme, Response>() { @Override public Response apply(final PermissionScheme createdScheme) { return newSchemeToResponse.apply(createdScheme); } }); } }); } }); }
@Override public Response apply(final List<PermissionSchemeExpandParam> expands) { ServiceOutcome<? extends List<PermissionScheme>> permissionSchemes = permissionSchemeService.getPermissionSchemes(getUser()); return responseFactory.validateOutcome(permissionSchemes).left().on(new Function<List<PermissionScheme>, Response>() { @Override public Response apply(final List<PermissionScheme> permissionSchemes) { List<PermissionSchemeBean> result = ImmutableList.copyOf(transform(permissionSchemes, new Function<PermissionScheme, PermissionSchemeBean>() { @Override public PermissionSchemeBean apply(final PermissionScheme scheme) { return beansFactory.toBean(scheme, expands); } })); return responseFactory.okNoCache(permissionSchemesListEnvelope(result)); } }); } });
@Override public ServiceOutcome<PermissionScheme> perform() throws GenericEntityException { return validateSchemeName(permissionScheme.getName()).left().on(new Function<String, ServiceOutcome<PermissionScheme>>() { @Override public ServiceOutcome<PermissionScheme> apply(@Nullable final String input) { ErrorCollection entitiesValidation = permissionGrantValidator.validateGrants(user, permissionScheme.getPermissions()); if (entitiesValidation.hasAnyErrors()) { return ServiceOutcomeImpl.from(entitiesValidation); } else { Scheme createdScheme = permissionSchemeManager.createSchemeAndEntities(representationConverter.scheme(permissionScheme)); return ok(representationConverter.permissionScheme(createdScheme)); } } }); } });
@Override public Response apply(final List<PermissionSchemeExpandParam> expands) { return toResponse(beansFactory.fromBean(permissionScheme)).left().on(new Function<PermissionSchemeInput, Response>() { @Override public Response apply(final PermissionSchemeInput input) { ServiceOutcome<PermissionScheme> createdScheme = permissionSchemeService.createPermissionScheme(getUser(), input); return responseFactory.validateOutcome(createdScheme).left().on(new Function<PermissionScheme, Response>() { @Override public Response apply(final PermissionScheme scheme) { PermissionSchemeBean created = beansFactory.toBean(scheme, expands); return responseFactory.created(created.getSelf(), created); } }); } }); } });
@Override public Response apply(final List<PermissionSchemeExpandParam> expands) { return responseFactory.validateOutcome(permissionSchemeService.getPermissionScheme(getUser(), schemeId)).left().on(new Function<PermissionScheme, Response>() { @Override public Response apply(final PermissionScheme scheme) { return responseFactory.okNoCache(permissionGrantsListEnvelope(ImmutableList.copyOf(transform(scheme.getPermissions(), new Function<PermissionGrant, PermissionGrantBean>() { @Override public PermissionGrantBean apply(final PermissionGrant grant) { return beansFactory.toBean(grant, schemeId, expands); } })))); } }); } });
@Override public Response apply(final List<PermissionSchemeExpandParam> expands) { return responseFactory.validateOutcome(permissionSchemeService.getPermissionScheme(getUser(), schemeId)).left().on(new Function<PermissionScheme, Response>() { @Override public Response apply(final PermissionScheme permissionScheme) { Optional<PermissionGrant> maybeEntity = findPermissionGrant(permissionScheme, permissionId); if (maybeEntity.isPresent()) { return responseFactory.okNoCache(beansFactory.toBean(maybeEntity.get(), schemeId, expands)); } else { return responseFactory.errorResponse(ErrorCollections.create(i18n.getText("rest.permissionscheme.permission.grant.does.not.exist", permissionId.toString()), ErrorCollection.Reason.NOT_FOUND)); } } }); } });
@Override public ServiceResult perform() throws GenericEntityException { return validate(projectService.getProjectByIdForAction(user, projectId, ProjectAction.VIEW_PROJECT)).left().on(new Function<Project, ServiceResult>() { @Override public ServiceResult apply(final Project project) { return getScheme(user, schemeId).left().on(new Function<PermissionScheme, ServiceOutcome<Object>>() { @Override public ServiceOutcome<Object> apply(final PermissionScheme scheme) { permissionSchemeManager.removeSchemesFromProject(project); permissionSchemeManager.addSchemeToProject(project, representationConverter.scheme(scheme)); return ServiceOutcomeImpl.ok(null); } }); } }); } });
@Override public Response apply(final List<PermissionSchemeExpandParam> expands) { final ApplicationUser user = jiraAuthenticationContext.getUser(); ProjectService.GetProjectResult projectGetResult = projectFinder.getGetProjectForActionByIdOrKey(user, projectKeyOrId, ProjectAction.VIEW_PROJECT); return responseFactory.validateOutcome(projectGetResult).left().on(new Function<Project, Response>() { @Override public Response apply(final Project project) { return getProjectPermissionScheme(user, project, expands); } }); } });
@Override public Response apply(final IssueSecurityLevelScheme securityLevelScheme) { ServiceOutcome<? extends List<IssueSecurityLevel>> issueSecurityLevels = issueSecuritySchemeService.getIssueSecurityLevels(user, id); return responseFactory.validateOutcome(issueSecurityLevels).left().on(new Function<List<IssueSecurityLevel>, Response>() { @Override public Response apply(final List<IssueSecurityLevel> issueSecurityLevels) { return responseFactory.okNoCache( SecuritySchemeJsonBean.fullBean(securityLevelScheme, baseUrls, issueSecurityLevels)); } }); } });
@Override public Response apply(final IssueSecurityLevelScheme securityLevelScheme) { ServiceOutcome<? extends List<IssueSecurityLevel>> issueSecurityLevels = issueSecuritySchemeService.getIssueSecurityLevels(user, securityLevelScheme.getId()); return responseFactory.validateOutcome(issueSecurityLevels).left().on(new Function<List<IssueSecurityLevel>, Response>() { @Override public Response apply(final List<IssueSecurityLevel> issueSecurityLevels) { return responseFactory.okNoCache( SecuritySchemeJsonBean.fullBean(securityLevelScheme, baseUrls, issueSecurityLevels)); } }); } });
@Override public Response apply(final List<NotificationSchemeExpandParam> expands) { final ApplicationUser user = jiraAuthenticationContext.getUser(); final ServiceOutcome<NotificationScheme> schemeForProject = getNotificationSchemeForProject(user, projectKeyOrId); return responseFactory.validateOutcome(schemeForProject).left().on(new Function<NotificationScheme, Response>() { @Override public Response apply(final NotificationScheme notificationScheme) { return responseFactory.okNoCache(notificationSchemeBeanFactory.createNotificationSchemeBean(notificationScheme, expands)); } }); } });
@Override public Response apply(final List<NotificationSchemeExpandParam> expands) { final ServiceOutcome<NotificationScheme> notificationSchemeOutcome = notificationSchemeService.getNotificationScheme(authContext.getUser(), notificationSchemeId); return responseFactory.validateOutcome(notificationSchemeOutcome).left().on(new Function<NotificationScheme, Response>() { @Override public Response apply(final NotificationScheme notificationScheme) { return responseFactory.okNoCache(notificationSchemeBeanFactory.createNotificationSchemeBean(notificationScheme, expands)); } }); } });
@Override public Response apply(final List<PermissionSchemeExpandParam> expands) { return responseFactory.validateOutcome(permissionSchemeService.getPermissionScheme(getUser(), id)).left().on(new Function<PermissionScheme, Response>() { @Override public Response apply(final PermissionScheme scheme) { return responseFactory.okNoCache(beansFactory.toBean(scheme, expands)); } }); } });
private Response getProjectPermissionScheme(final ApplicationUser user, final Project project, final List<PermissionSchemeExpandParam> expands) { return responseFactory.validateOutcome(permissionSchemeService.getSchemeAssignedToProject(user, project.getId())).left().on(new Function<PermissionScheme, Response>() { @Override public Response apply(final PermissionScheme input) { return responseFactory.okNoCache(beansFactory.toBean(input, expands)); } }); }
@Override public ServiceOutcome<PermissionScheme> getPermissionScheme(@Nullable final ApplicationUser user, final Long id) { Either<ServiceOutcome<PermissionScheme>, PermissionScheme> schemeOrError = getScheme(user, id); return schemeOrError.left().on(new Function<PermissionScheme, ServiceOutcome<PermissionScheme>>() { @Override public ServiceOutcome<PermissionScheme> apply(final PermissionScheme scheme) { return ok(scheme); } }); }