-/*-\r
- * ================================================================================\r
- * ECOMP Portal\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- * http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ================================================================================\r
- */\r
-app.controller('roleListController', function ($scope,RoleService,confirmBoxService,conf,$state,$http){\r
- $scope.showSpinner = true;\r
- \r
- RoleService.getRoles().then(function(data){\r
- $scope.showSpinner = true;\r
- var j = data;\r
- $scope.data = JSON.parse(j.data);\r
- $scope.availableRoles =JSON.parse($scope.data.availableRoles);\r
- $scope.showSpinner = false;\r
- //$scope.resetMenu();\r
- \r
- },function(error){\r
- console.log("failed");\r
- //reloadPageOnce();\r
- });\r
- \r
- \r
- $scope.goToUrl = function(roleIdVal) {\r
- $state.go("root.role", {"roleId":roleIdVal});\r
- } \r
- //console.log($scope.availableRoles);\r
- $scope.toggleRole = function(selected,availableRole) {\r
- //alert('toggleRole: '+selected);\r
- var toggleType = null;\r
- if(selected) {\r
- toggleType = "activate";\r
- } else {\r
- toggleType = "inactivate";\r
- }\r
- \r
- confirmBoxService.confirm("You are about to "+toggleType+" the role "+availableRole.name+". Do you want to continue?").then(\r
- function(confirmed){\r
- \r
- if(confirmed) {\r
- var uuu = conf.api.toggleRole;\r
- \r
- var postData={role:availableRole};\r
- $http.post(uuu, postData).then(function(response) {\r
- var data = response.data;\r
- if (typeof data === 'object') {\r
- console.log(data);\r
- $scope.availableRoles=data.availableRoles; \r
- console.log($scope.availableRoles);\r
- } else {\r
- //\r
- }\r
-\r
- }, function(response) {\r
- console.log(response.data);\r
- availableRole.active=!availableRole.active;\r
- confirmBoxService.showInformation("Error while saving.");\r
- });\r
- \r
- /*\r
- $.ajax({\r
- type : 'POST',\r
- url : uuu,\r
- dataType: 'json',\r
- contentType: 'application/json',\r
- data: JSON.stringify(postData),\r
- success : function(data){\r
- console.log(data);\r
- $scope.$apply(function(){$scope.availableRoles=data.availableRoles;}); \r
- console.log($scope.availableRoles);\r
- },\r
- error : function(data){\r
- console.log(data);\r
- availableRole.active=!availableRole.active;\r
- confirmBoxService.showInformation("Error while saving.");\r
- }\r
- });\r
- */\r
- }\r
- else {\r
- availableRole.active=!availableRole.active;\r
- }\r
- \r
- });\r
- //,\r
- //function(){\r
- // availableRole.active=!availableRole.active;\r
- //})\r
- \r
- \r
- };\r
-\r
- $scope.removeRole = function(role) {\r
- \r
- confirmBoxService.confirm("You are about to delete the role "+role.name+". Do you want to continue?").then(\r
- function(confirmed){\r
- var uuu = conf.api.removeRole;\r
- var postData={role:role};\r
- /* $.ajax({\r
- type : 'POST',\r
- url : uuu,\r
- dataType: 'json',\r
- contentType: 'application/json',\r
- data: JSON.stringify(postData),\r
- success : function(data){\r
- $scope.$apply(function(){$scope.availableRoles=data.availableRoles;}); \r
- },\r
- error : function(data){\r
- console.log(data);\r
- confirmBoxService.showInformation("Error while deleting: "+ data.responseText);\r
- }\r
- }); */\r
- \r
- \r
- $http.post(uuu, postData).then(function(response) {\r
- var data = response.data;\r
- if (typeof data === 'object') {\r
- $scope.availableRoles=data.availableRoles; \r
- } else {\r
- //\r
- }\r
-\r
- }, function(response) {\r
- console.log(response.data);\r
- confirmBoxService.showInformation("Error while deleting: "+ data.responseText);\r
- });\r
- \r
- });\r
- \r
- \r
- };\r
- \r
-\r
-});\r
+/*-
+ * ============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
+ *
+ * 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============================================
+ *
+ *
+ */
+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(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." + data.restCallStatus);
+ });
+
+ }
+
+ }) .catch(function(err) {
+ $log.error('roleListController::confirmBoxService.confirm error:', err);
+ availableRole.active=!availableRole.active;
+ });
+ };
+
+ $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 + '/' + 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' & data.restCallStatus == 'Success') {
+ $scope.availableRoles = data.availableRoles;
+ } else {
+ confirmBoxService.showInformation('Failed to remove role '+ data.error )
+ }
+
+ }, function(response) {
+ confirmBoxService.showInformation("Error while deleting: "+ data.error);
+ });
+
+ });
+ }
+ };
+
+ $scope.openBulkUploadRolesAndFunctionsModal = function(appId) {
+ var modalInstance = $modal.open({
+ templateUrl: 'app/views/role/bulk-upload-dialogs/bulk-upload-role-functions-modal.html',
+ controller: 'BulkRoleAndFunctionsModalCtrl as bulkRoleAndFunctions',
+ sizeClass: 'modal-medium',
+ resolve: {
+ message: function () {
+ var message = {
+ appid: appId
+ };
+ return message;
+ }
+ }
+ });
+ modalInstance.result.then(function (confirmed) {
+ if(confirmed == 'confirmed'){
+ // update role list table
+ }
+ });
+ };
+
+ // getCentalizedApps
+ $scope.getCentralizedApps = function(userId) {
+ RoleService.getCentralizedApps(userId).then(res=> {
+ if (res.length>0) {
+ $scope.centralizedApps = res;
+ for(var i = 0; i<res.length; i++){
+ if(res[i].appId == 1){
+ $scope.getRolesForSelectedCentralizedApp(res[i].appId);
+ $scope.apps.selectedCentralizedApp = res[i].appId;
+ return;
+ }
+ $scope.getRolesForSelectedCentralizedApp(res[0].appId);
+ $scope.apps.selectedCentralizedApp = res[0].appId;
+ }
+ }
+ }).catch(err=> {
+ $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');
+ });
+ }
+ };
+
+});