View Javadoc

1   /*
2    * Copyright (C) 2014 Atlassian
3    *
4    * Licensed under the Apache License, Version 2.0 (the "License");
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at
7    *
8    *     http://www.apache.org/licenses/LICENSE-2.0
9    *
10   * Unless required by applicable law or agreed to in writing, software
11   * distributed under the License is distributed on an "AS IS" BASIS,
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   * See the License for the specific language governing permissions and
14   * limitations under the License.
15   */
16  package com.atlassian.jira.rest.client.api;
17  
18  import com.atlassian.jira.rest.client.api.domain.Permissions;
19  import com.atlassian.jira.rest.client.api.domain.input.MyPermissionsInput;
20  import com.atlassian.util.concurrent.Promise;
21  
22  import javax.annotation.Nullable;
23  
24  public interface MyPermissionsRestClient {
25      /**
26       * Returns permissions for current user and context defined by {@code permissionInput}
27       *
28       * @param permissionInput Permissions context ie. projectKey OR projectId OR issueKey OR issueId.
29       *                        <ul>
30       *                        <li>When no context supplied (null) the project related permissions will return true
31       *                        if the user has that permission in ANY project</li>
32       *                        <li>If a project context is provided, project related permissions will return true
33       *                        if the user has the permissions in the specified project. For permissions
34       *                        that are determined using issue data (e.g Current Assignee), true will be returned
35       *                        if the user meets the permission criteria in ANY issue in that project</li>
36       *                        <li>If an issue context is provided, it will return whether or not the user
37       *                        has each permission in that specific issue</li>
38       *                        </ul>
39       * @return Permissions for user in the context
40       */
41      Promise<Permissions> getMyPermissions(@Nullable MyPermissionsInput permissionInput);
42  }