From 05c3857d2d68ad0c230af19071718cf315cb0b42 Mon Sep 17 00:00:00 2001 From: sa282w Date: Mon, 9 Apr 2018 12:25:12 -0400 Subject: Support fine-grained attributes of AAF for FW apps Issue-ID: PORTAL-188 Included the changes for the user story Support fine-grained attributes of AAF for FW apps. Change-Id: Ib16e7eeab9d2f9dc0803eb8a37aad6d281c7f454 Signed-off-by: sa282w (cherry picked from commit d8895e0b035769743c5c90d71bd021a04f26e6c3) --- .../db-scripts/EcompSdkDDLMySql_2_2_Common.sql | 5 +- .../db-scripts/EcompSdkDMLMySql_2_2_Common.sql | 77 ++++++++++--------- .../EcompSdkMySql_Rollback_2_2_to_2_1_Common.sql | 2 +- .../EcompSdkMySql_Upgrade_2_1_to_2_2_Common.sql | 49 +++++++++++- .../scripts/DS2-controllers/admin-controller.js | 86 ++++++++++++++++++++-- .../ds2-admin/modals/role-function-add.html | 54 ++++++++++---- 6 files changed, 210 insertions(+), 63 deletions(-) diff --git a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkDDLMySql_2_2_Common.sql b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkDDLMySql_2_2_Common.sql index 48c51177..31d8be45 100644 --- a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkDDLMySql_2_2_Common.sql +++ b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkDDLMySql_2_2_Common.sql @@ -470,8 +470,9 @@ create table fn_datasource ( create table fn_function ( FUNCTION_CD CHARACTER VARYING(30) NOT NULL PRIMARY KEY, FUNCTION_NAME CHARACTER VARYING(50) NOT NULL, - TYPE VARCHAR(20) NULL DEFAULT NULL, - ACTION VARCHAR(20) NULL DEFAULT NULL + TYPE VARCHAR(20) NOT NULL, + ACTION VARCHAR(20) NOT NULL, + UNIQUE KEY function (FUNCTION_CD,TYPE,ACTION) ); -- diff --git a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkDMLMySql_2_2_Common.sql b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkDMLMySql_2_2_Common.sql index 067ec92e..50221612 100644 --- a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkDMLMySql_2_2_Common.sql +++ b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkDMLMySql_2_2_Common.sql @@ -8,46 +8,45 @@ SET FOREIGN_KEY_CHECKS=1; USE ecomp_sdk; -- fn_function -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_process','Process List'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_job','Job Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_job_create','Job Create'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_job_designer','Process in Designer view'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_task','Task Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_task_search','Task Search'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_map','Map Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_sample','Sample Pages Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('login','Login'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_home','Home Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_customer','Customer Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_reports','Reports Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_profile','Profile Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_admin','Admin Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_feedback','Feedback Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_help','Help Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_logout','Logout Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_notes','Notes Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_ajax','Ajax Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_customer_create','Customer Create'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_profile_create','Profile Create'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_profile_import','Profile Import'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_tab','Sample Tab Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('view_reports','View Raptor reports'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_process','Process List','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_job','Job Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_job_create','Job Create','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_job_designer','Process in Designer view','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_task','Task Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_task_search','Task Search','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_map','Map Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_sample','Sample Pages Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('login','Login','url','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_home','Home Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_customer','Customer Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_reports','Reports Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_profile','Profile Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_admin','Admin Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_feedback','Feedback Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_help','Help Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_logout','Logout Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_notes','Notes Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_ajax','Ajax Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_customer_create','Customer Create','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_profile_create','Profile Create','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_profile_import','Profile Import','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_tab','Sample Tab Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('view_reports','View Raptor reports','menu','*'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_itracker_admin','Itracker Admin/Support menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('quantum_bd','Big Data Function'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('1','test role function'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_hiveconfig','Hive Configuration'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_mapreduce_create','Map Reduce Configuration Create'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_mapreduce_search','Map Reduce Configuration Search'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_hiveconfig_search','Hive Configuration Search'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_hiveconfig_create','Hive Configuration Create'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_test','Test Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_doclib','Document Library Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('doclib','Document Library'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('doclib_admin','Document Library Admin'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_concept','CoNCEPT'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_itracker','iTracker Menu'); -Insert into fn_function (FUNCTION_CD,FUNCTION_NAME) values ('menu_mapreduce','Map Reduce Configuration'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_itracker_admin','Itracker Admin/Support menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('quantum_bd','Big Data Function','url','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_hiveconfig','Hive Configuration','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_mapreduce_create','Map Reduce Configuration Create','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_mapreduce_search','Map Reduce Configuration Search','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_hiveconfig_search','Hive Configuration Search','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_hiveconfig_create','Hive Configuration Create','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_test','Test Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_doclib','Document Library Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('doclib','Document Library','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('doclib_admin','Document Library Admin','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_concept','CoNCEPT','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_itracker','iTracker Menu','menu','*'); +Insert into fn_function (FUNCTION_CD,FUNCTION_NAME,TYPE,ACTION) values ('menu_mapreduce','Map Reduce Configuration','menu','*'); -- fn_lu_activity Insert into fn_lu_activity (ACTIVITY_CD,ACTIVITY) values ('add_role','add_role'); diff --git a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Rollback_2_2_to_2_1_Common.sql b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Rollback_2_2_to_2_1_Common.sql index f8a7fbce..627d30f2 100644 --- a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Rollback_2_2_to_2_1_Common.sql +++ b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Rollback_2_2_to_2_1_Common.sql @@ -1,10 +1,10 @@ use ecomp_sdk; +ALTER TABLE fn_function DROP INDEX function; ALTER TABLE fn_function DROP COLUMN type; - ALTER TABLE fn_function DROP COLUMN action; diff --git a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Upgrade_2_1_to_2_2_Common.sql b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Upgrade_2_1_to_2_2_Common.sql index 32540c69..474a6b8e 100644 --- a/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Upgrade_2_1_to_2_2_Common.sql +++ b/ecomp-sdk/epsdk-app-common/db-scripts/EcompSdkMySql_Upgrade_2_1_to_2_2_Common.sql @@ -3,10 +3,53 @@ use ecomp_sdk; SET FOREIGN_KEY_CHECKS=0; alter table fn_function -add type VARCHAR(20) NULL DEFAULT NULL; - +add type VARCHAR(20) NOT NULL; alter table fn_function -add action VARCHAR(20) NULL DEFAULT NULL; +add action VARCHAR(20) NOT NULL; + +ALTER TABLE fn_function +ADD CONSTRAINT function UNIQUE (FUNCTION_CD,TYPE,ACTION); + +delete from fn_function where function_cd='1'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_process'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_job'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_job_create'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_job_designer'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_task'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_task_search'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_map'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_sample'; +update fn_function set type = 'url' , action = '*' where function_cd = 'login'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_home'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_customer'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_reports'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_profile'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_admin'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_feedback'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_help'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_logout'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_notes'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_ajax'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_customer_create'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_profile_create'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_profile_import'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_tab'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'view_reports'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_itracker_admin'; +update fn_function set type = 'url' , action = '*' where function_cd = 'quantum_bd'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_hiveconfig'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_mapreduce_create'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_mapreduce_search'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_hiveconfig_search'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_hiveconfig_create'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_test'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_doclib'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'doclib'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'doclib_admin'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_concept'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_itracker'; +update fn_function set type = 'menu' , action = '*' where function_cd = 'menu_mapreduce'; + commit; \ No newline at end of file diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/admin-controller.js b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/admin-controller.js index 0d95e72a..a8b89757 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/admin-controller.js +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-controllers/admin-controller.js @@ -1,4 +1,4 @@ -appDS2.controller('adminController', function($scope, $http,AdminService, $modal, $routeParams, $rootScope){ +appDS2.controller('adminController', function($scope, $http,AdminService, $modal, $routeParams, $rootScope){ $scope.totalPages = 5; $scope.viewPerPage = 8; @@ -71,8 +71,63 @@ appDS2.controller('adminController', function($scope, $http,AdminService, $modal }); } - $scope.addRoleFunction = function(roleData){ + if(/[^a-zA-Z0-9\-\.\_]/.test(roleData.type)){ + errorMsg = 'Type can only contain alphanumeric characters, dots(.) and underscores(_)'; + var modalInstance = $modal.open({ + templateUrl: 'app/fusion/scripts/DS2-modal/error_modal.html', + controller: ModalInstanceCtrl, + sizeClass: 'modal-small', + resolve: { + items: function () { + return errorMsg; + } + } + }); + return; + } + if(roleData.action !== '*' && /[^a-zA-Z0-9\-\.\_]/.test(roleData.action)){ + errorMsg = 'Action can only contain alphanumeric characters, hyphens(-), dots(.) and underscores(_) and single asterisk character(*)'; + var modalInstance = $modal.open({ + templateUrl: 'app/fusion/scripts/DS2-modal/error_modal.html', + controller: ModalInstanceCtrl, + sizeClass: 'modal-small', + resolve: { + items: function () { + return errorMsg; + } + } + }); + return; + } + if(/[^a-zA-Z0-9\-\:\_\./*]/.test(roleData.code)){ + errorMsg = 'Code can only contain alphanumeric characters, hyphens(-), dots(.), colons(:), forwardSlash(/) , asterisk(*) and underscores(_)'; + var modalInstance = $modal.open({ + templateUrl: 'app/fusion/scripts/DS2-modal/error_modal.html', + controller: ModalInstanceCtrl, + sizeClass: 'modal-small', + resolve: { + items: function () { + return errorMsg; + } + } + }); + return; + } + if(/[^a-zA-Z0-9\-\_ \.]/.test(roleData.name)){ + errorMsg = 'Name can only contain alphanumeric characters, spaces, hyphens(-), dots(.) and underscores(_)'; + var modalInstance = $modal.open({ + templateUrl: 'app/fusion/scripts/DS2-modal/error_modal.html', + controller: ModalInstanceCtrl, + sizeClass: 'modal-small', + resolve: { + items: function () { + return errorMsg; + } + } + }); + return; + } AdminService.addRoleFunctionList(roleData).then(function(msg){ var message = msg; if(message.data!=null && message.data!=''){ @@ -100,6 +155,22 @@ appDS2.controller('adminController', function($scope, $http,AdminService, $modal $scope.roleFun=items; $scope.msg=items; + $scope.ngRepeatDemo = [ + {id: 'menuradiobutton1', value: 'menu', labelvalue: 'menu'}, + {id: 'urlradiobutton2', value: 'url', labelvalue: 'url'}, + {id: 'otherradiobutton3', value: 'other', labelvalue: 'other'} + ] + $scope.selectedvalueradioButtonGroup = { + type: 'menu' + } + $scope.roleFun = { + action: '*' + } + + $scope.selectedvalueradioButtonOther = { + type: '' + } + // remove role function associated to a role on Role Edit page $scope.roleFunRemoveRole = function (roleFunction) { AdminService.removeRoleFunction(roleFunction, $routeParams.roleId).then(function(msg){ @@ -324,7 +395,12 @@ appDS2.controller('adminController', function($scope, $http,AdminService, $modal }); } - $scope.save = function (data) { + $scope.save = function (data,type) { + if(type !== 'other'){ + data.type = type ; + } else{ + data.type = $scope.selectedvalueradioButtonOther.type ; + } $modalInstance.close(data); }; @@ -419,8 +495,8 @@ appDS2.controller('adminController', function($scope, $http,AdminService, $modal } }); - modalInstance.result.then(function (data) { - $scope.addRoleFunction(data); + modalInstance.result.then(function (data,type) { + $scope.addRoleFunction(data,type); }); } diff --git a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-add.html b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-add.html index 5752a278..ad3d538b 100644 --- a/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-add.html +++ b/ecomp-sdk/epsdk-app-overlay/src/main/webapp/app/fusion/scripts/DS2-view-models/ds2-admin/modals/role-function-add.html @@ -1,4 +1,4 @@ -
+

Role Function Create

@@ -6,13 +6,14 @@ ng-click="$dismiss('cancel')">
- +
- *Name *Name +

- *Code *Code +
- Code is Required + Code is + Required
-
+
- Type + * + Type + +
+
+
+ Type is Required

- Action *Action +
- +
+ Action is Required +

-