Merge "Release Notes for Beijing Release"
authorManoop Talasila <talasila@research.att.com>
Thu, 29 Mar 2018 00:31:54 +0000 (00:31 +0000)
committerGerrit Code Review <gerrit@onap.org>
Thu, 29 Mar 2018 00:31:54 +0000 (00:31 +0000)
18 files changed:
deliveries/Dockerfile.mariadb
deliveries/os_docker_push.sh
deliveries/portal.cql [new file with mode: 0644]
deliveries/portalsdk.cql [new file with mode: 0644]
ecomp-portal-BE-common/pom.xml
ecomp-portal-BE-common/src/main/java/jarutil/ExtractJar.java
ecomp-portal-BE-common/src/main/java/org/onap/portalapp/command/PostSearchBean.java
ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImpl.java
ecomp-portal-BE-common/src/test/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImplTest.java
ecomp-portal-BE-os/README.md
ecomp-portal-BE-os/pom.xml
ecomp-portal-BE-os/src/main/java/org/onap/portalapp/conf/ExternalAppConfig.java
ecomp-portal-BE-os/src/main/java/org/onap/portalapp/conf/ExternalAppInitializer.java
ecomp-portal-DB-common/PortalDDLMySql_2_1_Common.sql
ecomp-portal-DB-os/PortalDMLMySql_2_1_OS.sql
ecomp-portal-FE-common/client/app/views/functionalMenu/functionalMenu-dialog/menu-details.modal.html
ecomp-portal-widget-ms/widget-ms/pom.xml
pom.xml

index 347cc1e..6d2d6f2 100644 (file)
@@ -16,7 +16,7 @@ COPY ${DB_SCRIPT_DIR}/PortalDMLMySql_2_1_OS.sql     /docker-entrypoint-initdb.d/
 # Do not copy the onboarding script here; it's mounted as a volume
 
 # SDK App DDL and DML
-COPY ${DB_SCRIPT_DIR}/EcompSdkDDLMySql_1710_Common.sql       /docker-entrypoint-initdb.d/
-COPY ${DB_SCRIPT_DIR}/EcompSdkDDLMySql_1710_OS.sql           /docker-entrypoint-initdb.d/
-COPY ${DB_SCRIPT_DIR}/EcompSdkDMLMySql_1710_Common.sql       /docker-entrypoint-initdb.d/
-COPY ${DB_SCRIPT_DIR}/EcompSdkDMLMySql_1710_OS.sql           /docker-entrypoint-initdb.d/
+COPY ${DB_SCRIPT_DIR}/EcompSdkDDLMySql_2_2_Common.sql       /docker-entrypoint-initdb.d/
+COPY ${DB_SCRIPT_DIR}/EcompSdkDDLMySql_2_2_OS.sql           /docker-entrypoint-initdb.d/
+COPY ${DB_SCRIPT_DIR}/EcompSdkDMLMySql_2_2_Common.sql       /docker-entrypoint-initdb.d/
+COPY ${DB_SCRIPT_DIR}/EcompSdkDMLMySql_2_2_OS.sql           /docker-entrypoint-initdb.d/
index 3903519..0978ad8 100755 (executable)
@@ -13,7 +13,11 @@ if [ -z "$PORTAL_VERSION" ]; then
 fi
 
 TIMESTAMP=$(date +%C%y%m%dT%H%M%S)
-export VERSION="${PORTAL_VERSION}-${TIMESTAMP}"
-export LATEST="latest"
+# commenting the following two configurations as lf team preferred the uncommented format below
+#export VERSION="${PORTAL_VERSION}-${TIMESTAMP}"
+#export LATEST="latest"
+
+export VERSION="${PORTAL_VERSION}-STAGING-${TIMESTAMP}"
+export LATEST="${PORTAL_VERSION}-STAGING-latest"
 
 exec ./os_docker_base.sh
