public boolean hasPermission(@Nonnull ProjectPermissionKey permissionKey, @Nonnull Project project, @Nullable ApplicationUser user) { return withPermissionOverriding(doProjectPermissionCheck(permissionKey, project, user, false), permissionKey, project, user); }
@Override @Nonnull public ProjectWidePermission hasProjectWidePermission(@Nonnull final ProjectPermissionKey permissionKey, @Nonnull final Project project, @Nullable final ApplicationUser user) { final ProjectWidePermission corePermissionCheckResult = doProjectWidePermissionCheck(permissionKey, project, user, false); return withPermissionOverriding(corePermissionCheckResult, permissionKey, project, user); }
public boolean hasPermission(int permissionsId, Project project, ApplicationUser user) { ProjectPermissionKey permissionKey = getNonGlobalKey(permissionsId); return hasPermission(permissionKey, project, user); }
public Collection<Project> getProjects(int permissionId, ApplicationUser user, ProjectCategory projectCategory) { ProjectPermissionKey permissionKey = getNonGlobalKey(permissionId); return getProjects(permissionKey, user, projectCategory); }
public boolean hasProjects(final int permissionId, final ApplicationUser user) { ProjectPermissionKey permissionKey = getNonGlobalKey(permissionId); return hasProjects(permissionKey, user); }
private Collection<Project> getProjectObjectsWithPermission(final Collection<Project> projects, final ProjectPermissionKey permissionKey, final ApplicationUser user) { if (!projectPermissionTypesManager.exists(permissionKey)) { return emptyList(); } return Lists.newArrayList(Iterables.filter(projects, project -> { return hasPermission(permissionKey, project, user); })); }
@Override public Collection<Project> getProjects(final int permissionId, final ApplicationUser user) { ProjectPermissionKey permissionKey = getNonGlobalKey(permissionId); return getProjectObjects(permissionKey, user); }
public boolean hasPermission(@Nonnull ProjectPermissionKey permissionKey, @Nonnull Issue issue, @Nullable ApplicationUser user) { return withPermissionOverriding(doIssuePermissionCheck(permissionKey, issue, user), permissionKey, issue.getProjectObject(), user); }
private boolean doIssuePermissionCheck(ProjectPermissionKey permissionKey, final Issue issue, final ApplicationUser user) { // JRA-14788: if generic value of issue object is null, need to defer permission check to project object. if (issue.getId() != null) { return doIssuePermissionCheck(permissionKey, issue, user, false); } else { return doProjectPermissionCheck(permissionKey, issue.getProjectObject(), user, true); } }
private boolean doIssuePermissionCheck(ProjectPermissionKey permissionKey, final Issue issue, final ApplicationUser user, final boolean issueCreation) { // Check that the user can actually see the project this issue is in if (!doProjectPermissionCheck(permissionKey, issue.getProjectObject(), user, false)) { return false; } // Check the project permissions that apply to this issue if (!doPermissionSchemeCheck(permissionKey, issue, user, issueCreation)) { return false; } // When checking Issue Visibility (BROWSE_PROJECT permission), also check the Security Level // JRA-40124 Don't check Security Level for other permissions - this is unnecessary and can cause false negatives if (ProjectPermissions.BROWSE_PROJECTS.equals(permissionKey)) { return ComponentAccessor.getComponent(IssueSecuritySchemeManager.class).hasSecurityLevelAccess(issue, user); } return true; }
protected Collection<Project> getProjectObjects(ProjectPermissionKey permissionKey, final ApplicationUser user) { return getProjectObjectsWithPermission(ComponentAccessor.getProjectManager().getProjectObjects(), permissionKey, user); }
@Override public Collection<Project> getProjects(@Nonnull ProjectPermissionKey permissionKey, ApplicationUser user) { return getProjectObjects(permissionKey, user); }
@Override public boolean hasPermission(final int permissionsId, final Issue issue, final ApplicationUser user) { final boolean permSchemeAllows = super.hasPermission(permissionsId, issue, user); return workflowPermissionCheck(permSchemeAllows, permissionsId, issue, user); }
public Collection<Project> getProjects(@Nonnull ProjectPermissionKey permissionKey, @Nullable ApplicationUser user, @Nullable ProjectCategory projectCategory) { final Collection<Project> projects; if (projectCategory == null) { projects = ComponentAccessor.getProjectManager().getProjectObjectsWithNoCategory(); } else { projects = ComponentAccessor.getProjectManager().getProjectsFromProjectCategory(projectCategory); } return getProjectObjectsWithPermission(projects, permissionKey, user); }
public boolean hasPermission(int permissionsId, Issue issue, ApplicationUser user) { ProjectPermissionKey permissionKey = getNonGlobalKey(permissionsId); return hasPermission(permissionKey, issue, user); }
@Override public boolean hasPermission(@Nonnull final ProjectPermissionKey permissionsKey, @Nonnull final Issue issue, final ApplicationUser user) { final boolean permSchemeAllows = super.hasPermission(permissionsKey, issue, user); return workflowPermissionCheck(permSchemeAllows, permissionsKey, issue, user); }
public boolean hasPermission(@Nonnull ProjectPermissionKey permissionKey, @Nonnull Project project, @Nullable ApplicationUser user, boolean issueCreation) { return withPermissionOverriding(doProjectPermissionCheck(permissionKey, project, user, issueCreation), permissionKey, project, user); }
public boolean hasPermission(final int permissionsId, final Project project, final ApplicationUser user, final boolean issueCreation) { ProjectPermissionKey permissionKey = getNonGlobalKey(permissionsId); return hasPermission(permissionKey, project, user, issueCreation); }
@Override public boolean hasPermission(@Nonnull final ProjectPermissionKey permissionsKey, @Nonnull final Project project, @Nullable final ApplicationUser user) { final boolean permSchemeAllows = super.hasPermission(permissionsKey, project, user); return workflowPermissionCheck(permSchemeAllows, permissionsKey, getIssueOrNull(project.getGenericValue()), user); }
@Override public boolean hasPermission(@Nonnull final ProjectPermissionKey permissionsKey, @Nonnull final Project project, final ApplicationUser user, final boolean issueCreation) { final boolean permSchemeAllows = super.hasPermission(permissionsKey, project, user, issueCreation); return workflowPermissionCheck(permSchemeAllows, permissionsKey, getIssueOrNull(project.getGenericValue()), user); }