You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

PermissionsService.java 12KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. /*
  2. * SonarQube
  3. * Copyright (C) 2009-2017 SonarSource SA
  4. * mailto:info AT sonarsource DOT com
  5. *
  6. * This program is free software; you can redistribute it and/or
  7. * modify it under the terms of the GNU Lesser General Public
  8. * License as published by the Free Software Foundation; either
  9. * version 3 of the License, or (at your option) any later version.
  10. *
  11. * This program is distributed in the hope that it will be useful,
  12. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
  14. * Lesser General Public License for more details.
  15. *
  16. * You should have received a copy of the GNU Lesser General Public License
  17. * along with this program; if not, write to the Free Software Foundation,
  18. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  19. */
  20. package org.sonarqube.ws.client.permission;
  21. import org.sonarqube.ws.WsPermissions;
  22. import org.sonarqube.ws.WsPermissions.CreateTemplateWsResponse;
  23. import org.sonarqube.ws.WsPermissions.SearchProjectPermissionsWsResponse;
  24. import org.sonarqube.ws.WsPermissions.SearchTemplatesWsResponse;
  25. import org.sonarqube.ws.WsPermissions.UpdateTemplateWsResponse;
  26. import org.sonarqube.ws.WsPermissions.UsersWsResponse;
  27. import org.sonarqube.ws.WsPermissions.WsSearchGlobalPermissionsResponse;
  28. import org.sonarqube.ws.client.BaseService;
  29. import org.sonarqube.ws.client.GetRequest;
  30. import org.sonarqube.ws.client.PostRequest;
  31. import org.sonarqube.ws.client.WsConnector;
  32. import org.sonarqube.ws.client.project.ProjectsWsParameters;
  33. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_DESCRIPTION;
  34. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_GROUP_ID;
  35. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_GROUP_NAME;
  36. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ID;
  37. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_NAME;
  38. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_ORGANIZATION;
  39. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PERMISSION;
  40. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PROJECT_ID;
  41. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PROJECT_KEY;
  42. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_PROJECT_KEY_PATTERN;
  43. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_QUALIFIER;
  44. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_TEMPLATE_ID;
  45. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_TEMPLATE_NAME;
  46. import static org.sonarqube.ws.client.permission.PermissionsWsParameters.PARAM_USER_LOGIN;
  47. public class PermissionsService extends BaseService {
  48. public PermissionsService(WsConnector wsConnector) {
  49. super(wsConnector, PermissionsWsParameters.CONTROLLER);
  50. }
  51. public WsPermissions.WsGroupsResponse groups(GroupsWsRequest request) {
  52. GetRequest get = new GetRequest(path("groups"))
  53. .setParam(PARAM_PERMISSION, request.getPermission())
  54. .setParam(PARAM_PROJECT_ID, request.getProjectId())
  55. .setParam(PARAM_PROJECT_KEY, request.getProjectKey())
  56. .setParam("p", request.getPage())
  57. .setParam("ps", request.getPageSize())
  58. .setParam("q", request.getQuery());
  59. return call(get, WsPermissions.WsGroupsResponse.parser());
  60. }
  61. public void addGroup(AddGroupWsRequest request) {
  62. call(new PostRequest(path("add_group"))
  63. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  64. .setParam(PARAM_PERMISSION, request.getPermission())
  65. .setParam(PARAM_PROJECT_ID, request.getProjectId())
  66. .setParam(PARAM_PROJECT_KEY, request.getProjectKey())
  67. .setParam(PARAM_GROUP_ID, request.getGroupId())
  68. .setParam(PARAM_GROUP_NAME, request.getGroupName()));
  69. }
  70. public void addGroupToTemplate(AddGroupToTemplateWsRequest request) {
  71. call(new PostRequest(path("add_group_to_template"))
  72. .setParam(PARAM_GROUP_ID, request.getGroupId())
  73. .setParam(PARAM_GROUP_NAME, request.getGroupName())
  74. .setParam(PARAM_PERMISSION, request.getPermission())
  75. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  76. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName()));
  77. }
  78. public void addUser(AddUserWsRequest request) {
  79. call(new PostRequest(path("add_user"))
  80. .setParam(PARAM_USER_LOGIN, request.getLogin())
  81. .setParam(PARAM_PERMISSION, request.getPermission())
  82. .setParam(PARAM_PROJECT_ID, request.getProjectId())
  83. .setParam(PARAM_PROJECT_KEY, request.getProjectKey())
  84. .setParam(PARAM_ORGANIZATION, request.getOrganization()));
  85. }
  86. public void addUserToTemplate(AddUserToTemplateWsRequest request) {
  87. call(new PostRequest(path("add_user_to_template"))
  88. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  89. .setParam(PARAM_PERMISSION, request.getPermission())
  90. .setParam(PARAM_USER_LOGIN, request.getLogin())
  91. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  92. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName()));
  93. }
  94. public void addProjectCreatorToTemplate(AddProjectCreatorToTemplateWsRequest request) {
  95. call(new PostRequest(path("add_project_creator_to_template"))
  96. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  97. .setParam(PARAM_PERMISSION, request.getPermission())
  98. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  99. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName()));
  100. }
  101. public void applyTemplate(ApplyTemplateWsRequest request) {
  102. call(new PostRequest(path("apply_template"))
  103. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  104. .setParam(PARAM_PROJECT_ID, request.getProjectId())
  105. .setParam(PARAM_PROJECT_KEY, request.getProjectKey())
  106. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  107. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName()));
  108. }
  109. public void bulkApplyTemplate(BulkApplyTemplateWsRequest request) {
  110. call(new PostRequest(path("bulk_apply_template"))
  111. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  112. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  113. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName())
  114. .setParam("q", request.getQuery())
  115. .setParam(ProjectsWsParameters.PARAM_QUALIFIERS, inlineMultipleParamValue(request.getQualifiers()))
  116. .setParam(ProjectsWsParameters.PARAM_VISIBILITY, request.getVisibility())
  117. .setParam(ProjectsWsParameters.PARAM_ANALYZED_BEFORE, request.getAnalyzedBefore())
  118. .setParam(ProjectsWsParameters.PARAM_ON_PROVISIONED_ONLY, request.isOnProvisionedOnly())
  119. .setParam(ProjectsWsParameters.PARAM_PROJECTS, inlineMultipleParamValue(request.getProjects())));
  120. }
  121. public CreateTemplateWsResponse createTemplate(CreateTemplateWsRequest request) {
  122. PostRequest post = new PostRequest(path("create_template"))
  123. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  124. .setParam(PARAM_NAME, request.getName())
  125. .setParam(PARAM_DESCRIPTION, request.getDescription())
  126. .setParam(PARAM_PROJECT_KEY_PATTERN, request.getProjectKeyPattern());
  127. return call(post, CreateTemplateWsResponse.parser());
  128. }
  129. public void deleteTemplate(DeleteTemplateWsRequest request) {
  130. call(new PostRequest(path("delete_template"))
  131. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  132. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  133. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName()));
  134. }
  135. public void removeGroup(RemoveGroupWsRequest request) {
  136. call(new PostRequest(path("remove_group"))
  137. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  138. .setParam(PARAM_PERMISSION, request.getPermission())
  139. .setParam(PARAM_GROUP_ID, request.getGroupId())
  140. .setParam(PARAM_GROUP_NAME, request.getGroupName())
  141. .setParam(PARAM_PROJECT_ID, request.getProjectId())
  142. .setParam(PARAM_PROJECT_KEY, request.getProjectKey()));
  143. }
  144. public void removeGroupFromTemplate(RemoveGroupFromTemplateWsRequest request) {
  145. call(new PostRequest(path("remove_group_from_template"))
  146. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  147. .setParam(PARAM_PERMISSION, request.getPermission())
  148. .setParam(PARAM_GROUP_ID, request.getGroupId())
  149. .setParam(PARAM_GROUP_NAME, request.getGroupName())
  150. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  151. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName()));
  152. }
  153. public void removeProjectCreatorFromTemplate(RemoveProjectCreatorFromTemplateWsRequest request) {
  154. call(
  155. new PostRequest(path("remove_project_creator_from_template"))
  156. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  157. .setParam(PARAM_PERMISSION, request.getPermission())
  158. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  159. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName()));
  160. }
  161. public void removeUser(RemoveUserWsRequest request) {
  162. call(new PostRequest(path("remove_user"))
  163. .setParam(PARAM_PERMISSION, request.getPermission())
  164. .setParam(PARAM_USER_LOGIN, request.getLogin())
  165. .setParam(PARAM_PROJECT_ID, request.getProjectId())
  166. .setParam(PARAM_PROJECT_KEY, request.getProjectKey()));
  167. }
  168. public void removeUserFromTemplate(RemoveUserFromTemplateWsRequest request) {
  169. call(new PostRequest(path("remove_user_from_template"))
  170. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  171. .setParam(PARAM_PERMISSION, request.getPermission())
  172. .setParam(PARAM_USER_LOGIN, request.getLogin())
  173. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  174. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName()));
  175. }
  176. public WsSearchGlobalPermissionsResponse searchGlobalPermissions() {
  177. GetRequest get = new GetRequest(path("search_global_permissions"));
  178. return call(get, WsSearchGlobalPermissionsResponse.parser());
  179. }
  180. public SearchProjectPermissionsWsResponse searchProjectPermissions(SearchProjectPermissionsWsRequest request) {
  181. GetRequest get = new GetRequest(path("search_project_permissions"))
  182. .setParam(PARAM_PROJECT_ID, request.getProjectId())
  183. .setParam(PARAM_PROJECT_KEY, request.getProjectKey())
  184. .setParam(PARAM_QUALIFIER, request.getQualifier())
  185. .setParam("p", request.getPage())
  186. .setParam("ps", request.getPageSize())
  187. .setParam("q", request.getQuery());
  188. return call(get, SearchProjectPermissionsWsResponse.parser());
  189. }
  190. public SearchTemplatesWsResponse searchTemplates(SearchTemplatesWsRequest request) {
  191. GetRequest get = new GetRequest(path("search_templates"))
  192. .setParam("q", request.getQuery());
  193. return call(get, SearchTemplatesWsResponse.parser());
  194. }
  195. public void setDefaultTemplate(SetDefaultTemplateWsRequest request) {
  196. call(new PostRequest(path("set_default_template"))
  197. .setParam(PARAM_QUALIFIER, request.getQualifier())
  198. .setParam(PARAM_TEMPLATE_ID, request.getTemplateId())
  199. .setParam(PARAM_TEMPLATE_NAME, request.getTemplateName()));
  200. }
  201. public UpdateTemplateWsResponse updateTemplate(UpdateTemplateWsRequest request) {
  202. return call(new PostRequest(path("update_template"))
  203. .setParam(PARAM_DESCRIPTION, request.getDescription())
  204. .setParam(PARAM_ID, request.getId())
  205. .setParam(PARAM_NAME, request.getName())
  206. .setParam(PARAM_PROJECT_KEY_PATTERN, request.getProjectKeyPattern()), UpdateTemplateWsResponse.parser());
  207. }
  208. public UsersWsResponse users(UsersWsRequest request) {
  209. return call(new GetRequest(path("users"))
  210. .setParam(PARAM_ORGANIZATION, request.getOrganization())
  211. .setParam(PARAM_PERMISSION, request.getPermission())
  212. .setParam(PARAM_PROJECT_ID, request.getProjectId())
  213. .setParam(PARAM_PROJECT_KEY, request.getProjectKey())
  214. .setParam("p", request.getPage())
  215. .setParam("ps", request.getPageSize())
  216. .setParam("q", request.getQuery()), UsersWsResponse.parser());
  217. }
  218. }