diff --git a/deliveries/portal.cql b/deliveries/portal.cql
new file mode 100644 (file)
index 0000000..6cb6271
--- /dev/null
@@ -0,0 +1,54 @@
+CREATE KEYSPACE IF NOT EXISTS portal
+    WITH REPLICATION = {
+        'class' : 'SimpleStrategy',
+        'replication_factor': 1
+    }
+    AND DURABLE_WRITES = true;
+
+CREATE TABLE portal.spring_session (
+    primary_id text PRIMARY KEY,
+    creation_time text,
+    expiry_time text,
+    last_access_time text,
+    max_inactive_interval text,
+    principal_name text,
+    session_id text,
+    vector_ts text
+) WITH bloom_filter_fp_chance = 0.01
+    AND caching = {'keys': 'ALL', 'rows_per_partition': '10'}
+    AND comment = ''
+    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
+    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
+    AND crc_check_chance = 1.0
+    AND dclocal_read_repair_chance = 0.1
+    AND default_time_to_live = 0
+    AND gc_grace_seconds = 864000
+    AND max_index_interval = 2048
+    AND memtable_flush_period_in_ms = 0
+    AND min_index_interval = 128
+    AND read_repair_chance = 0.0
+    AND speculative_retry = '99PERCENTILE';
+    
+  
+CREATE TABLE portal.spring_session_attributes (
+    primary_id text,
+    attribute_name text,
+    attribute_bytes blob,
+    vector_ts text,
+    PRIMARY KEY (primary_id, attribute_name)
+) WITH CLUSTERING ORDER BY (attribute_name ASC)
+    AND bloom_filter_fp_chance = 0.01
+    AND caching = {'keys': 'ALL', 'rows_per_partition': '1'}
+    AND comment = ''
+    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
+    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
+    AND crc_check_chance = 1.0
+    AND dclocal_read_repair_chance = 0.1
+    AND default_time_to_live = 0
+    AND gc_grace_seconds = 864000
+    AND max_index_interval = 2048
+    AND memtable_flush_period_in_ms = 0
+    AND min_index_interval = 128
+    AND read_repair_chance = 0.0
+    AND speculative_retry = '99PERCENTILE';  
diff --git a/deliveries/portalsdk.cql b/deliveries/portalsdk.cql
new file mode 100644 (file)
index 0000000..62da5dd
--- /dev/null
@@ -0,0 +1,54 @@
+CREATE KEYSPACE IF NOT EXISTS portalsdk
+    WITH REPLICATION = {
+        'class' : 'SimpleStrategy',
+        'replication_factor': 1
+    }
+    AND DURABLE_WRITES = true;
+
+CREATE TABLE portalsdk.spring_session (
+    primary_id text PRIMARY KEY,
+    creation_time text,
+    expiry_time text,
+    last_access_time text,
+    max_inactive_interval text,
+    principal_name text,
+    session_id text,
+    vector_ts text
+) WITH bloom_filter_fp_chance = 0.01
+    AND caching = {'keys': 'ALL', 'rows_per_partition': '10'}
+    AND comment = ''
+    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
+    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
+    AND crc_check_chance = 1.0
+    AND dclocal_read_repair_chance = 0.1
+    AND default_time_to_live = 0
+    AND gc_grace_seconds = 864000
+    AND max_index_interval = 2048
+    AND memtable_flush_period_in_ms = 0
+    AND min_index_interval = 128
+    AND read_repair_chance = 0.0
+    AND speculative_retry = '99PERCENTILE';
+    
+  
+CREATE TABLE portalsdk.spring_session_attributes (
+    primary_id text,
+    attribute_name text,
+    attribute_bytes blob,
+    vector_ts text,
+    PRIMARY KEY (primary_id, attribute_name)
+) WITH CLUSTERING ORDER BY (attribute_name ASC)
+    AND bloom_filter_fp_chance = 0.01
+    AND caching = {'keys': 'ALL', 'rows_per_partition': '1'}
+    AND comment = ''
+    AND compaction = {'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32', 'min_threshold': '4'}
+    AND compression = {'chunk_length_in_kb': '64', 'class': 'org.apache.cassandra.io.compress.LZ4Compressor'}
+    AND crc_check_chance = 1.0
+    AND dclocal_read_repair_chance = 0.1
+    AND default_time_to_live = 0
+    AND gc_grace_seconds = 864000
+    AND max_index_interval = 2048
+    AND memtable_flush_period_in_ms = 0
+    AND min_index_interval = 128
+    AND read_repair_chance = 0.0
+    AND speculative_retry = '99PERCENTILE';  
index 7cdc796..733a101 100644 (file)
                <dependency>
                        <groupId>org.apache.poi</groupId>
                        <artifactId>poi</artifactId>
