X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=ecomp-portal-FE-common%2Fclient%2Fapp%2Fviews%2Frole%2Frole-list-controller.js;h=4090f2fc77976b111e20b1173dd9761d94eb4130;hb=21a8761f684745bb300e075c7e98ad897ace9eed;hp=2ca149cbc52afb354a014c540bab5d1860c6f093;hpb=3af8af1310d5a27cb58be29505573f0bbdc1717c;p=portal.git diff --git a/ecomp-portal-FE-common/client/app/views/role/role-list-controller.js b/ecomp-portal-FE-common/client/app/views/role/role-list-controller.js index 2ca149cb..4090f2fc 100644 --- a/ecomp-portal-FE-common/client/app/views/role/role-list-controller.js +++ b/ecomp-portal-FE-common/client/app/views/role/role-list-controller.js @@ -1,112 +1,271 @@ /*- - * ================================================================================ - * ECOMP Portal - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. + * ============LICENSE_START========================================== + * ONAP Portal + * =================================================================== + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * =================================================================== + * + * Unless otherwise specified, all software contained herein is licensed + * under the Apache License, Version 2.0 (the "License"); + * you may not use this software except in compliance with the License. * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * + * + * 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. - * ================================================================================ + * + * Unless otherwise specified, all documentation contained herein is licensed + * under the Creative Commons License, Attribution 4.0 Intl. (the "License"); + * you may not use this documentation except in compliance with the License. + * You may obtain a copy of the License at + * + * https://creativecommons.org/licenses/by/4.0/ + * + * Unless required by applicable law or agreed to in writing, documentation + * 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. + * + * ============LICENSE_END============================================ + * + * ECOMP is a trademark and service mark of AT&T Intellectual Property. */ -app.controller('roleListController', function ($scope,RoleService,confirmBoxService,conf,$state,$http,$log){ - $scope.showSpinner = true; - - RoleService.getRoles().then(function(data){ - $scope.showSpinner = true; - var j = data; - $scope.data = JSON.parse(j.data); - $scope.availableRoles =JSON.parse($scope.data.availableRoles); - $scope.showSpinner = false; - - },function(error){ - $log.debug('failed'); - }); - - +app.controller('roleListController', function ($scope,RoleService, applicationsService, confirmBoxService,conf,$state,$http,$log, $modal){ + $scope.showSpinner = true; + $scope.syncRolesApplied = false; + $scope.app = { + appName: '' + } $scope.goToUrl = function(roleIdVal) { $state.go("root.role", {"roleId":roleIdVal}); } - $scope.toggleRole = function(selected,availableRole) { - var toggleType = null; - if(selected) { - toggleType = "activate"; - } else { - toggleType = "inactivate"; - } - if((availableRole.id == "1") || (availableRole.id =="999")) - { - confirmBoxService.showInformation(availableRole.name+" role cannot be disabled"); - availableRole.active=!availableRole.active - return; - } - confirmBoxService.confirm("You are about to "+toggleType+" the role "+availableRole.name+". Do you want to continue?").then( - function(confirmed){ - - if(confirmed) { - var uuu = conf.api.toggleRole; - - var postData={role:availableRole}; - $http.post(uuu, postData).then(function(response) { - var data = response.data; - if (typeof data === 'object') { - $log.debug('data:'+data); - $scope.availableRoles=data.availableRoles; - $log.debug('role::availableRoles:'+$scope.availableRoles); - } else { - // - } + $scope.toggleRole = function(appId, selected, availableRole) { + var toggleType = null; + if(selected) { + toggleType = "activate"; + } else { + toggleType = "inactivate"; + } + if((availableRole.id == "1") || (availableRole.id =="999")) + { + confirmBoxService.showInformation(availableRole.name+" role cannot be disabled"); + availableRole.active=!availableRole.active + return; + } + else if((appId != '1') && (availableRole.name.indexOf('global_')!=-1)) + { + confirmBoxService.showInformation("Global role cannot be disabled"); + availableRole.active=!availableRole.active + return; + } + confirmBoxService.confirm("You are about to "+toggleType+" the role "+availableRole.name+". Do you want to continue?").then( + function(confirmed){ + if(confirmed) { + var uuu = conf.api.toggleRole + '/' + appId + '/' + availableRole.id; + var postData={ + appId: appId, + role:availableRole + }; + $http.post(uuu, postData).then(function(response) { + var data = response.data; + if (typeof data === 'object' & data.restcallStatus=='Success') { + $scope.availableRoles = data.availableRoles; + $log.debug('role::availableRoles:'+$scope.availableRoles); + } else { + confirmBoxService.showInformation("Error while saving." + data.restCallStatus); + availableRole.active=!availableRole.active; + } - }, function(response) { - debug.log('response:'+response); - availableRole.active=!availableRole.active; - confirmBoxService.showInformation("Error while saving."); - }); - - } + }, function(response) { + debug.log('response:'+response); + availableRole.active=!availableRole.active; + confirmBoxService.showInformation("Error while saving." + data.restCallStatus); + }); + + } - }) .catch(function(err) { - $log.error('roleListController::confirmBoxService.confirm error:', err); - availableRole.active=!availableRole.active; - }); - - - }; + }) .catch(function(err) { + $log.error('roleListController::confirmBoxService.confirm error:', err); + availableRole.active=!availableRole.active; + }); + }; - $scope.removeRole = function(role) { - - confirmBoxService.confirm("You are about to delete the role "+role.name+". Do you want to continue?").then( + $scope.removeRole = function(appId, availableRole) { + if ((appId != '1') && (availableRole.name.indexOf('global_')!=-1)){ + confirmBoxService.showInformation("Global role cannot be deleted"); + } + else{ + confirmBoxService.confirm("You are about to delete the role "+availableRole.name+". Do you want to continue?").then( function(confirmed){ - var uuu = conf.api.removeRole; - var postData={role:role}; - - - + var uuu = conf.api.removeRole + '/' + appId + '/' + availableRole.id; + var postData={ + appId: appId, + availableRoleId: availableRole.id + }; $http.post(uuu, postData).then(function(response) { var data = response.data; - if (typeof data === 'object') { - $scope.availableRoles=data.availableRoles; + if (typeof data === 'object' & data.restCallStatus == 'Success') { + $scope.availableRoles = data.availableRoles; } else { - // + confirmBoxService.showInformation('Failed to remove role '+ data.error ) } }, function(response) { - $log.debug('response:'+response.data); - confirmBoxService.showInformation("Error while deleting: "+ data.responseText); + confirmBoxService.showInformation("Error while deleting: "+ data.error); }); - }); - + }); + } + }; + + //getCentalizedApps + $scope.getCentralizedApps = function(userId) { + RoleService.getCentralizedApps(userId).then(res=> { + if (res.length>0) { + $scope.centralizedApps = res; + for(var i = 0; i { + $log.error('RoleListCtrl::centralizedApps retrieval error: ', err); + }).finally(() => { + // this.isLoadingTable = false; + }); + + } + + $scope.syncRolesFromExternalAuthSystem = function(appId){ + applicationsService.syncRolesEcompFromExtAuthSystem(appId).then(function(res){ + if(res.status == 200){ + confirmBoxService.showInformation('Sync operation completed successfully!').then(isConfirmed => { + $scope.getRolesForSelectedCentralizedApp(appId); + }); + } else{ + confirmBoxService.showInformation('Sync operation failed for '+app).then(isConfirmed => {}); + } + }); + }; + + + $scope.getRolesForSelectedCentralizedApp = function(val) { + $scope.showSpinner = true; + applicationsService.getSingleAppInfoById(val).then(function(res) { + if(res.centralAuth == true){ + $scope.syncRolesApplied = true; + } + }); + RoleService.getRoles(val).then(function(data){ + var j = data; + $scope.data = JSON.parse(j.data); + $scope.availableRoles =$scope.data.availableRoles; + $scope.showSpinner = false; + },function(error){ + $scope.showSpinner = false; + confirmBoxService.showInformation('Failed to get roles. Please try again!').then(isConfirmed => {}); + $scope.availableRoles = []; + $log.debug('failed'); + }); + } + + $scope.fnManageRoleFunctions = function(){ + RoleService.setManageRoleDetails($scope.centralizedApps, $scope.apps.selectedCentralizedApp); + }; + + function init(){ + $scope.apps = { + selectedCentralizedApp:'' + }; + $scope.getCentralizedApps(sessionStorage.userId); + } + + init(); + + //edit Role + $scope.editRoleModalPopup = function(appId, availableRole) { + $scope.editRole = availableRole; + if(appId != undefined && availableRole.id != undefined){ + RoleService.getRole(appId, availableRole.id).then(function(data){ + var response = JSON.parse(data.data); + var role = JSON.parse(response.role); + var availableRoles = JSON.parse(response.availableRoles); + var availableRoleFunctions = JSON.parse(response.availableRoleFunctions); + $scope.availableRoleFunctions = response.roleFunctions; + var modalInstance = $modal.open({ + templateUrl: 'app/views/role/popup_createedit_role.html', + controller: 'roleCreateEditController', + sizeClass: 'modal-large', + windowClass: "modal-docked", + resolve: { + message: function () { + var message = { + availableRoles: availableRoles, + availableRoleFunctions: availableRoleFunctions, + appId: $scope.apps.selectedCentralizedApp, + role: role + }; + return message; + } + } + }); + modalInstance.result.then(function (confirmed) { + if(confirmed == 'confirmed'){ + $scope.getRolesForSelectedCentralizedApp(appId); + } + }); + },function(error){ + $log.debug('Failed to editRole'); + }); + } + }; + //add Role + $scope.addRoleModalPopup = function(appId) { + if(appId){ + var roleId = 0; + RoleService.getRole(appId, roleId).then(function(data){ + var response = JSON.parse(data.data); + var role = JSON.parse(response.role); + var availableRoles = JSON.parse(response.availableRoles); + var availableRoleFunctions = JSON.parse(response.availableRoleFunctions); + $scope.availableRoleFunctions = response.roleFunctions; + var modalInstance = $modal.open({ + templateUrl: 'app/views/role/popup_createedit_role.html', + controller: 'roleCreateEditController', + sizeClass: 'modal-large', + windowClass: "modal-docked", + resolve: { + message: function () { + var message = { + role: role, + appId: $scope.apps.selectedCentralizedApp + }; + return message; + } + } + }); + modalInstance.result.then(function (confirmed) { + if(confirmed == 'confirmed'){ + $scope.getRolesForSelectedCentralizedApp(appId); + } + }); + },function(error){ + $log.debug('Failed to AddRole'); + }); + } + }; });