|
|
/* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0
* * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ 'use strict';
angular.module('flowableApp').service('IdmService', ['$http', '$q', '$rootScope', function ($http, $q, $rootScope) {
var httpAsPromise = function (options) { var deferred = $q.defer(); $http(options). success(function (response, status, headers, config) { deferred.resolve(response); }) .error(function (response, status, headers, config) { deferred.reject(response); }); return deferred.promise; };
/* PROFILE */
this.getProfile = function () { return httpAsPromise( { method: 'GET', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/profile' } ) };
this.updateProfileDetails = function(userData, successCallback, errorCallback) { var deferred = $q.defer(); $http({ method: 'POST', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/profile', data: userData }).success(function (response, status, headers, config) { if (successCallback) { successCallback(response); } deferred.resolve(response); }).error(function (response, status, headers, config) { if (errorCallback) { errorCallback(response, status); } deferred.reject(response); });
var promise = deferred.promise; return promise; };
this.changePassword = function(oldPassword, newPassword) { return httpAsPromise( { method: 'POST', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/profile-password', data: {originalPassword: oldPassword, newPassword: newPassword} } ) };
/* GROUPS */
this.getGroups = function() {
var params = {}; return httpAsPromise( { method: 'GET', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups', params: params } ) };
this.getFunctionalGroups = function() {
var params = {}; params.functional = 'true';
return httpAsPromise( { method: 'GET', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups', params: params } ) };
this.getGroup = function (groupId, includeAllUsers) {
var params = {}; if (includeAllUsers !== null && includeAllUsers !== undefined) { params.includeAllUsers = includeAllUsers; }
return httpAsPromise( { method: 'GET', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups/' + groupId, params: params } ) };
this.getUsersForGroup = function(groupId, filter, page, pageSize) {
var params = {};
if (filter !== null && filter !== undefined) { params.filter = filter; }
if (page !== null && page !== undefined) { params.page = page; }
if (pageSize !== null && pageSize !== undefined) { params.pageSize = pageSize }
return httpAsPromise( { method: 'GET', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups/' + groupId + '/users', params: params } )
};
this.createGroup = function (createGroupData) {
return httpAsPromise( { method: 'POST', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups', data: createGroupData } ) };
this.updateGroup = function (groupId, updatedGroupData) {
var data = {name: updatedGroupData.name}; return httpAsPromise( { method: 'PUT', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups/' + groupId , data: data } ) };
this.deleteGroup = function(groupId) { return httpAsPromise( { method: 'DELETE', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups/' + groupId } ) };
this.activateGroup = function(groupId) { return httpAsPromise( { method: 'POST', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups/' + groupId + '/action/activate' } ) };
this.deleteGroupMember = function(groupId, userId) { return httpAsPromise( { method: 'DELETE', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups/' + groupId + '/members/' + userId } ) };
this.addGroupMember = function(groupId, userId) { return httpAsPromise( { method: 'POST', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/groups/' + groupId + '/members/' + userId } ) };
this.getPrivileges = function() { return httpAsPromise({ method: 'GET', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/privileges' }) };
this.getPrivilege = function(privilegeId) { return httpAsPromise({ method: 'GET', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/privileges/' + privilegeId }); };
this.addUserPrivilege = function(privilegeId, userId) { return httpAsPromise( { method: 'POST', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/privileges/' + privilegeId + '/users', data: { userId : userId} } ) };
this.deleteUserPrivilege = function(privilegeId, userId) { return httpAsPromise( { method: 'DELETE', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/privileges/' + privilegeId + '/users/' + userId } ) };
this.addGroupPrivilege = function(privilegeId, groupId) { return httpAsPromise( { method: 'POST', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/privileges/' + privilegeId + '/groups', data: { groupId : groupId} } ) };
this.deleteGroupPrivilege = function(privilegeId, groupId) { return httpAsPromise( { method: 'DELETE', url: FLOWABLE.CONFIG.contextIdmRestRoot + '/rest/admin/privileges/' + privilegeId + '/groups/' + groupId } ) };
}]);
|