-                       <version>3.17</version>
+                       <version>3.15</version>
                        <exclusions>
                                <exclusion>
                                        <groupId>commons-logging</groupId>
                <dependency>
                        <groupId>org.apache.poi</groupId>
                        <artifactId>poi-ooxml</artifactId>
-                       <version>3.17</version>
+                       <version>3.15</version>
                        <exclusions>
                                <exclusion>
                                        <groupId>commons-logging</groupId>
                        <groupId>com.lowagie</groupId>
                        <artifactId>itext</artifactId>
                        <version>2.0.8</version>
+                       <exclusions>
+                               <exclusion>
+                                       <groupId>bouncycastle</groupId>
+                                       <artifactId>bcprov-jdk14</artifactId>
+                               </exclusion>
+                               <exclusion>
+                                       <groupId>bouncycastle</groupId>
+                                       <artifactId>bcmail-jdk14</artifactId>
+                               </exclusion>
+                       </exclusions>           
                </dependency>
                <!-- Quartz -->
                <dependency>
                <dependency>
                        <groupId>commons-beanutils</groupId>
                        <artifactId>commons-beanutils</artifactId>
-                       <version>1.9.2</version>
+                       <version>1.9.3</version>
                </dependency>
                <dependency>
                        <groupId>com.ecwid.consul</groupId>
                    <artifactId>spring-security-config</artifactId>
                    <version>${springframework.version}</version>
            </dependency>
-               <dependency>
-               <groupId>org.apache.lucene</groupId>
-               <artifactId>lucene-queryparser</artifactId>
-               <version>7.2.1</version>
-               </dependency>
                <dependency>
                <groupId>com.thoughtworks.xstream</groupId>
                <artifactId>xstream</artifactId>
index 50e2720..1cba2d0 100644 (file)
@@ -38,7 +38,6 @@
 package jarutil;
 
 import java.io.File;
