aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-web/src/main/js/api
diff options
context:
space:
mode:
authorGrégoire Aubert <gregoire.aubert@sonarsource.com>2017-03-29 11:11:56 +0200
committerGrégoire Aubert <gregaubert@users.noreply.github.com>2017-03-31 10:29:27 +0200
commit19adabdc666a5513b014776ffc283a911a6b2316 (patch)
treeadd80ced12cbd0362591d41eebc1be3083548b00 /server/sonar-web/src/main/js/api
parent76ad0222a481f307474b2990f264780f42cf3627 (diff)
downloadsonarqube-19adabdc666a5513b014776ffc283a911a6b2316.tar.gz
sonarqube-19adabdc666a5513b014776ffc283a911a6b2316.zip
SONAR-8994 Add groups management in members view
Diffstat (limited to 'server/sonar-web/src/main/js/api')
-rw-r--r--server/sonar-web/src/main/js/api/user_groups.js43
-rw-r--r--server/sonar-web/src/main/js/api/users.js20
2 files changed, 57 insertions, 6 deletions
diff --git a/server/sonar-web/src/main/js/api/user_groups.js b/server/sonar-web/src/main/js/api/user_groups.js
new file mode 100644
index 00000000000..becfdb9c8a0
--- /dev/null
+++ b/server/sonar-web/src/main/js/api/user_groups.js
@@ -0,0 +1,43 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2017 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+//@flow
+import { getJSON, post } from '../helpers/request';
+
+export function searchUsersGroups(query?: string, organization?: string) {
+ const url = '/api/user_groups/search';
+ const data: { q?: string, organization?: string } = {};
+ if (query) {
+ data.q = query;
+ }
+ if (organization) {
+ data.organization = organization;
+ }
+ return getJSON(url, data);
+}
+
+export function addUserToGroup(groupId: string, login: string) {
+ const url = '/api/user_groups/add_user';
+ return post(url, { id: groupId, login });
+}
+
+export function removeUserFromGroup(groupId: string, login: string) {
+ const url = '/api/user_groups/remove_user';
+ return post(url, { id: groupId, login });
+}
diff --git a/server/sonar-web/src/main/js/api/users.js b/server/sonar-web/src/main/js/api/users.js
index 2014d391454..c8a5e993449 100644
--- a/server/sonar-web/src/main/js/api/users.js
+++ b/server/sonar-web/src/main/js/api/users.js
@@ -17,6 +17,7 @@
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/
+//@flow
import { getJSON, post } from '../helpers/request';
export function getCurrentUser() {
@@ -24,25 +25,32 @@ export function getCurrentUser() {
return getJSON(url);
}
-export function changePassword(login, password, previousPassword) {
+export function changePassword(login: string, password: string, previousPassword?: string) {
const url = '/api/users/change_password';
- const data = { login, password };
-
+ const data: { login: string, password: string, previousPassword?: string } = { login, password };
if (previousPassword != null) {
data.previousPassword = previousPassword;
}
-
return post(url, data);
}
+export function getUserGroups(login: string, organization?: string) {
+ const url = '/api/users/groups';
+ const data: { login: string, organization?: string, q?: string } = { login };
+ if (organization) {
+ data.organization = organization;
+ }
+ return getJSON(url, data);
+}
+
export function getIdentityProviders() {
const url = '/api/users/identity_providers';
return getJSON(url);
}
-export function searchUsers(query, pageSize) {
+export function searchUsers(query: string, pageSize?: number) {
const url = '/api/users/search';
- const data = { q: query };
+ const data: { q: string, ps?: number } = { q: query };
if (pageSize != null) {
data.ps = pageSize;
}