-import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
@@ -48,27 +47,29 @@ import java.io.Writer;
 import java.net.URL;
 import java.util.jar.JarEntry;
 import java.util.jar.JarInputStream;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+
 
 public class ExtractJar {
 
-       public static int bufferSize = 8192;
-       public static String JARFILE = "raptor_upgrade.jar";
+       public static final int bufferSize = 8192;
+       public static final String jarFile = "raptor_upgrade.jar";
+       private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ExtractJar.class);
 
        public static void main(String[] args) throws Exception {
                if (args.length > 0 && args[0] != null && args[0].length() > 0)
                        extractFilesFromJar(args[0]);
                else {
-                       System.out.println("Current Directory is taken as webapp path");
+                       logger.info("Current Directory is taken as webapp path");
                        String currentDir = new File(".").getAbsolutePath();
                        extractFilesFromJar(currentDir);
                }
        }
 
        public static void extractFilesFromJar(String directory) throws IOException {
-               // JarFile jar = new JarFile(jarFile);
+       
                Class clazz = ExtractJar.class;
                String classContainer = clazz.getProtectionDomain().getCodeSource().getLocation().toString();
-               // System.out.println("classContainer ---------> " + classContainer);
                URL jarUrl = clazz.getProtectionDomain().getCodeSource().getLocation();
 
                JarInputStream entryStream = new JarInputStream(jarUrl.openStream());
@@ -78,7 +79,7 @@ public class ExtractJar {
                        if (entry == null)
                                break;
                        if (entry.getName().indexOf("jarutil") < 0) {
-                               System.out.println(entry.getName());
+                               logger.info(entry.getName());
                                File file = new File(directory, entry.getName());
                                if (entry.isDirectory()) {
                                        if (!file.exists())
@@ -115,7 +116,7 @@ public class ExtractJar {
        }
 
        public static void copy(InputStream in, OutputStream out, long byteCount) throws IOException {
-               byte buffer[] = new byte[bufferSize];
+               byte[] buffer = new byte[bufferSize];
                int len = bufferSize;
                if (byteCount >= 0) {
                        while (byteCount > 0) {
@@ -144,7 +145,7 @@ public class ExtractJar {
         * Copy Reader to Writer for byteCount bytes or until EOF or exception.
         */
        public static void copy(Reader in, Writer out, long byteCount) throws IOException {
-               char buffer[] = new char[bufferSize];
+               char[] buffer = new char[bufferSize];
                int len = bufferSize;
                if (byteCount >= 0) {
                        while (byteCount > 0) {
index 6fc8f2a..f376d6d 100644 (file)
@@ -91,8 +91,7 @@ public class PostSearchBean extends SearchBase {
 
       setSortBy1("");
       setSortBy1Orig("");
-
-      //setSortByList(...);
+     
     }  // PostSearchBean
 
 
@@ -365,6 +364,7 @@ public class PostSearchBean extends SearchBase {
                this.postFinancialLocCode = postFinancialLocCode;
        }
 
+       @Override
        public void resetSearch() {
           super.resetSearch();
           setUser(new EPUser());
index 678672b..a222694 100644 (file)
@@ -1507,7 +1507,12 @@ public class ExternalAccessRolesServiceImpl implements ExternalAccessRolesServic
                                        return roleFunc;
                                roleFunc = checkIfPipesExitsInFunctionCode(cenV2RoleFunction);
                        } else {
-                               roleFunc = getRoleFuncList.get(0);
+                               // Check even if single record have pipes
+                               if (!getRoleFuncList.isEmpty() && getRoleFuncList.get(0).getCode().contains(FUNCTION_PIPE)) {
+                                       roleFunc = checkIfPipesExitsInFunctionCode(getRoleFuncList.get(0));
+                               } else {
+                                       roleFunc = getRoleFuncList.get(0);
+                               }
                        }
                } catch (Exception e) {
                        logger.error(EELFLoggerDelegate.errorLogger, "getRoleFunction: failed", e);
@@ -3434,8 +3439,8 @@ public class ExternalAccessRolesServiceImpl implements ExternalAccessRolesServic
        @Override
        public List<CentralRole> convertV2CentralRoleListToOldVerisonCentralRoleList(List<CentralV2Role> v2CenRoleList) {
                List<CentralRole> cenRoleList = new ArrayList<>();
-               SortedSet<CentralRoleFunction> cenRoleFuncList = new TreeSet<>();
                        for(CentralV2Role v2CenRole : v2CenRoleList){
+                               SortedSet<CentralRoleFunction> cenRoleFuncList = new TreeSet<>();
                                for(CentralV2RoleFunction v2CenRoleFunc: v2CenRole.getRoleFunctions()){
                                        CentralRoleFunction roleFunc = new CentralRoleFunction(v2CenRoleFunc.getCode(), v2CenRoleFunc.getName());
                                        cenRoleFuncList.add(roleFunc);
index bb408b2..295ba74 100644 (file)
@@ -533,7 +533,7 @@ public class ExternalAccessRolesServiceImplTest {
                                .thenReturn(getRoleFuncList);
                CentralV2RoleFunction actual = externalAccessRolesServiceImpl.getRoleFunction("test_type|type_code|*",
                                app.getUebKey());
-               assertEquals(getCenRole.getCode(), actual.getCode());
+               assertEquals("type_code", actual.getCode());
        }
 
        @Test
index 6ca4b1e..06f9ae3 100644 (file)
@@ -15,6 +15,7 @@ https://www.eclipse.org/m2e-wtp/
 ## Release Notes
 
 Version 2.2
+- [PORTAL-179] wrong menu available to App Admin User
 - [PORTAL-207] Raise 4 % percentage (from 44 to 48) sonar code coverage for ONAP PORTAL
 - [PORTAL-136] Raise JUnit test coverage ONAP Portal to 50% for Beijing 
 - [PORTAL-133] replace ECOMP to ONAP on Contact Us and Get Access page
index 3eae686..ed42c06 100644 (file)
                <dependency>
                        <groupId>org.apache.poi</groupId>
                        <artifactId>poi</artifactId>
-                       <version>3.17</version>
+                       <version>3.15</version>
                        <exclusions>
                                <exclusion>
                                        <groupId>commons-logging</groupId>
                <dependency>
                        <groupId>org.apache.poi</groupId>
                        <artifactId>poi-ooxml</artifactId>
-                       <version>3.17</version>
+                       <version>3.15</version>
                        <exclusions>
                                <exclusion>
                                        <groupId>commons-logging</groupId>
                <dependency>
                        <groupId>commons-beanutils</groupId>
                        <artifactId>commons-beanutils</artifactId>
-                       <version>1.9.2</version>
+                       <version>1.9.3</version>
                </dependency>
                <!-- OpenID Connect Dependencies -->
                <dependency>
                        <groupId>org.onap.portal.sdk</groupId>
                        <artifactId>epsdk-music</artifactId>
                        <version>${epsdk.version}</version>
+                       <classifier>jar-with-dependencies</classifier>
                        <exclusions>
                                <exclusion>
                                        <groupId>org.onap.music</groupId>
index c059a01..c3fdf0a 100644 (file)
@@ -128,17 +128,17 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
 
        @Autowired
        private DataAccessService dataAccessService;
-       
+
        @Autowired
        private UserRolesService userRolesService;
-       
+
        @Autowired
        private ExternalAccessRolesService externalAccessRolesService;
 
        private RegistryAdapter schedulerRegistryAdapter;
 
-       String UEB_APP_KEY = PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY); 
-       
+       String uebAppKey = PortalApiProperties.getProperty(PortalApiConstants.UEB_APP_KEY); 
+
        public ViewResolver viewResolver() {
                return super.viewResolver();
        }
@@ -162,14 +162,14 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
                        MDC.put(MDC_SERVICE_INSTANCE_ID, "");
                        MDC.put(MDC_ALERT_SEVERITY, AlarmSeverityEnum.INFORMATIONAL.severity());
                        MDC.put(MDC_INSTANCE_UUID, SystemProperties.getProperty(SystemProperties.INSTANCE_UUID));
-                       if(remotecentralizedsystemaccess.equalsIgnoreCase("true")){
+                       if("true".equalsIgnoreCase(remotecentralizedsystemaccess)){
                                importFromExternalAuth();
                        }                       
                } catch (Exception e) {
                        logger.error(EELFLoggerDelegate.errorLogger, "init failed", e);
                }
        }
-       
+
        /**
         * Does a sync on functions, roles and role functions based on namespace 
         * for all the centralized applications between AAF and ONAP, updates
@@ -182,7 +182,7 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
                List<EPApp> appList;
                //to get all centralized apps           
                List<EPApp> centralizedAppList = dataAccessService.executeNamedQuery("getCentralizedApps", null, null);         
-               if(centralizedAppList != null && centralizedAppList.size() > 0){
+               if(centralizedAppList != null && !centralizedAppList.isEmpty()){
                        for(int i = 0; i < centralizedAppList.size(); i++){
                                //syncRoles(does a sync on functions, roles and role functions)
                                externalAccessRolesService.syncApplicationRolesWithEcompDB(centralizedAppList.get(i));
@@ -199,7 +199,7 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
                                                        for(int k = 0; k < aafUserList.length(); k++){
                                                                EPUser user = null;
                                                                List<EPUser> usersList = null;                                                          
-                                                               List<EPUserApp> userRolesList = new ArrayList<EPUserApp>();
+                                                               List<EPUserApp> userRolesList = new ArrayList<>();
                                                                JSONObject userRole = (JSONObject) aafUserList.get(k);
                                                                Gson gson = new Gson();
                                                                ExternalAuthUserRole userRoleObj = gson.fromJson(userRole.toString(), ExternalAuthUserRole.class);
@@ -210,36 +210,32 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
                                                                Map<String, String> orgUserId = new HashMap<>();
                                                                orgUserId.put("orgUserIdValue", userRoleObj.getUser());
                                                                usersList = dataAccessService.executeNamedQuery("epUserAppId", orgUserId, null);
-                                                               if(usersList != null && usersList.size() > 0){
+                                                               if(usersList != null && !usersList.isEmpty()){
                                                                        user = usersList.get(0);
                                                                }                                                       
                                                                if(user == null){
                                                                        // add user to fn_user(needs to be revisited after getting user info from AAF PORTAL-172)                                                               
                                                                }
-                                                               //for each role and user in that role, check if user exists in fn_user_role. If not, add 
-                                                               /*userRolesList = userRolesService.getUserRolesList(centralizedAppList.get(0).getId(), user.getId(), Long.valueOf(externalRoleDescription.getId()));
-                                                               if(userRolesList == null || userRolesList.isEmpty()){                                                           
-                                                                       // add userRole to fn_user_role(needs to be revisited after getting user info from AAF PORTAL-172)
-                                                               }*/
                                                        }
                                                }
-                                               
+
                                        }
                                }
                        }                       
                }
        }
-                       
+
        public DataAccessService dataAccessService() {
                return super.dataAccessService();
        }
 
+       @Override
        public String[] tileDefinitions() {
                return super.tileDefinitions();
        }
 
        public List<String> addTileDefinitions() {
-               List<String> definitions = new ArrayList<String>();
+               List<String> definitions = new ArrayList<>();
                definitions.add("/WEB-INF/defs/definitions.xml");
                return definitions;
        }
@@ -266,7 +262,7 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
 
        @Bean
        public org.onap.portalsdk.core.auth.LoginStrategy coreLoginStrategy() {
-               if (SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim().equalsIgnoreCase("OIDC"))
+               if ("OIDC".equalsIgnoreCase(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim()))
                        return new OpenIdConnectLoginStrategy();
                else
                        return new SimpleLoginStrategy();
@@ -275,7 +271,7 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
        @Bean
        public LoginStrategy loginStrategy() {
 
-               if (SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim().equalsIgnoreCase("OIDC"))
+               if ("OIDC".equalsIgnoreCase(SystemProperties.getProperty(SystemProperties.AUTHENTICATION_MECHANISM).trim()))
                        return new OpenIdConnectLoginStrategy();
                else
                        return new SimpleLoginStrategy();
@@ -287,13 +283,6 @@ public class ExternalAppConfig extends AppConfig implements Configurable {
 
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
-               // registry.addInterceptor(new
-               // StaticResourcesInterceptor()).addPathPatterns("/index.htm",
-               // "/applicationsHome", "/widgetsHome", "/admins", "/users",
-               // "/applications", "/widgets");
-               // Excludes login/logout pages and REST endpoints used by other
-               // application servers.
-
                registry.addInterceptor(sessionTimeoutInterceptor()).excludePathPatterns("/oid-login", "/portalApi/healthCheck",
                                "/portalApi/healthCheck/", "/portalApi/healthCheckSuspend", "/portalApi/healthCheckSuspend/",
                                "/portalApi/healthCheckResume", "/portalApi/healthCheckResume/", "/login_external",
index 62051b1..1c3c5ce 100644 (file)
@@ -51,11 +51,7 @@ public class ExternalAppInitializer extends  AppInitializer{
   
     @Override
     protected Class<?>[] getServletConfigClasses() {
-//     Class<?>[] configClasses =  super.getServletConfigClasses();
-//     Class<?>[] additionalConfigClasses  = Arrays.copyOf(configClasses, configClasses.length);
-//     addConfigClass(additionalConfigClasses, ExternalAppConfig.class);
-//     return additionalConfigClasses;
-//     
+       
        return new Class[] {ExternalAppConfig.class};
     }
     
index fd3828a..cabca67 100644 (file)
@@ -1755,4 +1755,4 @@ add constraint sys_c0014618 foreign key (user_id) references fn_user(user_id);
 alter table fn_menu_favorites
 add constraint sys_c0014619 foreign key (menu_id) references fn_menu_functional(menu_id);
 
-commit;
\ No newline at end of file
+commit;
index 18d79fa..eb1564e 100644 (file)
@@ -3,7 +3,18 @@
 -- First run the common Opensource DML; then run this file to add The Opensource only data
 USE portal;
 
-set foreign_key_checks=1; 
+set foreign_key_checks=1;
+
+--- update fn_menu for roles
+UPDATE fn_menu
+SET function_cd = 'menu_acc_admin'
+WHERE  label = 'Roles';
+
+--- update fn_menu for users
+UPDATE fn_menu
+SET function_cd = 'menu_acc_admin'
+WHERE label = 'Users';
+
 
 -- fn_user
 Insert into fn_user (USER_ID, ORG_ID, MANAGER_ID,FIRST_NAME,MIDDLE_NAME,LAST_NAME,PHONE,FAX,CELLULAR,EMAIL,ADDRESS_ID,ALERT_METHOD_CD,HRID,ORG_USER_ID,ORG_CODE,LOGIN_ID,LOGIN_PWD,LAST_LOGIN_DATE,ACTIVE_YN,CREATED_ID,CREATED_DATE,MODIFIED_ID,MODIFIED_DATE,IS_INTERNAL_YN,ADDRESS_LINE_1,ADDRESS_LINE_2,CITY,STATE_CD,ZIP_CODE,COUNTRY_CD,LOCATION_CLLI,ORG_MANAGER_USERID,COMPANY,DEPARTMENT_NAME,JOB_TITLE,TIMEZONE,DEPARTMENT,BUSINESS_UNIT,BUSINESS_UNIT_NAME,COST_CENTER,FIN_LOC_CODE,SILO_STATUS) values (1,NULL,NULL,'Demo',NULL,'User',NULL,NULL,NULL,'demo@openecomp.org',NULL,NULL,NULL,'demo',NULL,'demo','4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=','2016-10-20 15:11:16','Y',NULL,'2016-10-14 21:00:00',1,'2016-10-20 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL);
@@ -89,7 +100,24 @@ insert into ep_app_function (app_id, function_cd, function_name) values
 (1,    'url|saveNotification|*','publish notifications'),
 (1,    'url|url_role.htm|*','role page'),
 (1,    'url|url_welcome.htm|*','welcome page'),
-(1, 'menu|menu_acc_admin|*','Admin Acc Menu');
+(1, 'menu|menu_acc_admin|*','Admin Account Menu'),
+(1,'url|addWebAnalyticsReport|*','Add Web Analytics Report'), 
+(1,'url|appsFullList|*','Apps Full List'),
+(1,'url|centralizedApps|*','Centralized Apps'),
+(1,'url|functionalMenu|*','Functional Menu'),
+(1,'url|getAllWebAnalytics|*','Get All Web Analytics'),
+(1,'url|getFunctionalMenuRole|*','Get Functional Menu Role'),
+(1,'url|getNotificationAppRoles|*','Get Notification App Roles'),
+(1,'url|getUserAppsWebAnalytics|*','Get User Apps Web Analytics'),
+(1,'url|getUserJourneyAnalyticsReport|*','Get User Journey Report'),
+(1,'url|get_roles%2f%2a|*','getRolesOfApp'),
+(1,'url|get_role_functions%2f%2a|*','Get Role Functions'),
+(1,'url|notification_code|*','Notification Code'),
+(1,'url|role_function_list%2fsaveRoleFunction%2f%2a|*','Save Role Function'),
+(1,'url|syncRoles|*','SyncRoles'),
+(1,'url|userAppRoles|*','userAppRoles'),
+(1,'url|userApps|*','User Apps')
+;
 
 
 insert into ep_app_role_function (id, app_id, role_id, function_cd, role_app_id) values
@@ -99,15 +127,27 @@ insert into ep_app_role_function (id, app_id, role_id, function_cd, role_app_id)
 (4, 1, 1, 'menu|menu_logout|*', null),
 (5, 1, 16, 'url|login|*', null),
 (6, 1, 16, 'menu|menu_home|*', null),
-(7, 1, 16, 'menu|menu_logout|*',       null),
+(7, 1, 16, 'menu|menu_logout|*', null),
 (8, 1, 950, 'url|edit_notification|*', null),
 (9, 1, 950, 'url|getAdminNotifications|*', null),
-(10, 1, 950, 'url|saveNotification|*', null),
-(11, 1, 999, 'url|edit_notification|*', null),
-(12, 1, 999, 'url|getAdminNotifications|*', null),
-(13, 1, 999, 'menu|menu_admin|*', null),
-(14, 1, 1010, 'menu|menu_web_analytics|*', null),
+(10,1, 950, 'url|saveNotification|*', null),
+(11,1, 999,'url|userAppRoles|*', null),
+(12,1, 999, 'url|getAdminNotifications|*', null),
+(13,1, 999,'url|userApps|*', null),
+(14,1, 1010, 'menu|menu_web_analytics|*', null),
 (15, 1, 2115, 'menu|menu_web_analytics|*', null),
 (16, 1 , 1, 'menu|menu_acc_admin|*' , null),
-(17, 1 , 999 ,'menu|menu_acc_admin|*', null);
+(17, 1 , 999 ,'menu|menu_acc_admin|*', null),
+(18,1,999,'url|centralizedApps|*', null),
+(19,1,999,'url|getAllWebAnalytics|*', null),
+(20,1,999,'url|getFunctionalMenuRole|*', null),
+(21,1,999,'url|getNotificationAppRoles|*', null),
+(22,1,999,'url|getUserAppsWebAnalytics|*', null),
+(23,1,999,'url|getUserJourneyAnalyticsReport|*', null),
+(24,1,999,'url|get_roles%2f%2a|*', null),
+(25,1,999,'url|get_role_functions%2f%2a|*', null),
+(26,1,999,'url|notification_code|*', null),
+(27,1,999,'url|role_function_list%2fsaveRoleFunction%2f%2a|*', null),
+(28,1,999,'url|syncRoles|*', null);
+
 commit;    
\ No newline at end of file
index 508db70..cb29ef7 100644 (file)
@@ -60,7 +60,7 @@
                                
             <div class="span6" >
                 <div class="item-label">Title</div>
-                <input id="input-title" ddh-reset ng-readonly="!functionalMenuDetails.formEditable ? 'checked':'' " placeholder="Enter text"class="functionalMenu-height" ng-model="functionalMenuDetails.menutitle" type="text" name="text"/>
+                <input id="input-title" ddh-reset ng-readonly="!functionalMenuDetails.formEditable ? 'checked':'' " placeholder="Enter text"class="functionalMenu-height" ng-model="functionalMenuDetails.menutitle" type="text" name="text" maxlength="100"/>
                 <div id="div-error-conflict" class="error-container" ng-show="functionalMenuDetails.conflictMessages.text">
                     <small id="msg-error-conflict" id="functionalMenuDetails-input-title-conflict" class="err-message" ng-bind="functionalMenuDetails.conflictMessages.text"></small>
                 </div>
index a3c5546..5d8896c 100644 (file)
                        <artifactId>logback-classic</artifactId>
                        <version>1.2.3</version>
                </dependency>
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-annotations</artifactId>
+                       <version>2.8.10</version>
+               </dependency>
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-core</artifactId>
+                       <version>2.8.10</version>
+               </dependency>
+               <dependency>
+                       <groupId>com.fasterxml.jackson.core</groupId>
+                       <artifactId>jackson-databind</artifactId>
+                       <version>2.8.10</version>
+               </dependency>
        </dependencies>
 
        <build>
diff --git a/pom.xml b/pom.xml
index c1b07e0..d3571b3 100644 (file)
--- a/pom.xml
+++ b/pom.xml
@@ -28,7 +28,7 @@
                <!-- Jenkins should invoke mvn with argument -Dbuild.number=${BUILD_NUMBER} -->
                <build.number>0</build.number>
                <epsdk.version>2.2.0-SNAPSHOT</epsdk.version>
-               <springframework.version>4.2.2.RELEASE</springframework.version>
+               <springframework.version>4.2.3.RELEASE</springframework.version>
                <hibernate.version>4.3.11.Final</hibernate.version>
                <fasterxml.version>2.8.10</fasterxml.version>
                <eelf.version>1.0.0</eelf.version>