:maxdepth: 2
portal-sdk/index
+ portal-BE/index
--- /dev/null
+.. Building ONAP Portal SDK Web Applications documentation master file, created by
+ sphinx-quickstart on Mon Aug 7 12:47:34 2017.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+Building ONAP Portal BE Applications
+=========================================
+
+.. toctree::
+ :maxdepth: 6
+ :caption: Contents:
+
+ setting-up
+
--- /dev/null
+Setting up
+==========
+
+Dependencies
+------------
+
+In order to build Portal BE applications on your machine, you'll need to install the following:
+
+1. OpenJDK 8
+2. Maven
+3. Docker
+4. Docker Compose
+
+Cloning the Portal repository
+---------------------------------
+
+Clone the Portal repository with git:
+
+::
+
+ git clone "https://gerrit.onap.org/r/portal"
+
+Building
+-----------------
+
+::
+
+ cd portal-BE/
+ If you get this error "unable to prepare context: path ".\r" not found" please use this command dos2unix build.sh
+ ./build.sh
+
+Viewing your app
+----------------
+
+
+::
+
+ http://localhost:8080/login
+
+To log in, use user/password 'demo/demo123'.
+
+.. _access the h2-console: http://localhost:8080/h2-console/
+
+Change:
+Saved Settings: Generic MySQL
+Driver Class: com.mysql.cj.jdbc.Driver
+JDBC URL: jdbc:mysql://portal-db:3306/testdb
+User Name: portal
+Password: Test123456
\ No newline at end of file
EcompPortalUtils.setBadPermissions(user, response, "postOnboardingApps");
} else {
newOnboardingApp.normalize();
- checkIfNameSpaceIsValid(newOnboardingApp, fieldsValidator, response);
+ if(newOnboardingApp.isCentralAuth != null && newOnboardingApp.isCentralAuth)
+ checkIfNameSpaceIsValid(newOnboardingApp, fieldsValidator, response);
fieldsValidator = appService.addOnboardingApp(newOnboardingApp, user);
response.setStatus(fieldsValidator.httpStatusCode.intValue());
}
* @return New instance of {@link SchedulerFactoryBean}
*/
-/* @Bean
+ /*
+ @Bean
public EPUebHelper epUebHelper() {
return new EPUebHelper();
}
-*/
+
@Bean
public HealthMonitor healthMonitor() {
return new HealthMonitor();
}
+ */
+
/**
* Creates and returns a new instance of a {@link MainUebHandler}.
*
* ============LICENSE_END============================================
*
- *
+ *
*/
package org.onap.portalapp.controller;
@org.springframework.context.annotation.Configuration
@EnableAspectJAutoProxy
@Profile("src")
-public class ECOMPLogoutController extends EPUnRestrictedBaseController{
-
- private EPUser user;
- private static final String EP_SERVICE = "EPService";
- EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ECOMPLogoutController.class);
-
- @EPAuditLog
- @RequestMapping(value = {"/logout.htm" }, method = RequestMethod.GET)
- public ModelAndView logOut(HttpServletRequest request,
- HttpServletResponse response) throws Exception {
-
- ModelAndView modelView = null;
-
- chatRoomLogout(request);
- logger.debug(EELFLoggerDelegate.debugLogger, "ECOMPLogoutController.handleRequestInternal - Logout request received.");
-
- modelView = new ModelAndView("redirect:login.htm");
-
- /**
- if (UserUtils.isClientMobileDevice(request)){
- modelView.setViewName(modelView.getViewName().concat("?viewType=mobile"));
- }
- */
- String cookieDoamin = EPSystemProperties.getProperty(EPSystemProperties.COOKIE_DOMAIN);
- Cookie epCookie = new Cookie(EP_SERVICE, "");
- epCookie.setMaxAge(0);
- epCookie.setDomain(cookieDoamin);
- epCookie.setPath("/");
-
- Cookie appHeaderCookie = new Cookie("show_app_header", "");
- appHeaderCookie.setMaxAge(0);
- appHeaderCookie.setDomain(cookieDoamin);
- appHeaderCookie.setPath("/");
-
- Cookie appTabCookie = new Cookie("cookieTabs", "");
- appTabCookie.setMaxAge(0);
- appTabCookie.setDomain(cookieDoamin);
- appTabCookie.setPath("/");
-
- Cookie appVisInvisTabCookie = new Cookie("visInVisCookieTabs", "");
- appVisInvisTabCookie.setMaxAge(0);
- appVisInvisTabCookie.setDomain(cookieDoamin);
- appVisInvisTabCookie.setPath("/");
-
- response.addCookie(epCookie);
- response.addCookie(appHeaderCookie);
- response.addCookie(appTabCookie);
- response.addCookie(appVisInvisTabCookie);
- request.getSession().invalidate();
-
- logger.debug(EELFLoggerDelegate.debugLogger, "ECOMPLogoutController.handleRequestInternal - Successfully processed the logout request.");
-
- return modelView;
- }
-
- @EPMetricsLog
- public void chatRoomLogout(HttpServletRequest request){
- request = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest();
- setUser(EPUserUtils.getUserSession(request));
- }
-
- public EPUser getUser() {
- return user;
- }
-
- public void setUser(EPUser user) {
- this.user = user;
- }
+public class ECOMPLogoutController extends EPUnRestrictedBaseController {
+
+ private EPUser user;
+ private static final String EP_SERVICE = "EPService";
+ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(ECOMPLogoutController.class);
+
+ @EPAuditLog
+ @RequestMapping(value = { "/logout.htm" }, method = RequestMethod.GET)
+ public ModelAndView logOut(HttpServletRequest request,
+ HttpServletResponse response) throws Exception {
+
+ ModelAndView modelView = null;
+
+ chatRoomLogout(request);
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "ECOMPLogoutController.handleRequestInternal - Logout request received.");
+
+ modelView = new ModelAndView("redirect:login.htm");
+
+ /**
+ * if (UserUtils.isClientMobileDevice(request)){
+ * modelView.setViewName(modelView.getViewName().concat("?viewType=mobile")); }
+ */
+ String cookieDoamin = EPSystemProperties.getProperty(EPSystemProperties.COOKIE_DOMAIN);
+ Cookie epCookie = new Cookie(EP_SERVICE, "");
+ epCookie.setSecure(true);
+ epCookie.setMaxAge(0);
+ epCookie.setDomain(cookieDoamin);
+ epCookie.setPath("/");
+
+ Cookie appHeaderCookie = new Cookie("show_app_header", "");
+ appHeaderCookie.setSecure(true);
+ appHeaderCookie.setMaxAge(0);
+ appHeaderCookie.setDomain(cookieDoamin);
+ appHeaderCookie.setPath("/");
+
+ Cookie appTabCookie = new Cookie("cookieTabs", "");
+ appTabCookie.setSecure(true);
+ appTabCookie.setMaxAge(0);
+ appTabCookie.setDomain(cookieDoamin);
+ appTabCookie.setPath("/");
+
+ Cookie appVisInvisTabCookie = new Cookie("visInVisCookieTabs", "");
+ appVisInvisTabCookie.setSecure(true);
+ appVisInvisTabCookie.setMaxAge(0);
+ appVisInvisTabCookie.setDomain(cookieDoamin);
+ appVisInvisTabCookie.setPath("/");
+
+ response.addCookie(epCookie);
+ response.addCookie(appHeaderCookie);
+ response.addCookie(appTabCookie);
+ response.addCookie(appVisInvisTabCookie);
+ request.getSession().invalidate();
+
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "ECOMPLogoutController.handleRequestInternal - Successfully processed the logout request.");
+
+ return modelView;
+ }
+
+ @EPMetricsLog
+ public void chatRoomLogout(HttpServletRequest request) {
+ request = ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes()).getRequest();
+ setUser(EPUserUtils.getUserSession(request));
+ }
+
+ public EPUser getUser() {
+ return user;
+ }
+
+ public void setUser(EPUser user) {
+ this.user = user;
+ }
}
*
* ============LICENSE_END============================================
*
- *
+ *
*/
package org.onap.portalapp.controller;
@ServerEndpoint("/opencontact")
public class PeerBroadcastSocket {
- private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PeerBroadcastSocket.class);
- private static final ObjectMapper mapper = new ObjectMapper();
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PeerBroadcastSocket.class);
+ private static final ObjectMapper mapper = new ObjectMapper();
- protected static final Map<String, Object> channelMap = new HashMap<>();
- private Map<String, String> sessionMap = new HashMap<>();
+ private static final Map<String, Object> channelMap = new HashMap<>();
+ private Map<String, String> sessionMap = new HashMap<>();
- @OnMessage
- public void message(String message, Session session) {
- try {
- Map<String, Object> jsonObject = mapper.readValue(message, Map.class);
- save(jsonObject, session);
- } catch (Exception ex) {
- logger.error(EELFLoggerDelegate.errorLogger, "Failed" + ex.getMessage());
- }
- }
+ @OnMessage
+ public void message(String message, Session session) {
+ try {
+ Map<String, Object> jsonObject = mapper.readValue(message, Map.class);
+ save(jsonObject, session);
+ } catch (Exception ex) {
+ logger.error(EELFLoggerDelegate.errorLogger, "Failed", ex);
+ }
+ }
- @OnOpen
- public void open(Session session) {
- logger.info(EELFLoggerDelegate.debugLogger, "Channel opened");
- }
+ @OnOpen
+ public void open(Session session) {
+ logger.info(EELFLoggerDelegate.debugLogger, "Channel opened");
+ }
- @OnClose
- public void close(Session session) {
- String channel = sessionMap.get(session.getId());
- if (channel != null) {
- Object sessObj = channelMap.get(channel);
- if (sessObj != null) {
- try {
- ((Session) sessObj).close();
- } catch (IOException e) {
- logger.error(EELFLoggerDelegate.errorLogger, "Failed to close" + e.getMessage());
- }
- }
- channelMap.remove(channel);
- }
- logger.info(EELFLoggerDelegate.debugLogger, "Channel closed");
- }
+ @OnClose
+ public void close(Session session) {
+ String channel = sessionMap.get(session.getId());
+ if (channel != null) {
+ Object sessObj = channelMap.get(channel);
+ if (sessObj != null) {
+ try {
+ ((Session) sessObj).close();
+ } catch (IOException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "Failed to close", e);
+ }
+ }
+ channelMap.remove(channel);
+ }
+ logger.info(EELFLoggerDelegate.debugLogger, "Channel closed");
+ }
- private void save(Map<String, Object> jsonObject, Session session) {
- final Optional<String> from = Optional.of(jsonObject.get("from").toString());
- if (from.isPresent() && channelMap.get(from.get()) == null) {
- this.channelMap.put(from.toString(), session);
- this.sessionMap.put(session.getId(), from.toString());
- }
- }
+ private void save(Map<String, Object> jsonObject, Session session) {
+ final Optional<String> from = Optional.of(jsonObject.get("from").toString());
+ if (from.isPresent() && channelMap.get(from.get()) == null) {
+ channelMap.put(from.toString(), session);
+ this.sessionMap.put(session.getId(), from.toString());
+ }
+ }
}
-
import java.util.HashMap;
import java.util.Map;
-
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
-
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
-import lombok.NoArgsConstructor;
import org.json.JSONObject;
import org.onap.portalapp.portal.domain.EPUser;
import org.onap.portalapp.portal.ecomp.model.PortalRestResponse;
import org.onap.portalapp.portal.ecomp.model.PortalRestStatusEnum;
import org.onap.portalapp.portal.logging.aop.EPAuditLog;
-import org.onap.portalapp.portal.service.AdminRolesService;
-import org.onap.portalapp.portal.service.EPAppService;
-import org.onap.portalapp.portal.service.PersUserAppService;
import org.onap.portalapp.portal.service.UserService;
import org.onap.portalapp.util.EPUserUtils;
import org.onap.portalapp.validation.SecureString;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
+import lombok.NoArgsConstructor;
@RestController
@Configuration
@EPAuditLog
@NoArgsConstructor
public class AppsOSController extends AppsController {
- private static final ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
-
- private static final String FAILURE = "failure";
- private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsOSController.class);
+ private static final ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
- @Autowired
- UserService userService;
+ private static final String FAILURE = "failure";
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsOSController.class);
+
+ @Autowired
+ UserService userService;
+
+ /**
+ * Create new application's contact us details.
+ *
+ * @param contactUs
+ * @return
+ */
+ @RequestMapping(value = "/portalApi/saveNewUser", method = RequestMethod.POST, produces = "application/json")
+ public PortalRestResponse<String> saveNewUser(HttpServletRequest request, @RequestBody EPUser newUser) {
+ EPUser user = EPUserUtils.getUserSession(request);
+ if (newUser == null)
+ return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, FAILURE,
+ "New User cannot be null or empty");
+
+ if (!(super.getAdminRolesService().isSuperAdmin(user) || super.getAdminRolesService().isAccountAdmin(user))
+ && !user.getLoginId().equalsIgnoreCase(newUser.getLoginId())) {
+ return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, FAILURE,
+ "UnAuthorized");
+ }
- /**
- * Create new application's contact us details.
- *
- * @param contactUs
- * @return
- */
- @RequestMapping(value = "/portalApi/saveNewUser", method = RequestMethod.POST, produces = "application/json")
- public PortalRestResponse<String> saveNewUser(HttpServletRequest request,@RequestBody EPUser newUser) {
- EPUser user = EPUserUtils.getUserSession(request);
- if (newUser == null)
- return new PortalRestResponse<String>(PortalRestStatusEnum.ERROR, FAILURE,
- "New User cannot be null or empty");
-
- if (!(super.getAdminRolesService().isSuperAdmin(user) || super.getAdminRolesService().isAccountAdmin(user))){
- if(!user.getLoginId().equalsIgnoreCase(newUser.getLoginId()))
- return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, FAILURE,
- "UnAuthorized");
- }
-
String checkDuplicate = request.getParameter("isCheck");
- String saveNewUser = FAILURE;
- try {
- saveNewUser = userService.saveNewUser(newUser,checkDuplicate);
- } catch (Exception e) {
- return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, saveNewUser, e.getMessage());
- }
- return new PortalRestResponse<>(PortalRestStatusEnum.OK, saveNewUser, "");
- }
-
- @RequestMapping(value = { "/portalApi/currentUserProfile/{loginId}" }, method = RequestMethod.GET, produces = "application/json")
- public String getCurrentUserProfile(HttpServletRequest request, @PathVariable("loginId") String loginId) {
+ String saveNewUser = FAILURE;
+ try {
+ saveNewUser = userService.saveNewUser(newUser, checkDuplicate);
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "Exception in saveNewUser", e);
+ return new PortalRestResponse<>(PortalRestStatusEnum.ERROR, saveNewUser, e.getMessage());
+ }
+ return new PortalRestResponse<>(PortalRestStatusEnum.OK, saveNewUser, "");
+ }
+
+ @RequestMapping(value = { "/portalApi/currentUserProfile/{loginId}" }, method = RequestMethod.GET,
+ produces = "application/json")
+ public String getCurrentUserProfile(HttpServletRequest request, @PathVariable("loginId") String loginId) {
- if(loginId != null){
- Validator validator = validatorFactory.getValidator();
- SecureString secureString = new SecureString(loginId);
- Set<ConstraintViolation<SecureString>> constraintViolations = validator.validate(secureString);
+ if (loginId != null) {
+ Validator validator = validatorFactory.getValidator();
+ SecureString secureString = new SecureString(loginId);
+ Set<ConstraintViolation<SecureString>> constraintViolations = validator.validate(secureString);
- if (!constraintViolations.isEmpty()){
- return "loginId is not valid";
- }
- }
+ if (!constraintViolations.isEmpty()) {
+ return "loginId is not valid";
+ }
+ }
-
- Map<String,String> map = new HashMap<>();
- EPUser user;
- try {
- user = (EPUser) userService.getUserByUserId(loginId).get(0);
- map.put("firstName", user.getFirstName());
- map.put("lastName", user.getLastName());
- map.put("email", user.getEmail());
- map.put("loginId", user.getLoginId());
- map.put("loginPwd",user.getLoginPwd());
- map.put("middleInitial",user.getMiddleInitial());
- } catch (Exception e) {
- logger.error(EELFLoggerDelegate.errorLogger, "Failed to get user info", e);
- }
+ Map<String, String> map = new HashMap<>();
+ EPUser user;
+ try {
+ user = (EPUser) userService.getUserByUserId(loginId).get(0);
+ map.put("firstName", user.getFirstName());
+ map.put("lastName", user.getLastName());
+ map.put("email", user.getEmail());
+ map.put("loginId", user.getLoginId());
+ map.put("loginPwd", user.getLoginPwd());
+ map.put("middleInitial", user.getMiddleInitial());
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "Failed to get user info", e);
+ }
- JSONObject j = new JSONObject(map);
- return j.toString();
- }
+ JSONObject j = new JSONObject(map);
+ return j.toString();
+ }
-}
\ No newline at end of file
+}
--- /dev/null
+FROM openjdk:8-jdk-alpine
+VOLUME /tmp
+EXPOSE 8080
+ARG DEPENDENCY=target
+ADD ${DEPENDENCY}/portal-0.0.1-SNAPSHOT.jar portal-0.0.1-SNAPSHOT.jar
+ENTRYPOINT ["java","-jar","portal-0.0.1-SNAPSHOT.jar"]
\ No newline at end of file
--- /dev/null
+#!/bin/bash
+
+mvn clean install
+docker build -t portal_mariadb -f dockerfile.mariadb .
+docker build -t portal_app .
+docker-compose up
--- /dev/null
+# docker-compose for ONAP portal containers: database, microservice, portal apps.
+# Relies on .env file, which CANNOT be specified via command-line option
+# Works in multiple environments; does not pull from a Nexus registry.
+# Exposes the portal apps docker (but not DB nor WMS dockers) on the host network.
+# Images must be pulled from ONAP Nexus registry after logging in like this:
+# docker login -u USER -p PASS nexus3.onap.org:10001
+# Uses healthcheck feature added in docker-compose v2.1
+
+version: '2.1'
+
+services:
+ portal-db:
+ image: portal_mariadb
+ container_name: portal_mariaDB
+ environment:
+ MYSQL_DATABASE: testdb
+ healthcheck:
+ test: ["CMD", "mysqladmin" ,"ping", "-h", "localhost"]
+ networks:
+ - backend
+
+ portal-app:
+ image: portal_app
+ container_name: portal_APP
+ restart: on-failure
+ ports:
+ - 8080:8080
+ depends_on:
+ portal-db:
+ condition: service_healthy
+ networks:
+ - backend
+
+networks:
+ backend:
+ driver: bridge
--- /dev/null
+FROM mariadb:latest
+
+ADD my.cnf /etc/mysql/my.cnf
+ENV MYSQL_USER portal
+ENV MYSQL_PASSWORD Test123456
+ENV MYSQL_ROOT_PASSWORD klasjfhaskrigudsb
+EXPOSE 3306
\ No newline at end of file
--- /dev/null
+# MariaDB database server configuration file.
+#
+# You can copy this file to one of:
+# - "/etc/mysql/my.cnf" to set global options,
+# - "~/.my.cnf" to set user-specific options.
+#
+# One can use all long options that the program supports.
+# Run program with --help to get a list of available options and with
+# --print-defaults to see which it would actually understand and use.
+#
+# For explanations see
+# http://dev.mysql.com/doc/mysql/en/server-system-variables.html
+
+# This will be passed to all mysql clients
+# It has been reported that passwords should be enclosed with ticks/quotes
+# escpecially if they contain "#" chars...
+# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
+[client]
+port = 3306
+socket = /var/run/mysqld/mysqld.sock
+
+# Here is entries for some specific programs
+# The following values assume you have at least 32M ram
+
+# This was formally known as [safe_mysqld]. Both versions are currently parsed.
+[mysqld_safe]
+socket = /var/run/mysqld/mysqld.sock
+nice = 0
+
+[mysqld]
+skip-host-cache
+skip-name-resolve
+#
+# * Basic Settings
+#
+#user = mysql
+pid-file = /var/run/mysqld/mysqld.pid
+socket = /var/run/mysqld/mysqld.sock
+port = 3306
+basedir = /usr
+datadir = /var/lib/mysql
+tmpdir = /tmp
+lc_messages_dir = /usr/share/mysql
+lc_messages = en_US
+lower_case_table_names = 1
+skip-external-locking
+#
+# Instead of skip-networking the default is now to listen only on
+# localhost which is more compatible and is not less secure.
+bind-address = 0.0.0.0
+#
+# * Fine Tuning
+#
+max_connections = 100
+connect_timeout = 5
+wait_timeout = 600
+max_allowed_packet = 16M
+thread_cache_size = 128
+sort_buffer_size = 4M
+bulk_insert_buffer_size = 16M
+tmp_table_size = 32M
+max_heap_table_size = 32M
+#
+# * MyISAM
+#
+# This replaces the startup script and checks MyISAM tables if needed
+# the first time they are touched. On error, make copy and try a repair.
+myisam_recover_options = BACKUP
+key_buffer_size = 128M
+#open-files-limit = 2000
+table_open_cache = 400
+myisam_sort_buffer_size = 512M
+concurrent_insert = 2
+read_buffer_size = 2M
+read_rnd_buffer_size = 1M
+#
+# * Query Cache Configuration
+#
+# Cache only tiny result sets, so we can fit more in the query cache.
+query_cache_limit = 128K
+query_cache_size = 64M
+# for more write intensive setups, set to DEMAND or OFF
+#query_cache_type = DEMAND
+#
+# * Logging and Replication
+#
+# Both location gets rotated by the cronjob.
+# Be aware that this log type is a performance killer.
+# As of 5.1 you can enable the log at runtime!
+#general_log_file = /var/log/mysql/mysql.log
+#general_log = 1
+#
+# Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf.
+#
+# we do want to know about network errors and such
+#log_warnings = 2
+#
+# Enable the slow query log to see queries with especially long duration
+#slow_query_log[={0|1}]
+slow_query_log_file = /var/log/mysql/mariadb-slow.log
+long_query_time = 10
+#log_slow_rate_limit = 1000
+#log_slow_verbosity = query_plan
+
+#log-queries-not-using-indexes
+#log_slow_admin_statements
+#
+# The following can be used as easy to replay backup logs or for replication.
+# note: if you are setting up a replication slave, see README.Debian about
+# other settings you may need to change.
+#server-id = 1
+#report_host = master1
+#auto_increment_increment = 2
+#auto_increment_offset = 1
+#log_bin = /var/log/mysql/mariadb-bin
+#log_bin_index = /var/log/mysql/mariadb-bin.index
+# not fab for performance, but safer
+#sync_binlog = 1
+expire_logs_days = 10
+max_binlog_size = 100M
+# slaves
+#relay_log = /var/log/mysql/relay-bin
+#relay_log_index = /var/log/mysql/relay-bin.index
+#relay_log_info_file = /var/log/mysql/relay-bin.info
+#log_slave_updates
+#read_only
+#
+# If applications support it, this stricter sql_mode prevents some
+# mistakes like inserting invalid dates etc.
+#sql_mode = NO_ENGINE_SUBSTITUTION,TRADITIONAL
+#
+# * InnoDB
+#
+# InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/.
+# Read the manual for more InnoDB related options. There are many!
+default_storage_engine = InnoDB
+# you can't just change log file size, requires special procedure
+#innodb_log_file_size = 50M
+innodb_buffer_pool_size = 256M
+innodb_log_buffer_size = 8M
+innodb_file_per_table = 1
+innodb_open_files = 400
+innodb_io_capacity = 400
+innodb_flush_method = O_DIRECT
+#
+# * Security Features
+#
+# Read the manual, too, if you want chroot!
+# chroot = /var/lib/mysql/
+#
+# For generating SSL certificates I recommend the OpenSSL GUI "tinyca".
+#
+# ssl-ca=/etc/mysql/cacert.pem
+# ssl-cert=/etc/mysql/server-cert.pem
+# ssl-key=/etc/mysql/server-key.pem
+
+#
+# * Galera-related settings
+#
+[galera]
+# Mandatory settings
+#wsrep_on=ON
+#wsrep_provider=
+#wsrep_cluster_address=
+#binlog_format=row
+#default_storage_engine=InnoDB
+#innodb_autoinc_lock_mode=2
+#
+# Allow server to accept connections on all interfaces.
+#
+#bind-address=0.0.0.0
+#
+# Optional setting
+#wsrep_slave_threads=1
+#innodb_flush_log_at_trx_commit=0
+
+[mysqldump]
+quick
+quote-names
+max_allowed_packet = 16M
+
+[mysql]
+#no-auto-rehash # faster start of mysql but no tab completion
+
+[isamchk]
+key_buffer = 16M
+
+#
+# * IMPORTANT: Additional settings that can override those from this file!
+# The files must end with '.cnf', otherwise they'll be ignored.
+#
+#!includedir /etc/mysql/conf.d/
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-parent</artifactId>
- <version>2.2.0.M4</version>
- <relativePath/> <!-- lookup parent from repository -->
- </parent>
- <groupId>org.onap</groupId>
- <artifactId>portal</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <name>portal-BE</name>
- <description></description>
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-parent</artifactId>
+ <version>2.2.0.M4</version>
+ <relativePath/> <!-- lookup parent from repository -->
+ </parent>
+ <groupId>org.onap</groupId>
+ <artifactId>portal</artifactId>
+ <version>0.0.1-SNAPSHOT</version>
+ <name>portal-BE</name>
+ <packaging>jar</packaging>
+ <description></description>
- <dependencies>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-jpa</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-security</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-thymeleaf</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-web</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.session</groupId>
- <artifactId>spring-session-core</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-devtools</artifactId>
- <scope>runtime</scope>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-aop</artifactId>
- <version>2.1.6.RELEASE</version>
- </dependency>
- <dependency>
- <groupId>com.h2database</groupId>
- <artifactId>h2</artifactId>
- <scope>runtime</scope>
- </dependency>
- <dependency>
- <groupId>mysql</groupId>
- <artifactId>mysql-connector-java</artifactId>
- <scope>runtime</scope>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.glassfish/javax.el -->
- <dependency>
- <groupId>org.glassfish</groupId>
- <artifactId>javax.el</artifactId>
- <version>3.0.1-b11</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/javax.el/el-api -->
- <dependency>
- <groupId>javax.el</groupId>
- <artifactId>el-api</artifactId>
- <version>2.2.1-b04</version>
- </dependency>
- <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
- <dependency>
- <groupId>org.jsoup</groupId>
- <artifactId>jsoup</artifactId>
- <version>1.12.1</version>
- </dependency>
- <dependency>
- <groupId>org.projectlombok</groupId>
- <artifactId>lombok</artifactId>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-module-junit4</artifactId>
- <version>2.0.0</version>
- <scope>test</scope>
- </dependency>
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-actuator</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-security</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-thymeleaf</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.session</groupId>
+ <artifactId>spring-session-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-devtools</artifactId>
+ <scope>runtime</scope>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-aop</artifactId>
+ <version>2.1.6.RELEASE</version>
+ </dependency>
+ <dependency>
+ <groupId>com.h2database</groupId>
+ <artifactId>h2</artifactId>
+ <scope>runtime</scope>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>8.0.17</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/org.glassfish/javax.el -->
+ <dependency>
+ <groupId>org.glassfish</groupId>
+ <artifactId>javax.el</artifactId>
+ <version>3.0.1-b11</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/javax.el/el-api -->
+ <dependency>
+ <groupId>javax.el</groupId>
+ <artifactId>el-api</artifactId>
+ <version>2.2.1-b04</version>
+ </dependency>
+ <!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
+ <dependency>
+ <groupId>org.jsoup</groupId>
+ <artifactId>jsoup</artifactId>
+ <version>1.12.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <optional>true</optional>
+ </dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-module-junit4</artifactId>
+ <version>2.0.0</version>
+ <scope>test</scope>
+ </dependency>
- <dependency>
- <groupId>org.powermock</groupId>
- <artifactId>powermock-api-mockito2</artifactId>
- <version>2.0.0</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>org.onap.portal.sdk</groupId>
- <artifactId>epsdk-logger</artifactId>
- <version>2.6.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.onap.portal.sdk</groupId>
- <artifactId>epsdk-core</artifactId>
- <version>2.6.0-SNAPSHOT</version>
- </dependency>
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- <scope>test</scope>
- <exclusions>
- <exclusion>
- <groupId>org.junit.vintage</groupId>
- <artifactId>junit-vintage-engine</artifactId>
- </exclusion>
- <exclusion>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
- <dependency>
- <groupId>org.springframework.security</groupId>
- <artifactId>spring-security-test</artifactId>
- <scope>test</scope>
- </dependency>
+ <dependency>
+ <groupId>org.powermock</groupId>
+ <artifactId>powermock-api-mockito2</artifactId>
+ <version>2.0.0</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.portal.sdk</groupId>
+ <artifactId>epsdk-logger</artifactId>
+ <version>2.6.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.portal.sdk</groupId>
+ <artifactId>epsdk-core</artifactId>
+ <version>2.6.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.junit.vintage</groupId>
+ <artifactId>junit-vintage-engine</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.security</groupId>
+ <artifactId>spring-security-test</artifactId>
+ <scope>test</scope>
+ </dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
+ <properties>
+ <docker.image.prefix>portal</docker.image.prefix>
+ </properties>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>com.spotify</groupId>
+ <artifactId>dockerfile-maven-plugin</artifactId>
+ <version>1.4.9</version>
+ <configuration>
+ <repository>${docker.image.prefix}/${project.version}</repository>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <!-- DO NOT include log4j.properties file in your Jar -->
+ <excludes>
+ <exclude>**/log4j.properties</exclude>
+ </excludes>
+ <archive>
+ <manifest>
+ <!-- Jar file entry point -->
+ <mainClass>org.onap.portal.PortalApplication</mainClass>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-dependency-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>unpack</id>
+ <phase>package</phase>
+ <goals>
+ <goal>unpack</goal>
+ </goals>
+ <configuration>
+ <artifactItems>
+ <artifactItem>
+ <groupId>${project.groupId}</groupId>
+ <artifactId>${project.artifactId}</artifactId>
+ <version>${project.version}</version>
+ </artifactItem>
+ </artifactItems>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ </resources>
+ </build>
- <build>
- <plugins>
- <plugin>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-maven-plugin</artifactId>
- </plugin>
- </plugins>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- </resource>
- </resources>
- </build>
-
- <repositories>
- <repository>
- <id>spring-milestones</id>
- <name>Spring Milestones</name>
- <url>https://repo.spring.io/milestone</url>
- </repository>
- </repositories>
- <pluginRepositories>
- <pluginRepository>
- <id>spring-milestones</id>
- <name>Spring Milestones</name>
- <url>https://repo.spring.io/milestone</url>
- </pluginRepository>
- </pluginRepositories>
+ <repositories>
+ <repository>
+ <id>spring-milestones</id>
+ <name>Spring Milestones</name>
+ <url>https://repo.spring.io/milestone</url>
+ </repository>
+ </repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>spring-milestones</id>
+ <name>Spring Milestones</name>
+ <url>https://repo.spring.io/milestone</url>
+ </pluginRepository>
+ </pluginRepositories>
</project>
protected void configure(HttpSecurity http) throws Exception {
http
.authorizeRequests()
- .antMatchers("/static/img/**").permitAll()
+ .antMatchers("/img/**").permitAll()
.anyRequest().authenticated()
.and()
.formLogin()
package org.onap.portal.controller;
import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class LoginController {
- @RequestMapping(value = "login", method = RequestMethod.GET)
+ @GetMapping(value = "login")
public String loginView() {
return "login";
}
import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
import org.onap.portalsdk.core.onboarding.util.CipherUtil;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController
this.dataValidator = dataValidator;
}
- @RequestMapping(value = {"/portalApi/loggedinUser"}, method = RequestMethod.GET, produces = "application/json")
+ @GetMapping(value = {"/portalApi/loggedinUser"}, produces = MediaType.APPLICATION_JSON_VALUE)
public PortalRestResponse<ProfileDetail> getLoggedinUser(Principal principal) {
PortalRestResponse<ProfileDetail> portalRestResponse = null;
try {
return portalRestResponse;
}
- @RequestMapping(value = {
- "/portalApi/modifyLoggedinUser"}, method = RequestMethod.PUT, produces = "application/json")
+ @PutMapping(value = {"/portalApi/modifyLoggedinUser"}, produces = MediaType.APPLICATION_JSON_VALUE)
public PortalRestResponse<String> modifyLoggedinUser(Principal principal,
@RequestBody ProfileDetail profileDetail) {
PortalRestResponse<String> portalRestResponse = null;
String errorMsg = "";
if (!dataValidator.isValid(profileDetail)) {
errorMsg = "Required field(s) is missing";
- portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR, dataValidator.getConstraintViolationsString(profileDetail), null);
+ portalRestResponse = new PortalRestResponse<>(PortalRestStatusEnum.ERROR,
+ dataValidator.getConstraintViolationsString(profileDetail), null);
logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", errorMsg);
} else {
FnUser user = userService.loadUserByUsername(principal.getName());
user.setMiddleName(profileDetail.getMiddleName());
user.setLoginId(profileDetail.getLoginId());
if (!HIDDEN_DEFAULT_PASSWORD.equals(profileDetail.getLoginPassword())) {
- user.setLoginPwd(CipherUtil.encryptPKC(profileDetail.getLoginPassword(), "AGLDdG4D04BKm2IxIWEr8o==!"));
+ user.setLoginPwd(CipherUtil
+ .encryptPKC(profileDetail.getLoginPassword(), "AGLDdG4D04BKm2IxIWEr8o==!"));
}
userService.saveFnUser(principal, user);
// Update user info in the session
--- /dev/null
+/*-
+ * ============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============================================
+ *
+ *
+ */
+package org.onap.portal.controller;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.security.Principal;
+import java.util.ArrayList;
+import java.util.List;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.commons.lang.StringUtils;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.domain.dto.PortalRestResponse;
+import org.onap.portal.domain.dto.PortalRestStatusEnum;
+import org.onap.portal.domain.dto.ecomp.MicroserviceParameter;
+import org.onap.portal.domain.dto.ecomp.WidgetCatalog;
+import org.onap.portal.domain.dto.ecomp.WidgetCatalogParameter;
+import org.onap.portal.domain.dto.ecomp.WidgetParameterResult;
+import org.onap.portal.domain.dto.ecomp.WidgetServiceHeaders;
+import org.onap.portal.logging.aop.EPAuditLog;
+import org.onap.portal.service.WidgetMService;
+import org.onap.portal.service.ep.EpMicroserviceParameterService;
+import org.onap.portal.service.ep.EpWidgetCatalogParameterService;
+import org.onap.portal.service.fn.FnUserService;
+import org.onap.portal.utils.EPCommonSystemProperties;
+import org.onap.portal.utils.EcompPortalUtils;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.core.io.FileSystemResource;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
+import org.springframework.util.LinkedMultiValueMap;
+import org.springframework.util.MultiValueMap;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.multipart.MultipartFile;
+import org.springframework.web.multipart.MultipartHttpServletRequest;
+
+@RestController
+@EnableAspectJAutoProxy
+@EPAuditLog
+public class WidgetsCatalogController {
+
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetsCatalogController.class);
+
+ private static final String MS_WIDGET_LOCAL_PORT = "microservices.widget.local.port";
+ private static final String UNAUTHORIZED_OR_FORBIDDEN_FOR_A_DISABLED_USER = "Unauthorized or Forbidden for a disabled user";
+ private RestTemplate template = new RestTemplate();
+ private String whatService = "widgets-service";
+
+ private final EpWidgetCatalogParameterService epWidgetCatalogParameterService;
+ private final EpMicroserviceParameterService epMicroserviceParameterService;
+ private final WidgetMService widgetMService;
+ private final FnUserService fnUserService;
+
+ @Autowired
+ public WidgetsCatalogController(final EpWidgetCatalogParameterService epWidgetCatalogParameterService,
+ final EpMicroserviceParameterService epMicroserviceParameterService,
+ final WidgetMService widgetMService,
+ final FnUserService fnUserService) {
+ this.epWidgetCatalogParameterService = epWidgetCatalogParameterService;
+ this.epMicroserviceParameterService = epMicroserviceParameterService;
+ this.widgetMService = widgetMService;
+ this.fnUserService = fnUserService;
+ }
+
+
+ @GetMapping(value = {
+ "/portalApi/microservices/widgetCatalog/{loginName}"}, produces = MediaType.APPLICATION_JSON_VALUE)
+ public List<WidgetCatalog> getUserWidgetCatalog(@PathVariable("loginName") String loginName) {
+ List<WidgetCatalog> widgets;
+ try {
+ ResponseEntity<List> ans = template.exchange(
+ EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(EPCommonSystemProperties.MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/widgetCatalog/" + loginName,
+ HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), List.class);
+ widgets = ans.getBody();
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getUserWidgetCatalog failed", e);
+ return null;
+ }
+ return widgets;
+ }
+
+ @GetMapping(value = {"/portalApi/microservices/widgetCatalog"}, produces = MediaType.APPLICATION_JSON_VALUE)
+ public List<WidgetCatalog> getWidgetCatalog() {
+ List<WidgetCatalog> widgets;
+ try {
+ ResponseEntity<List> ans = template.exchange(
+ EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(EPCommonSystemProperties.MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/widgetCatalog",
+ HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), List.class);
+ widgets = ans.getBody();
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getWidgetCatalog failed", e);
+ return null;
+ }
+ return widgets;
+ }
+
+ @PutMapping(value = {
+ "/portalApi/microservices/widgetCatalog/{widgetId}"}, produces = MediaType.APPLICATION_JSON_VALUE)
+ public void updateWidgetCatalog(@RequestBody WidgetCatalog newWidgetCatalog,
+ @PathVariable("widgetId") long widgetId) throws Exception {
+ template.exchange(
+ EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/widgetCatalog/" + widgetId,
+ HttpMethod.PUT, new HttpEntity<>(newWidgetCatalog, WidgetServiceHeaders.getInstance()),
+ String.class);
+ }
+
+ @DeleteMapping(value = {"/portalApi/microservices/widgetCatalog/{widgetId}"})
+ public void deleteOnboardingWidget(@PathVariable("widgetId") long widgetId) throws Exception {
+ template.exchange(
+ EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/widgetCatalog/" + widgetId,
+ HttpMethod.DELETE, new HttpEntity<>(WidgetServiceHeaders.getInstance()), String.class);
+ }
+
+ @PostMapping(value = {"/portalApi/microservices/widgetCatalog/{widgetId}"})
+ public String updateWidgetCatalogWithFiles(HttpServletRequest request,
+ @PathVariable("widgetId") long widgetId) {
+ MultipartHttpServletRequest mRequest;
+ MultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<>();
+ String fileName;
+ String tmpFolderName = "/tmp/";
+ String respond = null;
+ FileOutputStream fo = null;
+ try {
+ mRequest = (MultipartHttpServletRequest) request;
+ MultipartFile mFile = mRequest.getFile("file");
+ fileName = mFile.getOriginalFilename();
+ fo = new FileOutputStream(tmpFolderName + fileName);
+ fo.write(mFile.getBytes());
+ fo.close();
+ fo = null;
+
+ HttpHeaders header = new HttpHeaders();
+ header.setContentType(MediaType.MULTIPART_FORM_DATA);
+ multipartRequest.add("file", new FileSystemResource(tmpFolderName + fileName));
+ multipartRequest.add("widget", request.getParameter("newWidget"));
+ respond = template.postForObject(
+ EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(EPCommonSystemProperties.MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/widgetCatalog/" + widgetId,
+ new HttpEntity<>(multipartRequest, WidgetServiceHeaders.getInstance()), String.class);
+ File f = new File(tmpFolderName + fileName);
+ f.delete();
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "updateWidgetCatalogWithFiles failed", e);
+ } finally {
+ try {
+ if (fo != null) {
+ fo.close();
+ }
+ } catch (IOException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "updateWidgetCatalogWithFiles failed 2", e);
+ }
+ }
+ return respond;
+ }
+
+ @PostMapping(value = {"/portalApi/microservices/widgetCatalog"})
+ public String createWidgetCatalog(HttpServletRequest request)
+ throws Exception {
+
+ if (StringUtils.isNotBlank(SystemProperties.getProperty(EPCommonSystemProperties.MS_WIDGET_UPLOAD_FLAG))
+ && SystemProperties.getProperty(EPCommonSystemProperties.MS_WIDGET_UPLOAD_FLAG)
+ .equalsIgnoreCase("false")) {
+ return UNAUTHORIZED_OR_FORBIDDEN_FOR_A_DISABLED_USER;
+ }
+
+ MultipartHttpServletRequest mRequest;
+ MultiValueMap<String, Object> multipartRequest = new LinkedMultiValueMap<>();
+ String fileName;
+ String tmpFolderName = "/tmp/";
+ String respond = null;
+ FileOutputStream fo = null;
+ try {
+ mRequest = (MultipartHttpServletRequest) request;
+ MultipartFile mFile = mRequest.getFile("file");
+ fileName = mFile.getOriginalFilename();
+ fo = new FileOutputStream(tmpFolderName + fileName);
+ fo.write(mFile.getBytes());
+ // silence sonar scan by calling close here
+ fo.close();
+ fo = null;
+
+ HttpHeaders header = new HttpHeaders();
+ header.setContentType(MediaType.MULTIPART_FORM_DATA);
+ multipartRequest.add("file", new FileSystemResource(tmpFolderName + fileName));
+ multipartRequest.add("widget", request.getParameter("newWidget"));
+
+ respond = template.postForObject(
+ EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(EPCommonSystemProperties.MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/widgetCatalog",
+ new HttpEntity<>(multipartRequest, WidgetServiceHeaders.getInstance()), String.class);
+ File f = new File(tmpFolderName + fileName);
+ f.delete();
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "createWidgetCatalog failed", e);
+ } finally {
+ try {
+ if (fo != null) {
+ fo.close();
+ }
+ } catch (IOException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "createWidgetCatalog failed 2", e);
+ }
+ }
+ return respond;
+ }
+
+ @GetMapping(value = "/portalApi/microservices/{widgetId}/framework.js")
+ public String getWidgetFramework(@PathVariable("widgetId") long widgetId) throws Exception {
+ return template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/" + widgetId + "/framework.js", String.class,
+ WidgetServiceHeaders.getInstance());
+ }
+
+ @GetMapping(value = "/portalApi/microservices/{widgetId}/controller.js")
+ public String getWidgetController(@PathVariable("widgetId") long widgetId) throws Exception {
+ return template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/" + widgetId + "/controller.js", String.class,
+ WidgetServiceHeaders.getInstance());
+ }
+
+ @GetMapping(value = "/portalApi/microservices/{widgetId}/style.css")
+ public String getWidgetCSS(@PathVariable("widgetId") long widgetId) throws Exception {
+ return template.getForObject(EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/" + widgetId + "/styles.css", String.class,
+ WidgetServiceHeaders.getInstance());
+ }
+
+ @GetMapping(value = {"/portalApi/microservices/parameters/{widgetId}"})
+ public PortalRestResponse<List<WidgetParameterResult>> getWidgetParameterResult(Principal principal, HttpServletRequest request,
+ @PathVariable("widgetId") long widgetId) throws Exception {
+ FnUser user = fnUserService.loadUserByUsername(principal.getName());
+
+ List<WidgetParameterResult> list = new ArrayList<>();
+ Long serviceId = template.exchange(
+ EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(EPCommonSystemProperties.MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/widgetCatalog/parameters/" + widgetId,
+ HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), Long.class).getBody();
+ if (serviceId == null) {
+ // return ok/sucess and no service parameter for this widget
+ return new PortalRestResponse<>(PortalRestStatusEnum.WARN,
+ "No service parameters for this widget", list);
+ } else {
+ List<MicroserviceParameter> defaultParam = epMicroserviceParameterService.getParametersById(serviceId);
+ for (MicroserviceParameter param : defaultParam) {
+ WidgetParameterResult userResult = new WidgetParameterResult();
+ userResult.setParamId(param.getId());
+ userResult.setDefaultValue(param.getPara_value());
+ userResult.setParamKey(param.getPara_key());
+ WidgetCatalogParameter userValue = epWidgetCatalogParameterService
+ .getUserParamById(widgetId, user.getId(),
+ param.getId());
+ if (userValue == null) {
+ userResult.setUserValue(param.getPara_value());
+ } else {
+ userResult.setUserValue(userValue.getUserValue());
+ }
+ list.add(userResult);
+ }
+ }
+ return new PortalRestResponse<List<WidgetParameterResult>>(PortalRestStatusEnum.OK, "SUCCESS", list);
+ }
+
+ @GetMapping(value = {"/portalApi/microservices/services/{paramId}"})
+ public List<WidgetCatalogParameter> getUserParameterById(@PathVariable("paramId") long paramId) {
+ return epWidgetCatalogParameterService.getUserParameterById(paramId);
+ }
+
+ @DeleteMapping(value = {"/portalApi/microservices/services/{paramId}"})
+ public void deleteUserParameterById(@PathVariable("paramId") long paramId) {
+ epWidgetCatalogParameterService.deleteUserParameterById(paramId);
+ }
+
+ @GetMapping(value = {"/portalApi/microservices/download/{widgetId}"})
+ public void doDownload(HttpServletRequest request, HttpServletResponse response,
+ @PathVariable("widgetId") long widgetId) throws Exception {
+
+ ServletContext context = request.getServletContext();
+ byte[] byteFile = template
+ .exchange(
+ EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty(EPCommonSystemProperties.MS_WIDGET_LOCAL_PORT))
+ + "/widget/microservices/download/" + widgetId,
+ HttpMethod.GET, new HttpEntity<>(WidgetServiceHeaders.getInstance()), byte[].class)
+ .getBody();
+
+ File downloadFile = File.createTempFile("temp", ".zip");
+ try (FileOutputStream stream = new FileOutputStream(downloadFile.getPath())) {
+ stream.write(byteFile);
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "doDownload failed", e);
+ throw e;
+ }
+
+ try (FileInputStream inputStream = new FileInputStream(downloadFile);
+ OutputStream outStream = response.getOutputStream()) {
+ String mimeType = context.getMimeType(downloadFile.getPath());
+ if (mimeType == null) {
+ mimeType = "application/octet-stream";
+ }
+
+ response.setContentType(mimeType);
+ response.setContentLength((int) downloadFile.length());
+ String headerKey = "Content-Disposition";
+ String headerValue = String.format("attachment; filename=\"%s\"", downloadFile.getName());
+ downloadFile.delete();
+ response.setHeader(headerKey, headerValue);
+
+ byte[] buffer = new byte[32 * 1024];
+ int bytesRead;
+ while ((bytesRead = inputStream.read(buffer)) != -1) {
+ outStream.write(buffer, 0, bytesRead);
+ }
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "doDownload failed", e);
+ throw e;
+ }
+ }
+
+ @PostMapping(value = {"/portalApi/microservices/parameters"})
+ public PortalRestResponse<String> saveWidgetParameter(Principal principal, HttpServletRequest request,
+ @RequestBody WidgetCatalogParameter widgetParameters) {
+ FnUser user = fnUserService.loadUserByUsername(principal.getName());
+ widgetParameters.setUserId(user.getId());
+ try {
+ WidgetCatalogParameter oldParam = epWidgetCatalogParameterService
+ .getUserParamById(widgetParameters.getWidgetId(),
+ widgetParameters.getUserId(), widgetParameters.getParamId());
+ if (oldParam != null) {
+ widgetParameters.setId(oldParam.getId());
+ }
+ epWidgetCatalogParameterService.saveUserParameter(widgetParameters);
+
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "saveWidgetParameter failed", e);
+ return new PortalRestResponse<String>(PortalRestStatusEnum.ERROR, "FAILURE", e.getMessage());
+ }
+ return new PortalRestResponse<>(PortalRestStatusEnum.OK, "SUCCESS", "");
+ }
+
+ @GetMapping(value = {"/portalApi/microservices/uploadFlag"})
+ public String getUploadFlag() {
+ String uplaodFlag = "";
+ try {
+ uplaodFlag = SystemProperties.getProperty(EPCommonSystemProperties.MS_WIDGET_UPLOAD_FLAG);
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "uploadFlag failed", e);
+ return null;
+ }
+ return uplaodFlag;
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.controller;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.onap.portal.domain.dto.ecomp.WidgetServiceHeaders;
+import org.onap.portal.logging.aop.EPAuditLog;
+import org.onap.portal.service.WidgetMService;
+import org.onap.portal.utils.EcompPortalUtils;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.client.RestClientException;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.multipart.commons.CommonsMultipartResolver;
+
+@EPAuditLog
+@RestController
+@EnableAspectJAutoProxy
+public class WidgetsCatalogMarkupController {
+
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetsCatalogMarkupController.class);
+ private RestTemplate template = new RestTemplate();
+ private final String whatService = "widgets-service";
+
+ @Autowired
+ private WidgetMService widgetMService;
+
+ @Bean
+ public CommonsMultipartResolver multipartResolver() {
+ return new CommonsMultipartResolver();
+ }
+
+ static {
+ // for localhost testing only
+ javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier(new javax.net.ssl.HostnameVerifier() {
+
+ public boolean verify(String hostname, javax.net.ssl.SSLSession sslSession) {
+ if (hostname.equals("localhost")) {
+ return true;
+ }
+ return false;
+ }
+ });
+ }
+
+ @GetMapping(value = "/portalApi/microservices/markup/{widgetId}")
+ public String getWidgetMarkup(HttpServletRequest request, HttpServletResponse response,
+ @PathVariable("widgetId") long widgetId) throws RestClientException, Exception {
+ return template
+ .getForObject(
+ EcompPortalUtils.widgetMsProtocol() + "://"
+ + widgetMService.getServiceLocation(whatService,
+ SystemProperties.getProperty("microservices.widget.local.port"))
+ + "/widget/microservices/markup/" + widgetId,
+ String.class, WidgetServiceHeaders.getInstance());
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.controller;
+
+import java.io.IOException;
+import java.security.Principal;
+import java.util.List;
+import java.util.Optional;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.domain.dto.transport.FieldsValidator;
+import org.onap.portal.domain.dto.transport.OnboardingWidget;
+import org.onap.portal.domain.dto.transport.WidgetCatalogPersonalization;
+import org.onap.portal.logging.aop.EPAuditLog;
+import org.onap.portal.service.AdminRolesService;
+import org.onap.portal.service.PersUserWidgetService;
+import org.onap.portal.service.WidgetService;
+import org.onap.portal.service.fn.FnUserService;
+import org.onap.portal.utils.EcompPortalUtils;
+import org.onap.portal.validation.DataValidator;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.http.MediaType;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+
+@EPAuditLog
+@RestController
+@EnableAspectJAutoProxy
+public class WidgetsController {
+
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetsController.class);
+
+ private final FnUserService fnUserService;
+ private final WidgetService widgetService;
+ private final AdminRolesService adminRolesService;
+ private final DataValidator dataValidator;
+ private final PersUserWidgetService persUserWidgetService;
+
+ @Autowired
+ public WidgetsController(final FnUserService fnUserService, final WidgetService widgetService,
+ final AdminRolesService adminRolesService, final DataValidator dataValidator,
+ final PersUserWidgetService persUserWidgetService) {
+ this.fnUserService = fnUserService;
+ this.widgetService = widgetService;
+ this.adminRolesService = adminRolesService;
+ this.dataValidator = dataValidator;
+ this.persUserWidgetService = persUserWidgetService;
+ }
+
+ @GetMapping(value = {"/portalApi/widgets"}, produces = MediaType.APPLICATION_JSON_VALUE)
+ public List<OnboardingWidget> getOnboardingWidgets(Principal principal, HttpServletRequest request,
+ HttpServletResponse response) {
+ FnUser user = fnUserService.loadUserByUsername(principal.getName());
+ List<OnboardingWidget> onboardingWidgets = null;
+
+ if (user.getGuest()) {
+ EcompPortalUtils.setBadPermissions(user, response, "getOnboardingWidgets");
+ } else {
+ String getType = request.getHeader("X-Widgets-Type");
+ if (!getType.isEmpty() && ("managed".equals(getType) || "all".equals(getType))) {
+ onboardingWidgets = widgetService.getOnboardingWidgets(user, "managed".equals(getType));
+ } else {
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "WidgetsController.getOnboardingApps - request must contain header 'X-Widgets-Type' with 'all' or 'managed'");
+ response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+ }
+ }
+
+ EcompPortalUtils
+ .logAndSerializeObject(logger, "/portalApi/widgets", "GET result =", response.getStatus());
+ return onboardingWidgets;
+ }
+
+ @PutMapping(value = {"/portalApi/widgets/{widgetId}"}, produces = MediaType.APPLICATION_JSON_VALUE)
+ public FieldsValidator putOnboardingWidget(Principal principal, HttpServletRequest request,
+ @PathVariable("widgetId") Long widgetId,
+ @RequestBody OnboardingWidget onboardingWidget, HttpServletResponse response) {
+ FnUser user = fnUserService.loadUserByUsername(principal.getName());
+ FieldsValidator fieldsValidator = null;
+ if (onboardingWidget != null) {
+ if (!dataValidator.isValid(onboardingWidget)) {
+ fieldsValidator = new FieldsValidator();
+ fieldsValidator.setHttpStatusCode((long) HttpServletResponse.SC_NOT_ACCEPTABLE);
+ return fieldsValidator;
+ }
+ }
+
+ if (userHasPermissions(user, response, "putOnboardingWidget")) {
+ assert onboardingWidget != null;
+ onboardingWidget.setId(widgetId);
+ onboardingWidget.normalize();
+ fieldsValidator = widgetService.setOnboardingWidget(user, onboardingWidget);
+ response.setStatus(fieldsValidator.getHttpStatusCode().intValue());
+ }
+ EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/widgets/" + widgetId, "GET result =",
+ response.getStatus());
+
+ return fieldsValidator;
+ }
+
+ private boolean userHasPermissions(FnUser user, HttpServletResponse response, String invocator) {
+ if (!adminRolesService.isSuperAdmin(user) && !adminRolesService.isAccountAdmin(user)) {
+ EcompPortalUtils.setBadPermissions(user, response, invocator);
+ return false;
+ }
+ return true;
+ }
+
+ @PostMapping(value = {"/portalApi/widgets"}, produces = MediaType.APPLICATION_JSON_VALUE)
+ public FieldsValidator postOnboardingWidget(Principal principal, HttpServletRequest request,
+ @RequestBody OnboardingWidget onboardingWidget, HttpServletResponse response) {
+ FnUser user = fnUserService.loadUserByUsername(principal.getName());
+ FieldsValidator fieldsValidator = null;
+
+ if (onboardingWidget != null) {
+ if (!dataValidator.isValid(onboardingWidget)) {
+ fieldsValidator = new FieldsValidator();
+ fieldsValidator.setHttpStatusCode((long) HttpServletResponse.SC_NOT_ACCEPTABLE);
+ return fieldsValidator;
+ }
+ }
+
+ if (userHasPermissions(user, response, "postOnboardingWidget")) {
+ onboardingWidget.setId(null);
+ onboardingWidget.normalize();
+ fieldsValidator = widgetService.setOnboardingWidget(user, onboardingWidget);
+ response.setStatus(fieldsValidator.getHttpStatusCode().intValue());
+ }
+
+ EcompPortalUtils
+ .logAndSerializeObject(logger, "/portalApi/widgets", "POST result =", response.getStatus());
+ return fieldsValidator;
+ }
+
+ @DeleteMapping(value = {"/portalApi/widgets/{widgetId}"}, produces = MediaType.APPLICATION_JSON_VALUE)
+ public FieldsValidator deleteOnboardingWidget(Principal principal, HttpServletRequest request,
+ @PathVariable("widgetId") Long widgetId, HttpServletResponse response) {
+ FnUser user = fnUserService.loadUserByUsername(principal.getName());
+ FieldsValidator fieldsValidator = null;
+
+ if (userHasPermissions(user, response, "deleteOnboardingWidget")) {
+ fieldsValidator = widgetService.deleteOnboardingWidget(user, widgetId);
+ response.setStatus(fieldsValidator.getHttpStatusCode().intValue());
+ }
+
+ EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/widgets/" + widgetId, "DELETE result =",
+ response.getStatus());
+ return fieldsValidator;
+ }
+
+ @PutMapping(value = {"portalApi/widgetCatalogSelection"}, produces = MediaType.APPLICATION_JSON_VALUE)
+ public FieldsValidator putWidgetCatalogSelection(Principal principal, HttpServletRequest request,
+ @RequestBody WidgetCatalogPersonalization persRequest, HttpServletResponse response) throws IOException {
+ FieldsValidator result = new FieldsValidator();
+ FnUser user = fnUserService.loadUserByUsername(principal.getName());
+
+ if (persRequest != null) {
+ if (!dataValidator.isValid(persRequest)) {
+ result.setHttpStatusCode((long) HttpServletResponse.SC_NOT_ACCEPTABLE);
+ return result;
+ }
+ }
+ try {
+ if (persRequest.getWidgetId() == null || user == null) {
+ EcompPortalUtils.setBadPermissions(user, response, "putWidgetCatalogSelection");
+ } else {
+ persUserWidgetService
+ .setPersUserAppValue(user, persRequest.getWidgetId(), persRequest.getSelect());
+ }
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "Failed in putAppCatalogSelection", e);
+ response.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.toString());
+ }
+ result.setHttpStatusCode((long) HttpServletResponse.SC_OK);
+ return result;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.dao.ep;
+
+import java.util.List;
+import org.onap.portal.domain.db.ep.EpMicroserviceParameter;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+@Repository
+@Transactional
+public interface EpMicroserviceParameterDao extends JpaRepository<EpMicroserviceParameter, Long> {
+
+ @Query
+ void deleteByServiceId(@Param("SERVICEID") Long userId);
+ @Query
+ void deleteMicroserviceParameterById(@Param("PARAMID") Long userId);
+ @Query
+ List<EpMicroserviceParameter> getParametersById(@Param("SERVICEID") long serviceId);
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.dao.ep;
+
+import java.util.List;
+import java.util.Optional;
+import org.onap.portal.domain.db.ep.EpPersUserWidgetSel;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+@Repository
+@Transactional
+public interface EpPersUserWidgetSelDao extends JpaRepository<EpPersUserWidgetSel, Long> {
+
+ @Query
+ Optional<List<EpPersUserWidgetSel>> getEpPersUserWidgetSelForUserIdAndWidgetId(@Param("USERID") Long userId, @Param("WIDGETID") Long widgetId);
+}
--- /dev/null
+package org.onap.portal.dao.ep;
+
+import java.util.List;
+import java.util.Optional;
+import org.onap.portal.domain.db.ep.EpWidgetCatalogParameter;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+@Repository
+@Transactional
+public interface EpWidgetCatalogParameterDao extends JpaRepository<EpWidgetCatalogParameter, Long> {
+
+ @Query
+ Optional<List<EpWidgetCatalogParameter>> retrieveByParamId(@Param("PARAMID") Long paramId);
+
+ @Query
+ void deleteWidgetCatalogParameter(@Param("PARAMID") Long paramId);
+
+ @Query
+ Optional<List<EpWidgetCatalogParameter>> getUserParamById(@Param("WIDGETID") Long widgetId,
+ @Param("USERID") Long userId, @Param("PARAMID") Long paramId);
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.dao.fn;
+
+import org.onap.portal.domain.db.ep.EpWidgetCatalog;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface EpWidgetCatalogDao extends JpaRepository<EpWidgetCatalog, Long> {
+
+}
--- /dev/null
+package org.onap.portal.dao.fn;
+
+import org.onap.portal.domain.db.fn.FnApp;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+@Repository
+@Transactional
+public interface FnAppDao extends JpaRepository<FnApp, Long> {
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.dao.fn;
+
+import org.onap.portal.domain.db.fn.FnWidget;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+import org.springframework.transaction.annotation.Transactional;
+
+@Repository
+@Transactional
+public interface FnWidgetDao extends JpaRepository<FnWidget, Long> {
+
+}
+++ /dev/null
-/*
- * ============LICENSE_START==========================================
- * ONAP Portal
- * ===================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * ===================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ===================================================================
- *
- * 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============================================
- *
- *
- */
-
-package org.onap.portal.domain.builder;
-
-import java.time.LocalDateTime;
-import java.util.Set;
-import javax.validation.Valid;
-import javax.validation.constraints.Digits;
-import javax.validation.constraints.Email;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.PastOrPresent;
-import javax.validation.constraints.Size;
-import org.hibernate.validator.constraints.SafeHtml;
-import org.onap.portal.domain.db.cr.CrReportFileHistory;
-import org.onap.portal.domain.db.ep.EpPersUserWidgetPlacement;
-import org.onap.portal.domain.db.ep.EpPersUserWidgetSel;
-import org.onap.portal.domain.db.ep.EpUserNotification;
-import org.onap.portal.domain.db.ep.EpUserRolesRequest;
-import org.onap.portal.domain.db.ep.EpWidgetCatalogParameter;
-import org.onap.portal.domain.db.fn.FnAuditLog;
-import org.onap.portal.domain.db.fn.FnLanguage;
-import org.onap.portal.domain.db.fn.FnLuAlertMethod;
-import org.onap.portal.domain.db.fn.FnLuTimezone;
-import org.onap.portal.domain.db.fn.FnMenuFunctional;
-import org.onap.portal.domain.db.fn.FnOrg;
-import org.onap.portal.domain.db.fn.FnPersUserAppSel;
-import org.onap.portal.domain.db.fn.FnRole;
-import org.onap.portal.domain.db.fn.FnUser;
-import org.onap.portal.domain.db.fn.FnUserRole;
-import org.springframework.stereotype.Component;
-
-@Component
-public class FnUserBuilder {
-
- private @Digits(integer = 11, fraction = 0) Long userId;
- private @Valid FnOrg orgId;
- private @Valid FnUser managerId;
- private @Size(max = 50)
- @SafeHtml String firstName;
- private @Size(max = 50)
- @SafeHtml String middleName;
- private @Size(max = 50)
- @SafeHtml String lastName;
- private @Size(max = 25)
- @SafeHtml String phone;
- private @Size(max = 25)
- @SafeHtml String fax;
- private @Size(max = 25)
- @SafeHtml String cellular;
- private @Size(max = 50) @Email
- @SafeHtml String email;
- private @Digits(integer = 11, fraction = 0) Long addressId;
- private FnLuAlertMethod alertMethodCd;
- private @Size(max = 20)
- @SafeHtml String hrid;
- private @Size(max = 20)
- @SafeHtml String orgUserId;
- private @Size(max = 30)
- @SafeHtml String org_code;
- private @Size(max = 25)
- @SafeHtml String loginId;
- private @Size(max = 100)
- @SafeHtml String loginPwd;
- private @PastOrPresent LocalDateTime lastLoginDate;
- private @Size(max = 1)
- @SafeHtml
- @NotNull(message = "activeYn must not be null") String activeYn;
- private @Valid FnUser createdId;
- private @PastOrPresent LocalDateTime createdDate;
- private @Valid FnUser modifiedId;
- private @PastOrPresent LocalDateTime modifiedDate;
- private @Size(max = 1)
- @SafeHtml
- @NotNull(message = "isInternalYn must not be null") String isInternalYn;
- private @Size(max = 100)
- @SafeHtml String addressLine1;
- private @Size(max = 100)
- @SafeHtml String addressLine2;
- private @Size(max = 50)
- @SafeHtml String city;
- private @Size(max = 3)
- @SafeHtml String stateCd;
- private @Size(max = 11)
- @SafeHtml String zipCode;
- private @Size(max = 3)
- @SafeHtml String countryCd;
- private @Size(max = 8)
- @SafeHtml String locationClli;
- private @Size(max = 20)
- @SafeHtml String orgManagerUserId;
- private @Size(max = 100)
- @SafeHtml String company;
- private @Size(max = 200)
- @SafeHtml String departmentName;
- private @Size(max = 100)
- @SafeHtml String jobTitle;
- private @Valid FnLuTimezone timezone;
- private @Size(max = 25)
- @SafeHtml String department;
- private @Size(max = 25)
- @SafeHtml String businessUnit;
- private @Size(max = 100)
- @SafeHtml String businessUnitName;
- private @Size(max = 25)
- @SafeHtml String cost_center;
- private @Size(max = 10)
- @SafeHtml String finLocCode;
- private @Size(max = 10)
- @SafeHtml String siloStatus;
- private @Valid @NotNull(message = "languageId must not be null") FnLanguage languageId;
- private @NotNull(message = "guest must not be null") boolean guest;
- private Set<CrReportFileHistory> crReportFileHistorie;
- private Set<FnRole> fnRoles;
- private Set<FnMenuFunctional> fnRoleList;
- private Set<FnAuditLog> fnAuditLogs;
- private Set<FnUser> fnUsersCreatedId;
- private Set<FnUser> fnUsersManagerId;
- private Set<FnUser> fnUsersModifiedId;
- private Set<EpUserRolesRequest> epUserRolesRequests;
- private Set<FnPersUserAppSel> persUserAppSels;
- private Set<EpWidgetCatalogParameter> epWidgetCatalogParameters;
- private Set<EpPersUserWidgetPlacement> epPersUserWidgetPlacements;
- private Set<EpPersUserWidgetSel> epPersUserWidgetSels;
- private Set<FnUserRole> fnUserRoles;
- private Set<EpUserNotification> epUserNotifications;
-
- public FnUserBuilder setUserId(@Digits(integer = 11, fraction = 0) Long userId) {
- this.userId = userId;
- return this;
- }
-
- public FnUserBuilder setOrgId(@Valid FnOrg orgId) {
- this.orgId = orgId;
- return this;
- }
-
- public FnUserBuilder setManagerId(@Valid FnUser managerId) {
- this.managerId = managerId;
- return this;
- }
-
- public FnUserBuilder setFirstName(@Size(max = 50) @SafeHtml String firstName) {
- this.firstName = firstName;
- return this;
- }
-
- public FnUserBuilder setMiddleName(@Size(max = 50) @SafeHtml String middleName) {
- this.middleName = middleName;
- return this;
- }
-
- public FnUserBuilder setLastName(@Size(max = 50) @SafeHtml String lastName) {
- this.lastName = lastName;
- return this;
- }
-
- public FnUserBuilder setPhone(@Size(max = 25) @SafeHtml String phone) {
- this.phone = phone;
- return this;
- }
-
- public FnUserBuilder setFax(@Size(max = 25) @SafeHtml String fax) {
- this.fax = fax;
- return this;
- }
-
- public FnUserBuilder setCellular(@Size(max = 25) @SafeHtml String cellular) {
- this.cellular = cellular;
- return this;
- }
-
- public FnUserBuilder setEmail(@Size(max = 50) @Email @SafeHtml String email) {
- this.email = email;
- return this;
- }
-
- public FnUserBuilder setAddressId(@Digits(integer = 11, fraction = 0) Long addressId) {
- this.addressId = addressId;
- return this;
- }
-
- public FnUserBuilder setAlertMethodCd(FnLuAlertMethod alertMethodCd) {
- this.alertMethodCd = alertMethodCd;
- return this;
- }
-
- public FnUserBuilder setHrid(@Size(max = 20) @SafeHtml String hrid) {
- this.hrid = hrid;
- return this;
- }
-
- public FnUserBuilder setOrgUserId(@Size(max = 20) @SafeHtml String orgUserId) {
- this.orgUserId = orgUserId;
- return this;
- }
-
- public FnUserBuilder setOrg_code(@Size(max = 30) @SafeHtml String org_code) {
- this.org_code = org_code;
- return this;
- }
-
- public FnUserBuilder setLoginId(@Size(max = 25) @SafeHtml String loginId) {
- this.loginId = loginId;
- return this;
- }
-
- public FnUserBuilder setLoginPwd(@Size(max = 100) @SafeHtml String loginPwd) {
- this.loginPwd = loginPwd;
- return this;
- }
-
- public FnUserBuilder setLastLoginDate(@PastOrPresent LocalDateTime lastLoginDate) {
- this.lastLoginDate = lastLoginDate;
- return this;
- }
-
- public FnUserBuilder setActiveYn(
- @Size(max = 1) @SafeHtml @NotNull(message = "activeYn must not be null") String activeYn) {
- this.activeYn = activeYn;
- return this;
- }
-
- public FnUserBuilder setCreatedId(@Valid FnUser createdId) {
- this.createdId = createdId;
- return this;
- }
-
- public FnUserBuilder setCreatedDate(@PastOrPresent LocalDateTime createdDate) {
- this.createdDate = createdDate;
- return this;
- }
-
- public FnUserBuilder setModifiedId(@Digits(integer = 11, fraction = 0) FnUser modifiedId) {
- this.modifiedId = modifiedId;
- return this;
- }
-
- public FnUserBuilder setModifiedDate(@PastOrPresent LocalDateTime modifiedDate) {
- this.modifiedDate = modifiedDate;
- return this;
- }
-
- public FnUserBuilder setIsInternalYn(
- @Size(max = 1) @SafeHtml @NotNull(message = "isInternalYn must not be null") String isInternalYn) {
- this.isInternalYn = isInternalYn;
- return this;
- }
-
- public FnUserBuilder setAddressLine1(@Size(max = 100) @SafeHtml String addressLine1) {
- this.addressLine1 = addressLine1;
- return this;
- }
-
- public FnUserBuilder setAddressLine2(@Size(max = 100) @SafeHtml String addressLine2) {
- this.addressLine2 = addressLine2;
- return this;
- }
-
- public FnUserBuilder setCity(@Size(max = 50) @SafeHtml String city) {
- this.city = city;
- return this;
- }
-
- public FnUserBuilder setStateCd(@Size(max = 3) @SafeHtml String stateCd) {
- this.stateCd = stateCd;
- return this;
- }
-
- public FnUserBuilder setZipCode(@Size(max = 11) @SafeHtml String zipCode) {
- this.zipCode = zipCode;
- return this;
- }
-
- public FnUserBuilder setCountryCd(@Size(max = 3) @SafeHtml String countryCd) {
- this.countryCd = countryCd;
- return this;
- }
-
- public FnUserBuilder setLocationClli(@Size(max = 8) @SafeHtml String locationClli) {
- this.locationClli = locationClli;
- return this;
- }
-
- public FnUserBuilder setOrgManagerUserId(@Size(max = 20) @SafeHtml String orgManagerUserId) {
- this.orgManagerUserId = orgManagerUserId;
- return this;
- }
-
- public FnUserBuilder setCompany(@Size(max = 100) @SafeHtml String company) {
- this.company = company;
- return this;
- }
-
- public FnUserBuilder setDepartmentName(@Size(max = 200) @SafeHtml String departmentName) {
- this.departmentName = departmentName;
- return this;
- }
-
- public FnUserBuilder setJobTitle(@Size(max = 100) @SafeHtml String jobTitle) {
- this.jobTitle = jobTitle;
- return this;
- }
-
- public FnUserBuilder setTimezone(@Valid FnLuTimezone timezone) {
- this.timezone = timezone;
- return this;
- }
-
- public FnUserBuilder setDepartment(@Size(max = 25) @SafeHtml String department) {
- this.department = department;
- return this;
- }
-
- public FnUserBuilder setBusinessUnit(@Size(max = 25) @SafeHtml String businessUnit) {
- this.businessUnit = businessUnit;
- return this;
- }
-
- public FnUserBuilder setBusinessUnitName(@Size(max = 100) @SafeHtml String businessUnitName) {
- this.businessUnitName = businessUnitName;
- return this;
- }
-
- public FnUserBuilder setCost_center(@Size(max = 25) @SafeHtml String cost_center) {
- this.cost_center = cost_center;
- return this;
- }
-
- public FnUserBuilder setFinLocCode(@Size(max = 10) @SafeHtml String finLocCode) {
- this.finLocCode = finLocCode;
- return this;
- }
-
- public FnUserBuilder setSiloStatus(@Size(max = 10) @SafeHtml String siloStatus) {
- this.siloStatus = siloStatus;
- return this;
- }
-
- public FnUserBuilder setLanguageId(
- @Valid @NotNull(message = "languageId must not be null") FnLanguage languageId) {
- this.languageId = languageId;
- return this;
- }
-
- public FnUserBuilder setGuest(@NotNull(message = "guest must not be null") boolean guest) {
- this.guest = guest;
- return this;
- }
-
- public FnUserBuilder setCrReportFileHistorie(Set<CrReportFileHistory> crReportFileHistorie) {
- this.crReportFileHistorie = crReportFileHistorie;
- return this;
- }
-
- public FnUserBuilder setFnRoles(Set<FnRole> fnRoles) {
- this.fnRoles = fnRoles;
- return this;
- }
-
- public FnUserBuilder setFnRoleList(Set<FnMenuFunctional> fnRoleList) {
- this.fnRoleList = fnRoleList;
- return this;
- }
-
- public FnUserBuilder setFnAuditLogs(Set<FnAuditLog> fnAuditLogs) {
- this.fnAuditLogs = fnAuditLogs;
- return this;
- }
-
- public FnUserBuilder setFnUsersCreatedId(Set<FnUser> fnUsersCreatedId) {
- this.fnUsersCreatedId = fnUsersCreatedId;
- return this;
- }
-
- public FnUserBuilder setFnUsersManagerId(Set<FnUser> fnUsersManagerId) {
- this.fnUsersManagerId = fnUsersManagerId;
- return this;
- }
-
- public FnUserBuilder setFnUsersModifiedId(Set<FnUser> fnUsersModifiedId) {
- this.fnUsersModifiedId = fnUsersModifiedId;
- return this;
- }
-
- public FnUserBuilder setEpUserRolesRequests(Set<EpUserRolesRequest> epUserRolesRequests) {
- this.epUserRolesRequests = epUserRolesRequests;
- return this;
- }
-
- public FnUserBuilder setPersUserAppSels(Set<FnPersUserAppSel> persUserAppSels) {
- this.persUserAppSels = persUserAppSels;
- return this;
- }
-
- public FnUserBuilder setEpWidgetCatalogParameters(Set<EpWidgetCatalogParameter> epWidgetCatalogParameters) {
- this.epWidgetCatalogParameters = epWidgetCatalogParameters;
- return this;
- }
-
- public FnUserBuilder setEpPersUserWidgetPlacements(Set<EpPersUserWidgetPlacement> epPersUserWidgetPlacements) {
- this.epPersUserWidgetPlacements = epPersUserWidgetPlacements;
- return this;
- }
-
- public FnUserBuilder setEpPersUserWidgetSels(Set<EpPersUserWidgetSel> epPersUserWidgetSels) {
- this.epPersUserWidgetSels = epPersUserWidgetSels;
- return this;
- }
-
- public FnUserBuilder setFnUserRoles(Set<FnUserRole> fnUserRoles) {
- this.fnUserRoles = fnUserRoles;
- return this;
- }
-
- public FnUserBuilder setEpUserNotifications(Set<EpUserNotification> epUserNotifications) {
- this.epUserNotifications = epUserNotifications;
- return this;
- }
-
- public FnUser createFnUser() {
- return new FnUser(userId, orgId, managerId, firstName, middleName, lastName, phone, fax, cellular, email,
- addressId, alertMethodCd, hrid, orgUserId, org_code, loginId, loginPwd, lastLoginDate, activeYn,
- createdId, createdDate, modifiedId, modifiedDate, isInternalYn, addressLine1, addressLine2, city,
- stateCd, zipCode, countryCd, locationClli, orgManagerUserId, company, departmentName, jobTitle,
- timezone, department, businessUnit, businessUnitName, cost_center, finLocCode, siloStatus,
- languageId, guest, crReportFileHistorie, fnRoles, fnRoleList, fnAuditLogs, fnUsersCreatedId,
- fnUsersManagerId, fnUsersModifiedId, epUserRolesRequests, persUserAppSels,
- epWidgetCatalogParameters, epPersUserWidgetPlacements, epPersUserWidgetSels, fnUserRoles,
- epUserNotifications);
- }
-}
\ No newline at end of file
+++ /dev/null
-/*
- * ============LICENSE_START==========================================
- * ONAP Portal
- * ===================================================================
- * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
- * ===================================================================
- * Modifications Copyright (c) 2019 Samsung
- * ===================================================================
- *
- * 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============================================
- *
- *
- */
-
-package org.onap.portal.domain.builder;
-
-import java.time.LocalDateTime;
-import lombok.AllArgsConstructor;
-import lombok.Getter;
-import lombok.NoArgsConstructor;
-import lombok.Setter;
-import org.onap.portal.domain.dto.fn.FnUserDto;
-import org.springframework.stereotype.Component;
-
-@Component
-@NoArgsConstructor
-@AllArgsConstructor
-@Getter
-@Setter
-public class FnUserDtoBuilder {
-
- private Long userId;
- private Long orgId;
- private Long managerId;
- private String firstName;
- private String middleName;
- private String lastName;
- private String phone;
- private String fax;
- private String cellular;
- private String email;
- private Long addressId;
- private String alertMethodCd;
- private String hrid;
- private String orgUserId;
- private String org_code;
- private String loginId;
- private String loginPwd;
- private LocalDateTime lastLoginDate;
- private String activeYn;
- private Long createdId;
- private LocalDateTime createdDate;
- private Long modifiedId;
- private LocalDateTime modifiedDate;
- private String isInternalYn;
- private String addressLine1;
- private String addressLine2;
- private String city;
- private String stateCd;
- private String zipCode;
- private String countryCd;
- private String locationClli;
- private String orgManagerUserId;
- private String company;
- private String departmentName;
- private String jobTitle;
- private Long timezone;
- private String department;
- private String businessUnit;
- private String businessUnitName;
- private String cost_center;
- private String finLocCode;
- private String siloStatus;
- private Long languageId;
- private boolean guest;
-
- public FnUserDtoBuilder setUserId(Long userId) {
- this.userId = userId;
- return this;
- }
-
- public FnUserDtoBuilder setOrgId(Long orgId) {
- this.orgId = orgId;
- return this;
- }
-
- public FnUserDtoBuilder setManagerId(Long managerId) {
- this.managerId = managerId;
- return this;
- }
-
- public FnUserDtoBuilder setFirstName(String firstName) {
- this.firstName = firstName;
- return this;
- }
-
- public FnUserDtoBuilder setMiddleName(String middleName) {
- this.middleName = middleName;
- return this;
- }
-
- public FnUserDtoBuilder setLastName(String lastName) {
- this.lastName = lastName;
- return this;
- }
-
- public FnUserDtoBuilder setPhone(String phone) {
- this.phone = phone;
- return this;
- }
-
- public FnUserDtoBuilder setFax(String fax) {
- this.fax = fax;
- return this;
- }
-
- public FnUserDtoBuilder setCellular(String cellular) {
- this.cellular = cellular;
- return this;
- }
-
- public FnUserDtoBuilder setEmail(String email) {
- this.email = email;
- return this;
- }
-
- public FnUserDtoBuilder setAddressId(Long addressId) {
- this.addressId = addressId;
- return this;
- }
-
- public FnUserDtoBuilder setAlertMethodCd(String alertMethodCd) {
- this.alertMethodCd = alertMethodCd;
- return this;
- }
-
- public FnUserDtoBuilder setHrid(String hrid) {
- this.hrid = hrid;
- return this;
- }
-
- public FnUserDtoBuilder setOrgUserId(String orgUserId) {
- this.orgUserId = orgUserId;
- return this;
- }
-
- public FnUserDtoBuilder setOrg_code(String org_code) {
- this.org_code = org_code;
- return this;
- }
-
- public FnUserDtoBuilder setLoginId(String loginId) {
- this.loginId = loginId;
- return this;
- }
-
- public FnUserDtoBuilder setLoginPwd(String loginPwd) {
- this.loginPwd = loginPwd;
- return this;
- }
-
- public FnUserDtoBuilder setLastLoginDate(LocalDateTime lastLoginDate) {
- this.lastLoginDate = lastLoginDate;
- return this;
- }
-
- public FnUserDtoBuilder setActiveYn(String activeYn) {
- this.activeYn = activeYn;
- return this;
- }
-
- public FnUserDtoBuilder setCreatedId(Long createdId) {
- this.createdId = createdId;
- return this;
- }
-
- public FnUserDtoBuilder setCreatedDate(LocalDateTime createdDate) {
- this.createdDate = createdDate;
- return this;
- }
-
- public FnUserDtoBuilder setModifiedId(Long modifiedId) {
- this.modifiedId = modifiedId;
- return this;
- }
-
- public FnUserDtoBuilder setModifiedDate(LocalDateTime modifiedDate) {
- this.modifiedDate = modifiedDate;
- return this;
- }
-
- public FnUserDtoBuilder setIsInternalYn(String isInternalYn) {
- this.isInternalYn = isInternalYn;
- return this;
- }
-
- public FnUserDtoBuilder setAddressLine1(String addressLine1) {
- this.addressLine1 = addressLine1;
- return this;
- }
-
- public FnUserDtoBuilder setAddressLine2(String addressLine2) {
- this.addressLine2 = addressLine2;
- return this;
- }
-
- public FnUserDtoBuilder setCity(String city) {
- this.city = city;
- return this;
- }
-
- public FnUserDtoBuilder setStateCd(String stateCd) {
- this.stateCd = stateCd;
- return this;
- }
-
- public FnUserDtoBuilder setZipCode(String zipCode) {
- this.zipCode = zipCode;
- return this;
- }
-
- public FnUserDtoBuilder setCountryCd(String countryCd) {
- this.countryCd = countryCd;
- return this;
- }
-
- public FnUserDtoBuilder setLocationClli(String locationClli) {
- this.locationClli = locationClli;
- return this;
- }
-
- public FnUserDtoBuilder setOrgManagerUserId(String orgManagerUserId) {
- this.orgManagerUserId = orgManagerUserId;
- return this;
- }
-
- public FnUserDtoBuilder setCompany(String company) {
- this.company = company;
- return this;
- }
-
- public FnUserDtoBuilder setDepartmentName(String departmentName) {
- this.departmentName = departmentName;
- return this;
- }
-
- public FnUserDtoBuilder setJobTitle(String jobTitle) {
- this.jobTitle = jobTitle;
- return this;
- }
-
- public FnUserDtoBuilder setTimezone(Long timezone) {
- this.timezone = timezone;
- return this;
- }
-
- public FnUserDtoBuilder setDepartment(String department) {
- this.department = department;
- return this;
- }
-
- public FnUserDtoBuilder setBusinessUnit(String businessUnit) {
- this.businessUnit = businessUnit;
- return this;
- }
-
- public FnUserDtoBuilder setBusinessUnitName(String businessUnitName) {
- this.businessUnitName = businessUnitName;
- return this;
- }
-
- public FnUserDtoBuilder setCost_center(String cost_center) {
- this.cost_center = cost_center;
- return this;
- }
-
- public FnUserDtoBuilder setFinLocCode(String finLocCode) {
- this.finLocCode = finLocCode;
- return this;
- }
-
- public FnUserDtoBuilder setSiloStatus(String siloStatus) {
- this.siloStatus = siloStatus;
- return this;
- }
-
- public FnUserDtoBuilder setLanguageId(Long languageId) {
- this.languageId = languageId;
- return this;
- }
-
- public FnUserDtoBuilder setGuest(boolean guest) {
- this.guest = guest;
- return this;
- }
-
- public FnUserDto createFnUserDto() {
- return new FnUserDto(userId, orgId, managerId, firstName, middleName, lastName, phone, fax, cellular,
- email, addressId, alertMethodCd, hrid, orgUserId, org_code, loginId, loginPwd, lastLoginDate,
- activeYn, createdId, createdDate, modifiedId, modifiedDate, isInternalYn, addressLine1,
- addressLine2, city, stateCd, zipCode, countryCd, locationClli, orgManagerUserId, company,
- departmentName, jobTitle, timezone, department, businessUnit, businessUnitName, cost_center,
- finLocCode, siloStatus, languageId, guest);
- }
-}
\ No newline at end of file
package org.onap.portal.domain.db;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Getter
@Setter
@Entity
-public class SchemaInfo {
+public class SchemaInfo implements Serializable {
@Id
@Column(name = "SCHEMA_ID", length = 25, nullable = false)
@Size(max = 25)
package org.onap.portal.domain.db;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
+ " from fn_restricted_url r")
@Getter
@NoArgsConstructor
-public class VUrlAccess {
+public class VUrlAccess implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false)
@Setter
@IdClass(CrFavoriteReportsId.class)
@Entity
-public class CrFavoriteReports {
+public class CrFavoriteReports implements Serializable{
@Id
@Column(name = "user_id", length = 11, nullable = false)
@Digits(integer = 11, fraction = 0)
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.Digits;
-import javax.validation.constraints.Positive;
import javax.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Getter;
@Id
@Column(name = "schedule_id", length = 11, nullable = false)
@Digits(integer = 11, fraction = 0)
- @Positive
private Long scheduledId;
//TODO URL @URL
@URL
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Set;
import javax.persistence.CascadeType;
@Getter
@Setter
@Entity
-public class CrFolder {
+public class CrFolder implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "folder_id", length = 11, nullable = false)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@Getter
@Setter
@Entity
-public class CrFolderAccess {
+public class CrFolderAccess implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "folder_access_id", length = 11, nullable = false)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class CrLuFileType {
+public class CrLuFileType implements Serializable {
@Id
@Column(name = "lookup_id", length = 2, nullable = false)
@Digits(integer = 2, fraction = 0)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Getter
@Setter
@Entity
-public class CrRaptorActionImg {
+public class CrRaptorActionImg implements Serializable {
@Id
@Column(name = "image_id", length = 100, nullable = false)
@Size(max = 100)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Getter
@Setter
@Entity
-public class CrRaptorPdfImg {
+public class CrRaptorPdfImg implements Serializable {
@Id
@Column(name = "image_id", length = 100, nullable = false)
@Size(max = 100)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Getter
@Setter
@Entity
-public class CrRemoteSchemaInfo {
+public class CrRemoteSchemaInfo implements Serializable {
@Id
@Column(name = "schema_prefix", length = 5, nullable = false)
@Size(max = 5)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class CrReportDwnldLog {
+public class CrReportDwnldLog implements Serializable {
@Id
@Column(name = "user_id", nullable = false)
@Digits(integer = 11, fraction = 0)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class CrReportEmailSentLog {
+public class CrReportEmailSentLog implements Serializable {
@Id
@Column(name = "log_id", nullable = false)
@Digits(integer = 11, fraction = 0)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Set;
import javax.persistence.CascadeType;
@Getter
@Setter
@Entity
-public class CrReportFileHistory {
+public class CrReportFileHistory implements Serializable {
@Id
@Column(name = "hist_id", nullable = false, length = 11)
@Digits(integer = 11, fraction = 0)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class CrReportLog {
+public class CrReportLog implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@JoinColumn(name = "id")
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Set;
import javax.persistence.CascadeType;
@Getter
@Setter
@Entity
-public class CrReportSchedule {
+public class CrReportSchedule implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "schedule_id", length = 11, nullable = false)
@Setter
@Entity
@IdClass(CrReportScheduleUsersId.class)
-public class CrReportScheduleUsers {
+public class CrReportScheduleUsers implements Serializable{
@Id
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "schedule_id", nullable = false)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Getter
@Setter
@Entity
-public class CrReportTemplateMap {
+public class CrReportTemplateMap implements Serializable {
@Id
@Column(name = "report_id", nullable = false)
@NotNull
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class CrScheduleActivityLog {
+public class CrScheduleActivityLog implements Serializable {
@Id
@Column(name = "schedule_id", nullable = false)
@Digits(integer = 11, fraction = 0)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class CrTableJoin {
+public class CrTableJoin implements Serializable {
//TODO Unique constrains {srcTableName, destTableName}?
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Setter
@Entity
@IdClass(CrTableRoleId.class)
-public class CrTableRole {
+public class CrTableRole implements Serializable{
@Id
@Valid
@JoinColumn(name = "table_name", nullable = false)
package org.onap.portal.domain.db.cr;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class CrTableSource {
+public class CrTableSource implements Serializable {
@Id
@Column(name = "table_name", length = 30, nullable = false)
@Size(max = 30)
@IdClass(EpAppFunctionId.class)
@NoArgsConstructor
@AllArgsConstructor
-public class EpAppFunction {
+public class EpAppFunction implements Serializable{
@Id
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "app_id")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class EpAppRoleFunction {
+public class EpAppRoleFunction implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false, columnDefinition = "int(11) NOT NULL AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class EpBasicAuthAccount {
+public class EpBasicAuthAccount implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class EpEndpoints {
+public class EpEndpoints implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class EpEndpointsBasicAuthAccount {
+public class EpEndpointsBasicAuthAccount implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
})
@NoArgsConstructor
@AllArgsConstructor
-
@Getter
@Setter
@Entity
-public class EpMicroservice {
+public class EpMicroservice implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false)
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@NamedQueries({
@NamedQuery(
name = "EpMicroserviceParameter.deleteByServiceId",
- query = "FROM EpMicroserviceParameter WHERE service_id =:serviceId")
+ query = "DELETE FROM EpMicroserviceParameter WHERE service_id =:SERVICEID"),
+ @NamedQuery(
+ name = "EpMicroserviceParameter.getParametersById",
+ query = "FROM EpMicroserviceParameter WHERE service_id =:SERVICEID"),
+ @NamedQuery(
+ name = "EpMicroserviceParameter.deleteMicroserviceParameterById",
+ query = "DELETE FROM EpMicroserviceParameter WHERE id =:PARAMID"
+ )
})
@Table(name = "ep_microservice_parameter", indexes = {
})
@NoArgsConstructor
@AllArgsConstructor
-
@Getter
@Setter
@Entity
-public class EpMicroserviceParameter {
+public class EpMicroserviceParameter implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Table(name = "ep_ml_model")
@NoArgsConstructor
@AllArgsConstructor
-
@Getter
@Setter
@Entity
@IdClass(EpMlModelId.class)
-public class EpMlModel {
+public class EpMlModel implements Serializable{
@Id
@Digits(integer = 11, fraction = 0)
@Column(name = "group_id", length = 11, nullable = false)
@Table(name = "ep_ml_rec")
@NoArgsConstructor
@AllArgsConstructor
-
@Getter
@Setter
@Entity
@IdClass(EpMlRecId.class)
-public class EpMlRec {
+public class EpMlRec implements Serializable{
@Id
@Column(name = "time_stamp", nullable = false, columnDefinition = "datetime DEFAULT current_timestamp()")
private LocalDateTime timeStamp;
@Table(name = "ep_ml_user")
@NoArgsConstructor
@AllArgsConstructor
-
@Getter
@Setter
@Entity
@IdClass(EpMlUserId.class)
-public class EpMlUser {
+public class EpMlUser implements Serializable{
@Id
@Column(name = "time_stamp", nullable = false, columnDefinition = "datetime DEFAULT current_timestamp()")
private LocalDateTime timeStamp;
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Set;
import javax.persistence.CascadeType;
@Getter
@Setter
@Entity
-public class EpNotification {
+public class EpNotification implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "notification_ID", length = 11, nullable = false)
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class EpPersUserAppSort {
+public class EpPersUserAppSort implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class EpPersUserWidgetPlacement {
+public class EpPersUserWidgetPlacement implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;
import javax.validation.Valid;
import lombok.Setter;
import org.hibernate.validator.constraints.SafeHtml;
import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.domain.dto.DomainVo;
/*
CREATE TABLE `ep_pers_user_widget_sel` (
CONSTRAINT `fk_2_ep_pers_user_wid_sel_ep_wid` FOREIGN KEY (`widget_id`) REFERENCES `ep_widget_catalog` (`widget_id`)
)
*/
-
+@NamedQueries({
+ @NamedQuery(
+ name = "EpPersUserWidgetSel.getEpPersUserWidgetSelForUserIdAndWidgetId",
+ query = "FROM EpPersUserWidgetSel WHERE userId = :USERID and widgetId = :WIDGETID")
+})
@Table(name = "ep_pers_user_widget_sel", uniqueConstraints = {
@UniqueConstraint(columnNames = {"user_id", "widget_id"})
})
@Getter
@Setter
@Entity
-public class EpPersUserWidgetSel {
+public class EpPersUserWidgetSel extends DomainVo implements Serializable {
+
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false)
@Digits(integer = 11, fraction = 0)
private Long id;
- @ManyToOne(fetch = FetchType.LAZY,cascade = CascadeType.ALL)
+ @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "user_id", nullable = false)
@NotNull
@Valid
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class EpRoleNotification {
+public class EpRoleNotification implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class EpUserNotification {
+public class EpUserNotification implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Set;
import javax.persistence.CascadeType;
@Getter
@Setter
@Entity
-public class EpUserRolesRequest {
+public class EpUserRolesRequest implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "req_id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class EpUserRolesRequestDet {
+public class EpUserRolesRequestDet implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class EpWebAnalyticsSource {
+public class EpWebAnalyticsSource implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "resource_id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class EpWidgetCatalog {
+public class EpWidgetCatalog implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "widget_id", length = 11, nullable = false)
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@Getter
@Setter
@Entity
-public class EpWidgetCatalogFiles {
+public class EpWidgetCatalogFiles implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "file_id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Index;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
+import javax.persistence.NamedQueries;
+import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.validation.Valid;
import javax.validation.constraints.Digits;
)
*/
+@NamedQueries({
+ @NamedQuery(
+ name = "EpWidgetCatalogParameter.retrieveByParamId",
+ query = "FROM EpWidgetCatalogParameter WHERE paramId = :PARAMID"),
+ @NamedQuery(
+ name = "EpWidgetCatalogParameter.deleteWidgetCatalogParameter",
+ query = "DELETE FROM EpWidgetCatalogParameter WHERE paramId = :PARAMID"),
+ @NamedQuery(
+ name = "EpWidgetCatalogParameter.getUserParamById",
+ query = "FROM EpWidgetCatalogParameter WHERE paramId = :PARAMID and userId = :USERID and widgetId = :WIDGETID"
+ )
+})
+
@Table(name = "ep_widget_catalog_parameter", indexes = {
@Index(name = "EP_FN_USER_WIDGET_PARAMETER_FK", columnList = "user_id"),
@Index(name = "EP_WIDGET_CATALOG_WIDGET_PARAMETER_FK", columnList = "widget_id"),
@Getter
@Setter
@Entity
-public class EpWidgetCatalogParameter {
+public class EpWidgetCatalogParameter implements Serializable {
+
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
@Digits(integer = 11, fraction = 0)
- private Integer id;
+ private Long id;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "widget_id", nullable = false)
@NotNull
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-//TODO there is something wrong with "KEY"
-public class EpWidgetCatalogRole {
+public class EpWidgetCatalogRole implements Serializable {
@Id
@Column(name = "id", length = 11, nullable = false)
@Digits(integer = 11, fraction = 0)
package org.onap.portal.domain.db.ep;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@Getter
@Setter
@Entity
-public class EpWidgetPreviewFiles {
+public class EpWidgetPreviewFiles implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "preview_id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
@NotNull
private String appPassword;
@Column(name = "open", length = 1, columnDefinition = "char(1) default 'N'")
- @Pattern(regexp = "[YNyn]")
- @Size(max = 1)
- @NotNull
- @SafeHtml
- private String open;
+ private Boolean open;
@Column(name = "ENABLED", length = 1, columnDefinition = "char(1) default 'N'")
- @Pattern(regexp = "[YNyn]")
- @Size(max = 1)
- @NotNull
- @SafeHtml
- private String enabled;
+ private Boolean enabled;
@Column(name = "active_yn", length = 1, columnDefinition = "char(1) default 'Y'")
@Pattern(regexp = "[YNyn]")
@Size(max = 1)
@Digits(integer = 11, fraction = 0)
private Long appType;
@Column(name = "auth_central", length = 1, columnDefinition = "char(1) not null default 'N'", nullable = false)
- @Pattern(regexp = "[YNyn]")
- @Size(max = 1)
- @NotNull
- @SafeHtml
- private String authCentral;
+ private Boolean authCentral;
@Column(name = "auth_namespace", length = 100)
@Size(max = 100)
@SafeHtml
fetch = FetchType.LAZY
)
private Set<FnPersUserAppSel> fnPersUserAppSels;
+
+ public Boolean isRestrictedApp() {
+ return (this.appType == 2);
+ }
}
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@Getter
@Setter
@Entity
-public class FnAuditAction {
+public class FnAuditAction implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "role_id", nullable = false)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnAuditActionLog {
+public class FnAuditActionLog implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnAuditLog {
+public class FnAuditLog implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "log_id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnBroadcastMessage {
+public class FnBroadcastMessage implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnChatLogs {
+public class FnChatLogs implements Serializable {
@Id
@Column(name = "chat_log_id", nullable = false)
private Long chatLogId;
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnChatRoom {
+public class FnChatRoom implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "chat_room_id", nullable = false)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnChatUsers {
+public class FnChatUsers implements Serializable {
@Id
@Column(name = "id", length = 11, nullable = false)
@Digits(integer = 11, fraction = 0)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@Getter
@Setter
@Entity
-public class FnCommonWidgetData {
+public class FnCommonWidgetData implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@Getter
@Setter
@Entity
-public class FnDatasource {
+public class FnDatasource implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "message_id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@Getter
@Setter
@Entity
-public class FnDisplayText {
+public class FnDisplayText implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnFunction {
+public class FnFunction implements Serializable {
@Id
@Column(name = "function_cd", length = 30, nullable = false)
@Size(max = 30)
package org.onap.portal.domain.db.fn;
import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Table(name = "fn_language")
@NoArgsConstructor
@AllArgsConstructor
-
+@Builder
@Getter
@Setter
@Entity
@JsonInclude()
@SequenceGenerator(name="seq", initialValue=1000, allocationSize=100000)
-public class FnLanguage {
+public class FnLanguage implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnLuActivity {
+public class FnLuActivity implements Serializable {
@Id
@Column(name = "activity_cd", length = 50, nullable = false)
@Size(max = 50)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnLuAlertMethod {
+public class FnLuAlertMethod implements Serializable {
@Id
@Column(name = "alert_method_cd", length = 10, nullable = false)
@Size(max = 50)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Getter
@Setter
@Entity
-public class FnLuBroadcastSite {
+public class FnLuBroadcastSite implements Serializable {
@Id
@Column(name = "broadcast_site_cd", length = 50, nullable = false)
@Size(max = 50)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnLuMenuSet {
+public class FnLuMenuSet implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@Getter
@Setter
@Entity
-public class FnLuPriority {
+public class FnLuPriority implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "priority_id", nullable = false, length = 11)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Getter
@Setter
@Entity
-public class FnLuRoleType {
+public class FnLuRoleType implements Serializable {
@Id
@Column(name = "role_type_id", nullable = false, length = 11)
@Digits(integer = 11, fraction = 0)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnLuTabSet {
+public class FnLuTabSet implements Serializable {
@Id
@Column(name = "tab_set_cd", length = 30, nullable = false)
@Size(max = 30)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnLuTimezone {
+public class FnLuTimezone implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "timezone_id", length = 11, nullable = false)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnMenu {
+public class FnMenu implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "menu_id", nullable = false, length = 11, columnDefinition = "int(11) auto_increment")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnMenuFunctional {
+public class FnMenuFunctional implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "menu_id", nullable = false, length = 11)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnMenuFunctionalAncestors {
+public class FnMenuFunctionalAncestors implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false, length = 11, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnMenuFunctionalRoles {
+public class FnMenuFunctionalRoles implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false, length = 11, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
})
@NoArgsConstructor
@AllArgsConstructor
-
@Getter
@Setter
@Entity
-public class FnOrg {
+public class FnOrg implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "org_id", nullable = false, length = 11)
@SafeHtml
@NotNull
private String orgName;
- @Column(name = "access_cd", length = 10, columnDefinition = "varchar(10) DEFAULT NULL")
+ @Column(name = "access_cd", length = 10)
@Size(max = 10)
@SafeHtml
private String accessCd;
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnPersUserAppSel extends DomainVo {
+public class FnPersUserAppSel extends DomainVo implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", length = 11, nullable = false, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Setter
@Entity
@IdClass(FnQzTriggersId.class)
-public class FnQzBlobTriggers {
+public class FnQzBlobTriggers implements Serializable {
@Id
@ManyToOne
@JoinColumns(value = {
@Setter
@Entity
@IdClass(FnQzCalendarsId.class)
-public class FnQzCalendars {
+public class FnQzCalendars implements Serializable{
@Id
@SafeHtml
@Column(name = "SCHED_NAME", length = 120, insertable = false, updatable = false)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Setter
@Entity
@IdClass(FnQzTriggersId.class)
-public class FnQzCronTriggers {
+public class FnQzCronTriggers implements Serializable {
@Id
@ManyToOne
@JoinColumns(value = {
@Setter
@Entity
@IdClass(FnQzFiredTriggersID.class)
-public class FnQzFiredTriggers {
+public class FnQzFiredTriggers implements Serializable{
@Id
@Size(max = 120)
@SafeHtml
@Setter
@Entity
@IdClass(FnQzJobDetailsID.class)
-public class FnQzJobDetails {
+public class FnQzJobDetails implements Serializable{
@Id
@SafeHtml
@Size(max = 120)
@Setter
@Entity
@IdClass(FnQzLocksID.class)
-public class FnQzLocks {
+public class FnQzLocks implements Serializable{
@Id
@Size(max = 120)
@SafeHtml
@Setter
@Entity
@IdClass(FnQzPausedTriggerGrpsID.class)
-public class FnQzPausedTriggerGrps {
+public class FnQzPausedTriggerGrps implements Serializable{
@Id
@Size(max = 120)
@SafeHtml
@Setter
@Entity
@IdClass(FnQzSchedulerStateID.class)
-public class FnQzSchedulerState {
+public class FnQzSchedulerState implements Serializable{
@Id
@Size(max = 120)
@SafeHtml
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Setter
@Entity
@IdClass(FnQzTriggersId.class)
-public class FnQzSimpleTriggers {
+public class FnQzSimpleTriggers implements Serializable {
@Id
@ManyToOne
@JoinColumns(value = {
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
@Setter
@Entity
@IdClass(FnQzTriggersId.class)
-public class FnQzSimpropTriggers {
+public class FnQzSimpropTriggers implements Serializable {
@Id
@ManyToOne
@JoinColumns(value = {
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.math.BigInteger;
import javax.persistence.Column;
import javax.persistence.Entity;
@Setter
@Entity
@IdClass(FnQzTriggersId.class)
-public class FnQzTriggers {
+public class FnQzTriggers implements Serializable {
@ManyToOne
@JoinColumns(value = {
@JoinColumn(name = "SCHED_NAME", referencedColumnName = "SCHED_NAME"),
@Setter
@Entity
@IdClass(FnRestrictedUrlId.class)
-public class FnRestrictedUrl {
+public class FnRestrictedUrl implements Serializable{
@Column(name = "restricted_url", length = 250, nullable = false)
@Size(max = 250)
@SafeHtml
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.util.Set;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Table;
import javax.validation.constraints.Digits;
import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import lombok.AllArgsConstructor;
import lombok.Getter;
import org.onap.portal.domain.db.ep.EpRoleNotification;
import org.onap.portal.domain.db.ep.EpUserRolesRequestDet;
import org.onap.portal.domain.db.ep.EpWidgetCatalogRole;
+import org.onap.portal.domain.dto.DomainVo;
/*
CREATE TABLE `fn_role` (
@Getter
@Setter
@Entity
-public class FnRole {
+public class FnRole extends DomainVo implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@SafeHtml
private String roleName;
@Column(name = "active_yn", length = 1, columnDefinition = "character varying(1) default 'y'", nullable = false)
- @Pattern(regexp = "[YNyn]")
- @Size(max = 1)
@NotNull
- @SafeHtml
- private String activeYn;
+ private Boolean activeYn;
@Column(name = "priority", length = 4, columnDefinition = "decimal(4,0) DEFAULT NULL")
@Digits(integer = 4, fraction = 0)
private Long priority;
@Setter
@Entity
@IdClass(FnRoleFunctionId.class)
-public class FnRoleFunction {
+public class FnRoleFunction implements Serializable{
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "role_Id", nullable = false)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.math.BigInteger;
import javax.persistence.Column;
import javax.persistence.Entity;
+ " from fn_role where isnull(fn_role.app_id)")
@Getter
@NoArgsConstructor
-public class FnRoleV {
+public class FnRoleV implements Serializable {
@Id
@Column(name = "role_id")
private Integer roleId;
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.math.BigInteger;
import java.time.LocalDateTime;
import javax.persistence.Column;
@Getter
@Setter
@Entity
-public class FnScheduleWorkflows {
+public class FnScheduleWorkflows implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_schedule_workflows", nullable = false, length = 25, columnDefinition = "bigint(25) AUTO_INCREMENT")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.time.LocalDateTime;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnSharedContext {
+public class FnSharedContext implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false, length = 11, columnDefinition = "int(11) AUTO_INCREMENT")
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.math.BigInteger;
import java.util.Set;
import javax.persistence.CascadeType;
@Getter
@Setter
@Entity
-public class FnTab {
+public class FnTab implements Serializable {
@Id
@Column(name = "tab_cd", length = 30, nullable = false)
@Size(max = 30)
@Setter
@Entity
@IdClass(FnTabSelectedId.class)
-public class FnTabSelected {
+public class FnTabSelected implements Serializable{
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "selected_tab_cd", nullable = false)
@NotNull
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.Set;
import javax.validation.constraints.PastOrPresent;
import javax.validation.constraints.Size;
import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import org.onap.portal.domain.db.ep.EpUserNotification;
import org.onap.portal.domain.db.ep.EpUserRolesRequest;
import org.onap.portal.domain.db.ep.EpWidgetCatalogParameter;
+import org.onap.portal.domain.dto.DomainVo;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.core.userdetails.UserDetails;
@Getter
@Setter
@Entity
+@Builder
@NoArgsConstructor
@AllArgsConstructor
@DynamicUpdate
@SequenceGenerator(name = "seq", initialValue = 1000, allocationSize = 100000)
-public class FnUser implements UserDetails {
+public class FnUser extends DomainVo implements UserDetails, Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "seq")
@Digits(integer = 11, fraction = 0)
private Long userId;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
- @JoinColumn(name = "org_id", columnDefinition = "int(11) DEFAULT NULL")
+ @JoinColumn(name = "org_id")
private FnOrg orgId;
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "manager_id")
private FnUser managerId;
- @Column(name = "first_name", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "first_name", length = 50)
@Size(max = 50)
@SafeHtml
private String firstName;
- @Column(name = "middle_name", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "middle_name", length = 50)
@Size(max = 50)
@SafeHtml
private String middleName;
- @Column(name = "last_name", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "last_name", length = 50)
@Size(max = 50)
@SafeHtml
private String lastName;
- @Column(name = "phone", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "phone", length = 25)
@Size(max = 25)
@SafeHtml
private String phone;
- @Column(name = "fax", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "fax", length = 25)
@Size(max = 25)
@SafeHtml
private String fax;
- @Column(name = "cellular", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "cellular", length = 25)
@Size(max = 25)
@SafeHtml
private String cellular;
- @Column(name = "email", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "email", length = 50)
@Size(max = 50)
@Email
@SafeHtml
private String email;
- @Column(name = "address_id", columnDefinition = "decimal(11,0) DEFAULT NULL")
+ @Column(name = "address_id")
@Digits(integer = 11, fraction = 0)
private Long addressId;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "alert_method_cd", columnDefinition = "varchar(10) DEFAULT NULL")
+ @JoinColumn(name = "alert_method_cd")
private FnLuAlertMethod alertMethodCd;
- @Column(name = "hrid", length = 20, columnDefinition = "varchar(20) DEFAULT NULL")
+ @Column(name = "hrid", length = 20)
@Size(max = 20)
@SafeHtml
private String hrid;
- @Column(name = "org_user_id", length = 20, columnDefinition = "varchar(20) DEFAULT NULL")
+ @Column(name = "org_user_id", length = 20)
@Size(max = 20)
@SafeHtml
private String orgUserId;
- @Column(name = "org_code", length = 30, columnDefinition = "varchar(30) DEFAULT NULL")
+ @Column(name = "org_code", length = 30)
@Size(max = 30)
@SafeHtml
private String org_code;
- @Column(name = "login_id", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "login_id", length = 25)
@Size(max = 25)
@SafeHtml
private String loginId;
- @Column(name = "login_pwd", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "login_pwd", length = 100)
@Size(max = 100)
@SafeHtml
private String loginPwd;
@Column(name = "last_login_date", nullable = false, columnDefinition = "datetime DEFAULT current_timestamp() ON UPDATE current_timestamp()")
@PastOrPresent
protected LocalDateTime lastLoginDate;
- @Column(name = "active_yn", length = 1, columnDefinition = "character varying(1) default 'y'", nullable = false)
- @Size(max = 1)
- @SafeHtml
- @NotNull(message = "activeYn must not be null")
- private String activeYn;
+ @Column(name = "active_yn", nullable = false)
+ private Boolean activeYn;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "created_id")
private FnUser createdId;
@Column(name = "modified_date", nullable = false, columnDefinition = "datetime default now()")
@PastOrPresent
protected LocalDateTime modifiedDate;
- @Column(name = "is_internal_yn", length = 1, columnDefinition = "character varying(1) default 'n'", nullable = false)
- @Size(max = 1)
- @SafeHtml
- @NotNull(message = "isInternalYn must not be null")
- private String isInternalYn;
- @Column(name = "address_line_1", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "is_internal_yn", nullable = false, columnDefinition = "bit DEFAULT 0")
+ private Boolean isInternalYn;
+ @Column(name = "address_line_1", length = 100)
@Size(max = 100)
@SafeHtml
private String addressLine1;
- @Column(name = "address_line_2", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "address_line_2", length = 100)
@Size(max = 100)
@SafeHtml
private String addressLine2;
- @Column(name = "city", length = 50, columnDefinition = "varchar(50) DEFAULT NULL")
+ @Column(name = "city", length = 50)
@Size(max = 50)
@SafeHtml
private String city;
- @Column(name = "state_cd", length = 3, columnDefinition = "varchar(3) DEFAULT NULL")
+ @Column(name = "state_cd", length = 3)
@Size(max = 3)
@SafeHtml
private String stateCd;
- @Column(name = "zip_code", length = 11, columnDefinition = "varchar(11) DEFAULT NULL")
+ @Column(name = "zip_code", length = 11)
@Size(max = 11)
@SafeHtml
private String zipCode;
- @Column(name = "country_cd", length = 3, columnDefinition = "varchar(3) DEFAULT NULL")
+ @Column(name = "country_cd", length = 3)
@Size(max = 3)
@SafeHtml
private String countryCd;
- @Column(name = "location_clli", length = 8, columnDefinition = "varchar(8) DEFAULT NULL")
+ @Column(name = "location_clli", length = 8)
@Size(max = 8)
@SafeHtml
private String locationClli;
- @Column(name = "org_manager_userid", length = 20, columnDefinition = "varchar(20) DEFAULT NULL")
+ @Column(name = "org_manager_userid", length = 20)
@Size(max = 20)
@SafeHtml
private String orgManagerUserId;
- @Column(name = "company", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "company", length = 100)
@Size(max = 100)
@SafeHtml
private String company;
- @Column(name = "department_name", length = 200, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "department_name", length = 200)
@Size(max = 200)
@SafeHtml
private String departmentName;
- @Column(name = "job_title", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "job_title", length = 100)
@Size(max = 100)
@SafeHtml
private String jobTitle;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
- @JoinColumn(name = "timezone", columnDefinition = "int(11) DEFAULT NULL")
+ @JoinColumn(name = "timezone")
private FnLuTimezone timezone;
- @Column(name = "department", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "department", length = 25)
@Size(max = 25)
@SafeHtml
private String department;
- @Column(name = "business_unit", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "business_unit", length = 25)
@Size(max = 25)
@SafeHtml
private String businessUnit;
- @Column(name = "business_unit_name", length = 100, columnDefinition = "varchar(100) DEFAULT NULL")
+ @Column(name = "business_unit_name", length = 100)
@Size(max = 100)
@SafeHtml
private String businessUnitName;
- @Column(name = "cost_center", length = 25, columnDefinition = "varchar(25) DEFAULT NULL")
+ @Column(name = "cost_center", length = 25)
@Size(max = 25)
@SafeHtml
private String cost_center;
- @Column(name = "fin_loc_code", length = 10, columnDefinition = "varchar(10) DEFAULT NULL")
+ @Column(name = "fin_loc_code", length = 10)
@Size(max = 10)
@SafeHtml
private String finLocCode;
- @Column(name = "silo_status", length = 10, columnDefinition = "varchar(10) DEFAULT NULL")
+ @Column(name = "silo_status", length = 10)
@Size(max = 10)
@SafeHtml
private String siloStatus;
@JoinColumn(name = "language_id", nullable = false, columnDefinition = "int(11) DEFAULT 1")
@NotNull(message = "languageId must not be null")
private FnLanguage languageId;
- @Column(name = "is_guest", columnDefinition = "boolean default 0", nullable = false)
+ @Column(name = "is_guest", nullable = false, columnDefinition = "bit DEFAULT 0")
@NotNull(message = "guest must not be null")
- private boolean guest;
+ private Boolean guest;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "fnUserList")
private Set<CrReportFileHistory> crReportFileHistorie;
@ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
@Getter
@Setter
@Entity
-public class FnUserRole {
+public class FnUserRole implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.db.fn;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Table(name = "fn_widget")
+@NoArgsConstructor
+@AllArgsConstructor
+@Getter
+@Setter
+@Entity
+public class FnWidget {
+ @Id
+ private Long widgetId;
+ @Column(name = "WDG_NAME")
+ private String name;
+ @Column(name = "WDG_WIDTH")
+ private Integer width;
+ @Column(name = "WDG_HEIGHT")
+ private Integer height;
+ @Column(name = "WDG_URL")
+ private String url;
+ @Column(name = "APP_ID")
+ private Long appId;
+}
package org.onap.portal.domain.db.fn;
+import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
@Getter
@Setter
@Entity
-public class FnWorkflow {
+public class FnWorkflow implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", nullable = false, length = 9, columnDefinition = "mediumint(9) AUTO_INCREMENT")
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
-import java.util.Date;
+import java.time.LocalDateTime;
import java.util.Set;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Setter
@NoArgsConstructor
@AllArgsConstructor
-@Inheritance(strategy = InheritanceType.JOINED)
+@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
public class DomainVo extends FusionVo implements Serializable, Cloneable, Comparable {
+
private static final long serialVersionUID = 1L;
+
protected Long id;
- protected Date created;
- protected Date modified;
+ protected LocalDateTime created;
+ protected LocalDateTime modified;
protected FnUser createdId;
protected FnUser modifiedId;
protected Long rowNum;
@Override
public int compareTo(Object obj) {
Long c1 = this.getId();
- Long c2 = ((org.onap.portalsdk.core.domain.support.DomainVo)obj).getId();
+ Long c2 = ((org.onap.portalsdk.core.domain.support.DomainVo) obj).getId();
return c1 != null && c2 != null ? c1.compareTo(c2) : 1;
}
oos.writeObject(this);
bais = new ByteArrayInputStream(baos.toByteArray());
ois = new ObjectInputStream(bais);
- newVo = (DomainVo)ois.readObject();
+ newVo = (DomainVo) ois.readObject();
if (isIdNull) {
newVo.setId(null);
}
public Object clone() throws CloneNotSupportedException {
return super.clone();
}
+
+ public boolean equals(Object other) {
+ if (this == other) {
+ return true;
+ } else if (other == null) {
+ return false;
+ } else if (!(other instanceof DomainVo)) {
+ return false;
+ } else {
+ DomainVo castOther = (DomainVo)other;
+ return this.getId().equals(castOther.getId())
+ && this.getCreated().equals(castOther.getCreated())
+ && this.getCreatedId().equals(castOther.getCreatedId())
+ && this.getModified().equals(castOther.getModified())
+ && this.getModifiedId() == castOther.getModifiedId();
+ }
+ }
+
}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class AdminUserApp implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+
+ private Long user_Id;
+ private String firstName;
+ private String lastName;
+ private String orgUserId;
+ private Long appId;
+ private String appName;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.util.ArrayList;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class AdminUserApplications {
+ private List<Application> apps = new ArrayList<>();
+
+ private Long user_Id;
+ private String firstName;
+ private String lastName;
+ private String orgUserId;
+
+ public AdminUserApplications(AdminUserApp app) {
+ setUser_Id(app.getUser_Id());
+ setOrgUserId(app.getOrgUserId());
+ setFirstName(app.getFirstName());
+ setLastName(app.getLastName());
+
+ addApp(app.getAppId(), app.getAppName());
+ }
+
+ private void addApp(Long otherAppId, String otherAppName) {
+ apps.add(new Application(otherAppId, otherAppName));
+ }
+
+ @Getter
+ @Setter
+ @AllArgsConstructor
+ public class Application {
+ private Long appId;
+ private String appName;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class App implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+
+ private Long appId;
+ private String appName;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AppCatalogItem extends DomainVo {
+
+ private static final long serialVersionUID = 6619663784935017846L;
+
+ private Long id;
+ private String name;
+ private String mlAppName;
+ private String imageUrl;
+ private String description;
+ private String notes;
+ private String url;
+ private String alternateUrl;
+ private Boolean restricted;
+ private Boolean open;
+ private Boolean access;
+ private Boolean select;
+ private Boolean pending;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@ToString
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AppCategoryFunctionsItem extends DomainVo {
+
+ private static final long serialVersionUID = -1573834082471206458L;
+
+ private String rowId;
+ private String appId;
+ private String application;
+ private String category;
+ private String functions;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonBackReference;
+import javax.validation.Valid;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hibernate.validator.constraints.SafeHtml;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class AppContactUs extends DomainVo {
+
+ private static final long serialVersionUID = -2742197830465055134L;
+
+ @JsonBackReference
+ @Valid
+ private EPApp app;
+ @SafeHtml
+ private String description;
+ @SafeHtml
+ private String contactEmail;
+ @SafeHtml
+ private String contactName;
+ @SafeHtml
+ private String url;
+ @SafeHtml
+ private String activeYN;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hibernate.validator.constraints.SafeHtml;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class AppContactUsItem extends DomainVo {
+
+ private static final long serialVersionUID = 6964210807573346262L;
+
+ private Long appId;
+ @SafeHtml
+ private String appName;
+ @SafeHtml
+ private String description;
+ @SafeHtml
+ private String contactName;
+ @SafeHtml
+ private String contactEmail;
+ @SafeHtml
+ private String url;
+ @SafeHtml
+ private String activeYN;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class AppIdAndNameTransportModel implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+ private String name;
+ private Integer appType;
+
+ public Boolean isRestrictedApp() {
+ return (this.appType == 2);
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Setter()
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+public class AppsResponse {
+
+ private Long index;
+ private String title;
+ private String value;
+ private Boolean restrictedApp;
+ private Boolean enabled;
+
+ public AppsResponse(Long id, String name, Boolean restrictedApp, Boolean enabled) {
+ this.index = id;
+ this.title = this.value = name;
+ this.restrictedApp = restrictedApp;
+ this.enabled = enabled;
+ }
+
+ // Hide the implementation of restricted and normal app from the front end.
+ // The json sent and received will include restrictedApp but not appType.
+ private Boolean getRestrictedApp(){
+ return this.restrictedApp;
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@EqualsAndHashCode
+@NoArgsConstructor
+@AllArgsConstructor
+public class BEProperty {
+
+ private String key;
+ private String value;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class BasicAuthCredentials extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+ private String applicationName;
+ private String username;
+ private String password;
+ private String isActive;
+ private List<EPEndpoint> endpoints;
+
+ @Override
+ public String toString() {
+ return "BasicAuthCredentials [id=" + id + ", applicationName=" + applicationName + ", username=" + username
+ + ", password=" + password + ", isActive=" + isActive + "]";
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hibernate.validator.constraints.SafeHtml;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+public class CentralV2RoleFunction extends DomainVo implements Serializable, Comparable {
+
+ private static final long serialVersionUID = -4018975640065252688L;
+
+ @SafeHtml
+ private String code;
+ @SafeHtml
+ private String name;
+ @JsonIgnore
+ private Long appId;
+ @JsonIgnore
+ private Long roleId;
+ private String type;
+ @SafeHtml
+ private String action;
+ @SafeHtml
+ private String editUrl;
+
+ public CentralV2RoleFunction(Long id, String code, String name, Long appId, String type, String action,
+ String editUrl) {
+ super();
+ this.id = id;
+ this.code = code;
+ this.name = name;
+ this.appId = appId;
+ this.type = type;
+ this.action = action;
+ this.editUrl = editUrl;
+ }
+
+ public CentralV2RoleFunction(Long id, String code, String name, Long appId, String editUrl) {
+ super();
+ this.id = id;
+ this.code = code;
+ this.name = name;
+ this.appId = appId;
+ this.editUrl = editUrl;
+ }
+
+
+ public CentralV2RoleFunction(String code, String name) {
+ super();
+ this.code = code;
+ this.name = name;
+ }
+
+ public int compareTo(Object obj) {
+ String c1 = getName();
+ String c2 = ((CentralV2RoleFunction) obj).getName();
+
+ return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2);
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class CentralizedApp implements Serializable{
+
+ private static final long serialVersionUID = -3773410386555027935L;
+
+ private int appId;
+ private String appName;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+public enum CommonWidgetsEnum{
+ NEWS("news"),
+ EVENTS("events"),
+ RESOURCES("resources");
+
+ private String value;
+ CommonWidgetsEnum(String value){
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return value;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.Data;
+
+@Data
+public class DisplayText {
+
+ private Integer id;
+ private Integer languageId;
+ private Long textId;
+ private String label;
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import javax.persistence.Lob;
+import javax.validation.Valid;
+import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang.StringUtils;
+import org.hibernate.validator.constraints.SafeHtml;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@EqualsAndHashCode(callSuper = false)
+@AllArgsConstructor
+public class EPApp extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ @SafeHtml
+ private String name;
+ @SafeHtml
+ private String imageUrl;
+ @SafeHtml
+ private String description;
+ @SafeHtml
+ private String notes;
+ @SafeHtml
+ private String url;
+ @SafeHtml
+ private String alternateUrl;
+ @SafeHtml
+ private String appRestEndpoint;
+ @SafeHtml
+ private String mlAppName;
+ @SafeHtml
+ private String mlAppAdminId;
+ private Long motsId;
+ @SafeHtml
+ private String username;
+ @SafeHtml
+ private String appPassword;
+ @Lob
+ private byte[] thumbnail;
+ private Boolean open;
+ private Boolean enabled;
+ @SafeHtml
+ private String uebTopicName;
+ @SafeHtml
+ private String uebKey;
+ @SafeHtml
+ private String uebSecret;
+ private Integer appType;
+ @Valid
+ private AppContactUs contactUs;
+ private Boolean centralAuth;
+ @SafeHtml
+ private String nameSpace;
+
+ public EPApp() {
+ this.name = "";
+ this.mlAppName = "";
+ this.mlAppAdminId = "";
+ this.username = "";
+ this.appPassword = "";
+ this.open = Boolean.FALSE;
+ this.enabled = Boolean.TRUE;
+ this.uebTopicName = "";
+ this.uebKey = "";
+ this.uebSecret = "";
+ this.appType = 1;
+ }
+
+
+ public void setName(String name) {
+ if (StringUtils.isEmpty(name)) {
+ name = "";
+ }
+ this.name = name;
+ }
+
+ public void setMlAppName(String mlAppName) {
+ if (StringUtils.isEmpty(mlAppName)) {
+ mlAppName = "";
+ }
+ this.mlAppName = mlAppName;
+ }
+
+ public void setMlAppAdminId(String mlAppAdminId) {
+ if (StringUtils.isEmpty(mlAppAdminId)) {
+ mlAppAdminId = "";
+ }
+ this.mlAppAdminId = mlAppAdminId;
+ }
+
+
+ public void setAppPassword(String appPassword) {
+ if (StringUtils.isEmpty(appPassword)) {
+ appPassword = "";
+ }
+ this.appPassword = appPassword;
+ }
+
+ public void setOpen(Boolean open) {
+ if (open == null) {
+ open = Boolean.FALSE;
+ }
+ this.open = open;
+ }
+
+ public void setEnabled(Boolean enabled) {
+ if (enabled == null) {
+ enabled = Boolean.TRUE;
+ }
+ this.enabled = enabled;
+ }
+
+ public void setAppType(Integer appType) {
+ if (appType == null) {
+ appType = 1;
+ }
+ this.appType = appType;
+ }
+
+ public void setRestrictedApp(Boolean restrictedApp) {
+ Integer result = 1;
+ if (restrictedApp) {
+ result = 2;
+ }
+ this.appType = result;
+ }
+
+ public Boolean isRestrictedApp() {
+ return (this.appType == 2);
+ }
+
+ public int compareTo(Object obj) {
+ Long c1 = getId();
+ Long c2 = ((EPApp) obj).getId();
+
+ return c1.compareTo(c2);
+ }
+
+ public void setUebTopicName(String topicName) {
+ if (StringUtils.isEmpty(topicName)) {
+ this.uebTopicName = "";
+ }
+ this.uebTopicName = topicName;
+ }
+
+ public void setUebKey(String uebKey) {
+ if (StringUtils.isEmpty(uebKey)) {
+ this.uebKey = "";
+ }
+ this.uebKey = uebKey;
+ }
+
+
+ public void setUebSecret(String uebSecret) {
+ if (StringUtils.isEmpty(uebSecret)) {
+ this.uebSecret = "";
+ }
+ this.uebSecret = uebSecret;
+ }
+
+ public void setCentralAuth(Boolean centralAuth) {
+ if (centralAuth == null) {
+ centralAuth = Boolean.FALSE;
+ }
+ this.centralAuth = centralAuth;
+ }
+
+ public void setNameSpace(String nameSpace) {
+ if (StringUtils.isEmpty(nameSpace)) {
+ nameSpace = null;
+ }
+ this.nameSpace = nameSpace;
+ }
+
+ @Override
+ public String toString() {
+ return "[" + getId() + ":" + getName() + "]";
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPAppRoleFunction extends DomainVo implements java.io.Serializable{
+
+ private static final long serialVersionUID = 7752385247460299630L;
+
+ private Long roleId;
+ private Long appId;
+ private String code;
+ private String roleAppId;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPEndpoint extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+ private String name;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPEndpointAccount extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+ private Long ep_id;
+ private Long account_id;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import javax.validation.Valid;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hibernate.validator.constraints.SafeHtml;
+import org.onap.portalsdk.core.domain.RoleFunction;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPRole extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+ @SafeHtml
+ private String name;
+ private boolean active;
+ private Integer priority;
+ private Long appId; // used by ONAP only
+ private Long appRoleId; // used by ONAP only
+ private SortedSet<RoleFunction> roleFunctions = new TreeSet<>();
+ @Valid
+ private SortedSet<EPRole> childRoles = new TreeSet<>();
+ @JsonIgnore
+ private SortedSet<EPRole> parentRoles = new TreeSet<>();
+
+
+ public void addRoleFunction(RoleFunction roleFunction) {
+ this.roleFunctions.add(roleFunction);
+ }
+
+ public void addChildRole(EPRole role) {
+ this.childRoles.add(role);
+ }
+
+ public void addParentRole(EPRole role) {
+ this.parentRoles.add(role);
+ }
+
+ public String getEditUrl() {
+ return "/role.htm?role_id=" + getId();
+ }
+
+ public String getToggleActiveImage() {
+ return "/static/fusion/images/" + (isActive() ? "active.png" : "inactive.png");
+ }
+
+ public String getToggleActiveAltText() {
+ return isActive() ? "Click to Deactivate Role" : "Click to Activate Role";
+ }
+
+ public void removeChildRole(Long roleId) {
+
+ for (EPRole childRole : this.childRoles) {
+ if (childRole.getId().equals(roleId)) {
+ this.childRoles.remove(childRole);
+ break;
+ }
+ }
+ }
+
+ public void removeParentRole(Long roleId) {
+
+ for (EPRole parentRole : this.parentRoles) {
+ if (parentRole.getId().equals(roleId)) {
+ this.parentRoles.remove(parentRole);
+ break;
+ }
+ }
+ }
+
+ public void removeRoleFunction(String roleFunctionCd) {
+
+ for (RoleFunction roleFunction : this.roleFunctions) {
+ if (roleFunction.getCode().equals(roleFunctionCd)) {
+ this.roleFunctions.remove(roleFunction);
+ break;
+ }
+ }
+ }
+
+ public int compareTo(Object obj) {
+ EPRole other = (EPRole) obj;
+
+ if (this.appId == null) {
+ if (other.getAppId() == null) {
+ return compareByName(other); //equal
+ } else {
+ return -1;
+ }
+ } else if (other.getAppId() == null) {
+ return 1;
+ } else {
+ int appIdCompareResult = appId.compareTo(other.getAppId());
+ return appIdCompareResult == 0 ? compareByName(other) : appIdCompareResult;
+ }
+ }
+
+ private int compareByName(EPRole other) {
+ String c1 = getName();
+ String c2 = other.getName();
+
+ return (c1 == null || c2 == null) ? 1 : c1.compareTo(c2);
+ }
+
+ @Override
+ public String toString() {
+ return "[Id = " + id + ", name = " + name + "]";
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import java.util.Date;
+import java.util.Iterator;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import javax.validation.Valid;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.SafeHtml;
+import org.onap.portalsdk.core.domain.User;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+
+@Getter
+@Setter
+@Builder
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPUser extends User {
+
+ private Long orgId;
+ private Long managerId;
+ @SafeHtml
+ private String firstName;
+ @SafeHtml
+ private String middleInitial;
+ @SafeHtml
+ private String lastName;
+ @SafeHtml
+ private String phone;
+ @SafeHtml
+ private String fax;
+ @SafeHtml
+ private String cellular;
+ @SafeHtml
+ private String email;
+ private Long addressId;
+ @SafeHtml
+ private String alertMethodCd;
+ @SafeHtml
+ private String hrid;
+ @SafeHtml
+ private String orgUserId;
+ @SafeHtml
+ private String orgCode;
+ @SafeHtml
+ private String address1;
+ @SafeHtml
+ private String address2;
+ @SafeHtml
+ private String city;
+ @SafeHtml
+ private String state;
+ @SafeHtml
+ private String zipCode;
+ @SafeHtml
+ private String country;
+ @SafeHtml
+ private String orgManagerUserId;
+ @SafeHtml
+ private String locationClli;
+ @SafeHtml
+ private String businessCountryCode;
+ @SafeHtml
+ private String businessCountryName;
+ @SafeHtml
+ private String businessUnit;
+ @SafeHtml
+ private String businessUnitName;
+ @SafeHtml
+ private String department;
+ @SafeHtml
+ private String departmentName;
+ @SafeHtml
+ private String companyCode;
+ @SafeHtml
+ private String company;
+ @SafeHtml
+ private String zipCodeSuffix;
+ @SafeHtml
+ private String jobTitle;
+ @SafeHtml
+ private String commandChain;
+ @SafeHtml
+ private String siloStatus;
+ @SafeHtml
+ private String costCenter;
+ @SafeHtml
+ private String financialLocCode;
+ @SafeHtml
+ private String loginId;
+ @SafeHtml
+ private String loginPwd;
+ private Date lastLoginDate;
+ private boolean active;
+ private boolean internal;
+ private Long selectedProfileId;
+ private Long timeZoneId;
+ private boolean online;
+ @SafeHtml
+ private String chatId;
+ private boolean systemUser;
+ private Integer languageId;
+ private static final long serialVersionUID = 1L;
+ private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUser.class);
+ private static final String ECOMP_PORTAL_NAME = "ECOMP";
+ private boolean isGuest = false;
+ @Valid
+ private SortedSet<EPUserApp> userApps = new TreeSet<>();
+ @Valid
+ private SortedSet<EPRole> pseudoRoles = new TreeSet<>();
+
+ @JsonIgnore
+ public String getFullName() {
+ return getFirstName() + " " + getLastName();
+ }
+
+ public int compareTo(Object obj) {
+ EPUser user = (EPUser) obj;
+
+ String c1 = getLastName() + getFirstName() + getMiddleInitial();
+ String c2 = user.getLastName() + user.getFirstName() + user.getMiddleInitial();
+
+ return c1.compareTo(c2);
+ }
+
+
+ public void addAppRoles(EPApp app, SortedSet<EPRole> roles) {
+ if (roles != null) {
+ // add all
+ SortedSet<EPUserApp> userApps = new TreeSet<>();
+ // this.userApps.removeAll(this.userApps);
+ for (EPRole role : roles) {
+ EPUserApp userApp = new EPUserApp();
+ userApp.setUserId(this.id);
+ userApp.setApp(app);
+ userApp.setRole(role);
+ userApps.add(userApp);
+ }
+ setUserApps(userApps);
+ } else {
+ setUserApps(null);
+ }
+
+ }
+
+ public SortedSet<EPRole> getAppEPRoles(EPApp app) {
+
+ logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - app = {}", app.getName());
+
+ SortedSet<EPRole> roles = new TreeSet<>();
+ SortedSet<EPUserApp> userAppRoles = getUserApps();
+
+ logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - userApps = {} ",
+ userAppRoles.size());
+
+ Iterator<EPUserApp> userAppRolesIterator = userAppRoles.iterator();
+
+ EPUserApp userAppRole;
+ // getting default app
+ while (userAppRolesIterator.hasNext()) {
+ EPUserApp tempUserApp = userAppRolesIterator.next();
+ if (tempUserApp.getApp().getId().equals(app.getId())) {
+
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "In EPUser.getAppEPRoles() - for user {}, found application {}", this.getFullName(),
+ app.getName());
+
+ userAppRole = tempUserApp;
+
+ EPRole role = userAppRole.getRole();
+ if (role.isActive()) {
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "In EPUser.getAppEPRoles() - Role {} is active - adding for user {} and app {}",
+ role.getName(), this.getFullName(), app.getName());
+ roles.add(role);
+ } else {
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "In EPUser.getAppEPRoles() - Role {} is NOT active - NOT adding for user {} and app {}",
+ role.getName(), this.getFullName(), app.getName());
+ }
+ }
+ }
+ logger.debug(EELFLoggerDelegate.debugLogger, "In EPUser.getAppEPRoles() - roles = {}", roles.size());
+
+ return roles;
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import javax.validation.Valid;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPUserApp extends DomainVo implements java.io.Serializable, Comparable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long userId;
+ @Valid
+ private EPApp app;
+ @Valid
+ private EPRole role;
+
+ private Integer priority;
+
+ public EPUserApp(final Long userId, final EPApp app, final EPRole role) {
+ this.userId = userId;
+ this.app = app;
+ this.role = role;
+ }
+
+ public Long getAppId() {
+ return this.getApp().getId();
+ }
+
+ public Long getRoleId() {
+ return (role == null) ? null : role.getId();
+ }
+
+ public Long getAppRoleId() {
+ return this.role.getAppRoleId();
+ }
+
+ @Override
+ public String toString() {
+ return "[u: "+getUserId()+"; a: "+getAppId()+", r: "+getRoleId()+"; appRoleId: "+getAppRoleId()+"]";
+ }
+
+ public Integer getPriority() {
+ return (this.priority == null) ? 1 : priority;
+ }
+
+
+ @Override
+ public boolean equals(Object other) {
+ if ((this == other))
+ return true;
+ if ((other == null))
+ return false;
+ if (!(other instanceof EPUserApp))
+ return false;
+ EPUserApp castOther = (EPUserApp) other;
+
+ return (otherUserIdIsSameAsThisUserId(castOther))
+ && (otherAppIdIsSameAsThis(castOther))
+ && (otherRoleIsSameAsThis(castOther))
+ && (otherPriorityIsSameAsThis(castOther));
+ }
+
+ public int hashCode() {
+ int result = 17;
+
+ result = 37 * result + (this.getUserId()==null ? 0 : this.getUserId().intValue());
+ result = 37 * result + (this.getApp().getId()==null ? 0 : this.getApp().getId().intValue());
+ result = 37 * result + (this.getRole().getId()==null ? 0 : this.getRole().getId().intValue());
+ result = 37 * result + (this.priority==null ? 0 : this.priority);
+ return result;
+ }
+
+ public int compareTo(Object other){
+ EPUserApp castOther = (EPUserApp) other;
+
+ Long c1 = (this.getUserId()==null ? 0 : this.getUserId()) + (this.getApp()==null||this.getApp().getId()==null ? 0 : this.getApp().getId()) + (this.getRole()==null||this.getRole().getId()==null ? 0 : this.getRole().getId()) + (this.priority==null ? 0 : this.priority);
+ Long c2 = (castOther.getUserId()==null ? 0 : castOther.getUserId()) + (castOther.getApp()==null||castOther.getApp().getId()==null ? 0 : castOther.getApp().getId()) + (castOther.getRole()==null||castOther.getRole().getId()==null ? 0 : castOther.getRole().getId()) + (castOther.priority==null ? 0 : castOther.priority);
+
+ return c1.compareTo(c2);
+ }
+ private boolean otherPriorityIsSameAsThis(EPUserApp other){
+ return (this.priority==null && other.getPriority()==null) || this.getPriority().equals(other.getPriority());
+ }
+
+ private boolean otherRoleIsSameAsThis(EPUserApp other){
+ return this.getRole().getId().equals(other.getRole().getId());
+ }
+
+ private boolean otherAppIdIsSameAsThis(EPUserApp other){
+ return this.getApp().getId().equals(other.getApp().getId());
+ }
+
+ private boolean otherUserIdIsSameAsThisUserId(EPUserApp other){
+ return this.getUserId().equals(other.getUserId());
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude
+public class EPUserAppCatalogRoles extends DomainVo {
+
+ private static final long serialVersionUID = -5259869298825093816L;
+
+ private Long requestedRoleId;
+ private String rolename;
+ private String requestStatus;
+ private Long appId;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class EPUserAppRoles extends DomainVo {
+
+ private static final long serialVersionUID = -1484592641766545668L;
+
+ private Long roleId;
+ private Long appId;
+
+}
+
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.util.Date;
+import java.util.Set;
+import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@EqualsAndHashCode(callSuper = false)
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPUserAppRolesRequest extends DomainVo {
+
+ private static final long serialVersionUID = -7225288307806389019L;
+
+ private Long userId;
+ private Long appId;
+ private Date createdDate;
+ private Date updatedDate;
+ private String requestStatus;
+ private Set<EPUserAppRolesRequestDetail> epRequestIdDetail;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPUserAppRolesRequestDetail extends DomainVo {
+
+ private static final long serialVersionUID = -4908856671135348157L;
+
+ private Long reqRoleId;
+ private String reqType;
+ private EPUserAppRolesRequest epRequestIdData;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPUserAppsManualSortPreference extends DomainVo {
+
+ private static final long serialVersionUID = -6270136291139278216L;
+ private Long userId;
+ private Long appId;
+ private int appManualSortOrder;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPUserAppsSortPreference extends DomainVo{
+
+ private static final long serialVersionUID = -5267000174894006433L;
+
+ private int userId;
+ private String sortPref;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.util.Date;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPUserNotification extends DomainVo {
+
+ private Long userId;
+ private Long notificationId;
+ private String viewed;
+ private Date updateTime;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EPWidgetsManualSortPreference extends DomainVo {
+
+ private static final long serialVersionUID = 4607102334801223570L;
+
+ private Long userId;
+ private Long widgetId;
+ private int widgetRow;
+ private int widgetCol;
+ private int widgetWidth;
+ private int widgetHeight;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class EcompApp {
+
+ protected Long id;
+ private String name;
+ private String imageUrl;
+ private String description;
+ private String notes;
+ private String url;
+ private String alternateUrl;
+ private String uebTopicName;
+ private String uebKey;
+ private String uebSecret;
+ private Boolean enabled;
+ private Boolean restrictedApp;
+ private Boolean centralAuth;
+ private String nameSpace;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import javax.persistence.IdClass;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@IdClass(EcompAppRoleId.class)
+public class EcompAppRole {
+
+ private Long appId;
+ private String appName;
+ private Integer roleId;
+ private String roleName;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class EcompAppRoleId implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+
+ private Long appId;
+ private String appName;
+ private Integer roleId;
+ private String roleName;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.util.Date;
+import org.onap.portalsdk.core.domain.AuditLog;
+
+public class EcompAuditLog extends AuditLog {
+
+ private static final long serialVersionUID = 7970458389782626231L;
+
+ public static final String CD_ACTIVITY_ADD_CHILD_ROLE = "add_child_role";
+ public static final String CD_ACTIVITY_ADD_ROLE = "add_role";
+ public static final String CD_ACTIVITY_ADD_ROLE_FUNCTION = "add_role_function";
+ public static final String CD_ACTIVITY_ADD_USER_ROLE = "add_user_role";
+ public static final String CD_ACTIVITY_APP_ACCESS = "app_access";
+ public static final String CD_ACTIVITY_FUNCTIONAL_ACCESS = "functional_access";
+ public static final String CD_ACTIVITY_GUEST_LOGIN = "guest_login";
+ public static final String CD_ACTIVITY_LOGIN = "login";
+ public static final String CD_ACTIVITY_LOGOUT = "logout";
+ public static final String CD_ACTIVITY_MOBILE_LOGIN = "mobile_login";
+ public static final String CD_ACTIVITY_MOBILE_LOGOUT = "mobile_logout";
+ public static final String CD_ACTIVITY_REMOVE_CHILD_ROLE = "remove_child_role";
+ public static final String CD_ACTIVITY_REMOVE_ROLE = "remove_role";
+ public static final String CD_ACTIVITY_REMOVE_ROLE_FUNCTION = "remove_role_function";
+ public static final String CD_ACTIVITY_REMOVE_USER_ROLE = "remove_user_role";
+ public static final String CD_ACTIVITY_TAB_ACCESS = "tab_access";
+ public static final String CD_ACTIVITY_SEARCH = "search";
+ public static final String CD_ACTIVITY_ADD_PORTAL_ADMIN = "apa ";
+ public static final String CD_ACTIVITY_DELETE_PORTAL_ADMIN = "dpa";
+ public static final String CD_ACTIVITY_UPDATE_USER = "uu ";
+ public static final String CD_ACTIVITY_UPDATE_ACCOUNT_ADMIN = "uaa ";
+ public static final String CD_ACTIVITY_STORE_ANALYTICS = "store_analytics";
+ public static final String CD_ACTIVITY_EXTERNAL_AUTH_ADD_ROLE = "eaar";
+ public static final String CD_ACTIVITY_EXTERNAL_AUTH_ADD_FUNCTION = "eaaf";
+ public static final String CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_FUNCTION = "eauf";
+ public static final String CD_ACTIVITY_EXTERNAL_AUTH_UPDATE_ROLE_AND_FUNCTION = "eaurf";
+ public static final String CD_ACTIVITY_EXTERNAL_AUTH_DELETE_ROLE = "eadr";
+ public static final String CD_ACTIVITY_EXTERNAL_AUTH_DELETE_FUNCTION = "eadf";
+
+ public EcompAuditLog() {
+ setCreated(new Date());
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@EqualsAndHashCode
+@NoArgsConstructor
+@AllArgsConstructor
+public class ExternalRoleDetails implements Comparable {
+
+ private String name;
+ private boolean active;
+ private Integer priority;
+ private Long appId; // used by ONAP only
+ private Long appRoleId; // used by ONAP only
+ private List<EPAppRoleFunction> perms;
+
+ @Override
+ public int compareTo(Object obj) {
+ EPRole other = (EPRole) obj;
+ return (this.getName() == null || other.getName() == null) ? 1 : getName().equals(other.getName()) ? 0 : 1;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class ExternalSystemAccess {
+
+ private String key;
+ private Boolean accessValue;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.util.List;
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.Max;
+import javax.validation.constraints.NotNull;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.SafeHtml;
+
+
+@Getter
+@Setter
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class FunctionalMenuItemWithAppID {
+
+ private static final long serialVersionUID = 1L;
+
+ @Digits(integer = 11, fraction = 0)
+ private Long menuId;
+ @Digits(integer = 2, fraction = 0)
+ @NotNull
+ private Integer column;
+ @Max(value = 100)
+ @SafeHtml
+ @NotNull
+ private String text;
+ @Digits(integer = 11, fraction = 0)
+ private Integer parentMenuId;
+ @Max(value = 128)
+ @SafeHtml
+ @NotNull
+ private String url;
+ @Max(value = 1)
+ @SafeHtml
+ @NotNull
+ private String active_yn;
+ private Integer appid;
+ private List<Integer> roles;
+ private Boolean restrictedApp;
+
+ public void normalize() {
+ if (this.column == null) {
+ this.column = 1;
+ }
+ this.text = (this.text == null) ? "" : this.text.trim();
+ if (this.parentMenuId == null) {
+ this.parentMenuId = -1;
+ }
+ this.url = (this.url == null) ? "" : this.url.trim();
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude
+public class GetAccessResult implements Serializable{
+
+
+ private static final long serialVersionUID = 5239527705869613411L;
+
+ private String rowId;
+ private Long roleId;
+ private String ecompFunction;
+ private String appName;
+ private Integer appMotsId;
+ private String roleName;
+ private String roleActive;
+ private String reqType;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class GetAccessResultId implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+
+ private String ecompFunction;
+ private String appName;
+ private String roleName;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.Data;
+
+@Data
+public class Language {
+
+ private String languageId;
+ private String languageName;
+ private String languageAlias;
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.util.List;
+import javax.validation.Valid;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.SafeHtml;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class MicroserviceData extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+ @SafeHtml
+ private String name;
+ @SafeHtml
+ private String active;
+ @SafeHtml
+ private String desc;
+ private long appId;
+ @SafeHtml
+ private String url;
+ @SafeHtml
+ private String securityType;
+ @SafeHtml
+ private String username;
+ @SafeHtml
+ private String password;
+ @Valid
+ private List<MicroserviceParameter> parameterList;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+import org.hibernate.validator.constraints.SafeHtml;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class MicroserviceParameter extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+ private long serviceId;
+ @SafeHtml
+ private String para_key;
+ @SafeHtml
+ private String para_value;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class PersUserAppSelection extends DomainVo {
+
+ private static final long serialVersionUID = 1545308654500121206L;
+
+ private Long userId;
+ private Long appId;
+ private String statusCode;
+
+ public PersUserAppSelection(final Long id, final Long userId, final Long appId, final String statusCode) {
+ super.id = id;
+ this.userId = userId;
+ this.appId = appId;
+ this.statusCode = statusCode;
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class PersUserWidgetSelection extends DomainVo {
+
+ private static final long serialVersionUID = -6547880514779039200L;
+
+ private Long userId;
+ private Long widgetId;
+ private String statusCode;
+
+ public PersUserWidgetSelection(final Long id, final Long userId, final Long widgetId, final String statusCode) {
+ super.id = id;
+ this.userId = userId;
+ this.widgetId = widgetId;
+ this.statusCode = statusCode;
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class PortalRestResponse<T> {
+
+ private PortalRestStatusEnum status;
+ private String message;
+ private T response;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+public enum PortalRestStatusEnum{
+ OK("ok"),
+ WARN("WARNING"),
+ ERROR("error");
+
+ private String value;
+ PortalRestStatusEnum(String value){
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return value;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import java.util.Set;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class RoleApp implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long roleId;
+ private String roleName;
+ private App app;
+ private Set<WidgetCatalog> widgets;
+
+ @Override
+ public String toString() {
+ return "Role [roleId=" + roleId + ", roleName=" + roleName + ", app=" + app + "]";
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@JsonInclude(JsonInclude.Include.NON_NULL)
+public class SearchResultItem extends DomainVo{
+
+ private String rowId;
+ @JsonProperty("category")
+ private String category;
+ @JsonProperty("name")
+ private String name;
+ @JsonProperty("target")
+ private String target;
+ @JsonProperty("uuid")
+ private String uuid;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.util.Date;
+import javax.validation.constraints.Digits;
+import javax.validation.constraints.NotNull;
+import javax.validation.constraints.Size;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hibernate.validator.constraints.SafeHtml;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class SharedContext extends DomainVo {
+
+ private static final long serialVersionUID = 7287469622586677888L;
+
+ @Digits(integer = 11, fraction = 0)
+ private Long id;
+ @NotNull
+ private Date create_time;
+ @NotNull
+ @SafeHtml
+ @Size(max = 64)
+ private String context_id;
+ @NotNull
+ @SafeHtml
+ @Size(max = 128)
+ private String ckey;
+ @NotNull
+ @SafeHtml
+ @Size(max = 1024)
+ private String cvalue;
+
+ public SharedContext(final String contextId, final String key, final String value) {
+ this.context_id = contextId;
+ this.ckey = key;
+ this.cvalue = value;
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+@NoArgsConstructor
+@AllArgsConstructor
+public class UploadRoleFunctionExtSystem implements Serializable {
+
+ private static final long serialVersionUID = -5543202387278296091L;
+
+ private String roleName;
+ private String type;
+ private String instance;
+ private String action;
+ private String name;
+ private boolean isGlobalRolePartnerFunc;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserIdRoleId implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+
+ private String user_Id;
+ private String roleId;
+ private String orgUserId;
+ private String appId;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserRole implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private Long user_Id;
+ private Long roleId;
+ private String orgUserId;
+ private String firstName;
+ private String lastName;
+ private String roleName;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class UserRoles implements Serializable {
+
+ private static final long serialVersionUID = 1L;
+
+ private String orgUserId;
+ private String firstName;
+ private String lastName;
+ private boolean guestSession;
+ private List<String> roles = new ArrayList<>();
+
+ public UserRoles(UserRole user) {
+ setOrgUserId(user.getOrgUserId());
+ setFirstName(user.getFirstName());
+ setLastName(user.getLastName());
+ setGuestSession(user.getUser_Id() == -1);
+
+ addRole(user.getRoleName());
+ }
+
+ private void addRole(String roleName) {
+ if (!getRoles().contains(roleName)) {
+ this.roles.add(roleName);
+ }
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.lang.StringUtils;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@AllArgsConstructor
+public class Widget extends DomainVo {
+
+ private static final long serialVersionUID = 1L;
+
+ private String name;
+ private Integer width;
+ private Integer height;
+ private String url;
+ private Long appId;
+
+ public Widget() {
+ this.name = "";
+ this.width = 0;
+ this.height = 0;
+ this.url = "";
+ }
+
+ public Widget(Long appId, String name, String url) {
+ this.name = name;
+ this.url = url;
+ this.appId = appId;
+ }
+
+ public void setName(String name) {
+ if (StringUtils.isEmpty(name)) {
+ name = "";
+ }
+ this.name = name;
+ }
+
+ public void setWidth(Integer width) {
+ if (width == null) {
+ width = 0;
+ }
+ this.width = width;
+ }
+
+ public void setHeight(Integer height) {
+ if (height == null) {
+ height = 0;
+ }
+ this.height = height;
+ }
+
+ public void setUrl(String url) {
+ if (StringUtils.isEmpty(url)) {
+ url = "";
+ }
+ this.url = url;
+ }
+
+}
--- /dev/null
+/*-
+ * ============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============================================
+ *
+ *
+ */
+package org.onap.portal.domain.dto.ecomp;
+
+import java.io.Serializable;
+import java.util.Set;
+
+public class WidgetCatalog implements Serializable{
+
+ private static final long serialVersionUID = 1L;
+
+ private long id;
+
+ private String name;
+
+ private String desc;
+
+ private String fileLocation;
+
+ private String allowAllUser;
+
+ private Long serviceId;
+
+ private String sortOrder;
+
+ private String statusCode;
+
+ private Set<RoleApp> widgetRoles;
+
+ public long getId() {
+ return id;
+ }
+ public void setId(long id) {
+ this.id = id;
+ }
+ public String getName() {
+ return name;
+ }
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Long getServiceId() {
+ return serviceId;
+ }
+ public void setServiceId(Long serviceId) {
+ this.serviceId = serviceId;
+ }
+ public String getDesc() {
+ return desc;
+ }
+ public void setDesc(String desc) {
+ this.desc = desc;
+ }
+ public String getFileLocation() {
+ return fileLocation;
+ }
+ public void setFileLocation(String fileLocation) {
+ this.fileLocation = fileLocation;
+ }
+
+ public String getAllowAllUser() {
+ return allowAllUser;
+ }
+ public void setAllowAllUser(String allowAllUser) {
+ this.allowAllUser = allowAllUser;
+ }
+ public Set<RoleApp> getWidgetRoles() {
+ return widgetRoles;
+ }
+ public void setWidgetRoles(Set<RoleApp> widgetRoles) {
+ this.widgetRoles = widgetRoles;
+ }
+
+ public String getSortOrder() {
+ return sortOrder;
+ }
+ public void setSortOrder(String sortOrder) {
+ this.sortOrder = sortOrder;
+ }
+ public String getStatusCode() {
+ return statusCode;
+ }
+ public void setStatusCode(String statusCode) {
+ this.statusCode = statusCode;
+ }
+ @Override
+ public String toString() {
+ return "WidgetCatalog [id=" + id + ", name=" + name + ", desc=" + desc + ", fileLocation=" + fileLocation
+ + ", allowAllUser=" + allowAllUser + "]";
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.onap.portal.domain.dto.DomainVo;
+
+@Getter
+@Setter
+@AllArgsConstructor
+@NoArgsConstructor
+public class WidgetCatalogParameter extends DomainVo{
+
+ private static final long serialVersionUID = 1L;
+
+ private Long id;
+ private Long widgetId;
+ private Long userId;
+ private Long paramId;
+ private String userValue;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+public class WidgetParameterResult {
+
+ private Long paramId;
+ private String paramKey;
+ private String userValue;
+ private String defaultValue;
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.domain.dto.ecomp;
+
+import java.nio.charset.Charset;
+import lombok.Getter;
+import lombok.Setter;
+import org.apache.commons.codec.binary.Base64;
+import org.onap.portal.utils.EcompPortalUtils;
+import org.onap.portalsdk.core.onboarding.util.CipherUtil;
+import org.springframework.http.HttpHeaders;
+
+@Getter
+@Setter
+public class WidgetServiceHeaders {
+
+ private WidgetServiceHeaders(){}
+
+ private static HttpHeaders widgetHeaders;
+
+ public static HttpHeaders getInstance() throws Exception{
+ if(null == widgetHeaders){
+ return new HttpHeaders(){{
+
+ String username = EcompPortalUtils
+ .getPropertyOrDefault("microservices.widget.username", "widget_user");
+ String password = CipherUtil.decryptPKC(EcompPortalUtils.getPropertyOrDefault("microservices.widget.password", "widget_password"));
+ String auth = username + ":" + password;
+ byte[] encodedAuth = Base64.encodeBase64(
+ auth.getBytes(Charset.forName("US-ASCII")) );
+ String authHeader = "Basic " + new String( encodedAuth );
+ set( "Authorization", authHeader );
+ }
+ };
+ }
+ else
+ return widgetHeaders;
+
+ }
+}
import java.time.LocalDateTime;
import lombok.AllArgsConstructor;
+import lombok.Builder;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Setter
@Getter
-
+@Builder
@NoArgsConstructor
@AllArgsConstructor
public class FnUserDto {
private String loginId;
private String loginPwd;
protected LocalDateTime lastLoginDate;
- private String activeYn;
+ private Boolean activeYn;
private Long createdId;
protected LocalDateTime createdDate;
private Long modifiedId;
protected LocalDateTime modifiedDate;
- private String isInternalYn = "n";
+ private Boolean isInternalYn = false;
private String addressLine1;
private String addressLine2;
private String city;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import org.onap.portalsdk.core.domain.support.DomainVo;
+import org.onap.portal.domain.dto.DomainVo;
@Getter
@Setter
-@EqualsAndHashCode()
+@EqualsAndHashCode
@NoArgsConstructor
@AllArgsConstructor
public class CentralV2RoleFunction extends DomainVo implements Serializable, Comparable {
private CentralV2Role role;
private Integer priority;
- public int compareTo(Object other) {
- CentralV2UserApp castOther = (CentralV2UserApp) other;
-
- Long c1 = (this.getUserId() == null ? 0 : this.getUserId()) + (this.priority == null ? 0 : this.priority);
- Long c2 = (castOther.getUserId() == null ? 0 : castOther.getUserId());
- c2 += (castOther.getApp() == null || castOther.getApp().getId() == null ? 0 : castOther.getApp().getId());
- c2 += (castOther.priority == null ? 0 : castOther.priority);
+ public int compareTo(Object other){
+ CentralV2UserApp castOther = (CentralV2UserApp) other;
+ Long c1 = (this.getUserId() == null ? 0 : this.getUserId()) + (this.priority == null ? 0 : this.priority);
+ Long c2 = (castOther.getUserId() == null ? 0 : castOther.getUserId());
+ c2 += (castOther.getApp() == null || castOther.getApp().getId() == null ? 0 : castOther.getApp().getId());
+ c2 += (castOther.priority == null ? 0 : castOther.priority);
return c1.compareTo(c2);
}
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.SafeHtml;
-import org.onap.portalsdk.core.domain.support.DomainVo;
+import org.onap.portal.domain.dto.DomainVo;
@Getter
@NoArgsConstructor
@AllArgsConstructor
@JsonInclude(JsonInclude.Include.NON_NULL)
-public class CommonWidget extends DomainVo{
+public class CommonWidget extends DomainVo {
private static final long serialVersionUID = 7897021982887364557L;
import lombok.Setter;
import lombok.ToString;
import org.hibernate.validator.constraints.SafeHtml;
-import org.onap.portalsdk.core.domain.support.DomainVo;
+import org.onap.portal.domain.dto.DomainVo;
@Getter
@Setter
@Builder
@ToString
-@EqualsAndHashCode()
+@EqualsAndHashCode(callSuper = false)
@NoArgsConstructor
@AllArgsConstructor
public class EpNotificationItem extends DomainVo {
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import org.onap.portalsdk.core.domain.support.DomainVo;
+import org.onap.portal.domain.dto.DomainVo;
@Getter
@Setter
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
-import org.onap.portalsdk.core.domain.support.DomainVo;
+import org.onap.portal.domain.dto.DomainVo;
@Getter
@Setter
return false;
}
if (type == null) {
- if (other.type != null) {
- return false;
- }
- } else if (!type.equals(other.type)) {
- return false;
- }
- return true;
+ return other.type == null;
+ } else
+ return type.equals(other.type);
}
}
private Long errorCode;
private List<FieldName> fields = new ArrayList<>();
+ public void addProblematicFieldName(String fieldName){
+ fields.add(new FieldName(fieldName));
+ }
+
@Getter
@Setter
@ToString
public class FieldName {
public String name;
}
-
}
package org.onap.portal.domain.dto.transport;
import java.io.Serializable;
-import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
@Getter
@Setter
@NoArgsConstructor
-@AllArgsConstructor
public class OnboardingWidget implements Serializable {
- private static final long serialVersionUID = 1L;
+ private static final long serialVersionUID = 1L;
- private Long id;
- @SafeHtml
- private String name;
- private Long appId;
- @SafeHtml
- private String appName;
- private Integer width;
- private Integer height;
- @SafeHtml
- private String url;
+ private Long id;
+ @SafeHtml
+ private String name;
+ private Long appId;
+ @SafeHtml
+ private String appName;
+ private Integer width;
+ private Integer height;
+ @SafeHtml
+ private String url;
- public void normalize() {
- this.name = (this.name == null) ? "" : this.name.trim();
- this.appName = (this.appName == null) ? "" : this.appName.trim();
- if (this.width == null)
- this.width = 0;
- if (this.height == null)
- this.height = 0;
- this.url = (this.url == null) ? "" : this.url.trim();
- }
+ public OnboardingWidget(Long id, String name, Long appId,
+ String appName, Integer width, Integer height,
+ String url) {
+ this.id = id;
+ this.name = name;
+ this.appId = appId;
+ this.appName = appName;
+ this.width = width;
+ this.height = height;
+ this.url = url;
+ }
+
+ public void normalize() {
+ this.name = (this.name == null) ? "" : this.name.trim();
+ this.appName = (this.appName == null) ? "" : this.appName.trim();
+ if (this.width == null) {
+ this.width = 0;
+ }
+ if (this.height == null) {
+ this.height = 0;
+ }
+ this.url = (this.url == null) ? "" : this.url.trim();
+ }
}
package org.onap.portal.domain.mapper;
import lombok.NoArgsConstructor;
-import org.onap.portal.domain.builder.FnUserBuilder;
-import org.onap.portal.domain.builder.FnUserDtoBuilder;
import org.onap.portal.domain.db.fn.FnUser;
import org.onap.portal.domain.dto.fn.FnUserDto;
-import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
@NoArgsConstructor
public class FnUserMapper {
+ public FnUserDto fnUserToFnUserDto(final FnUser fnUser){
+ return FnUserDto.builder()
+ .userId(fnUser.getUserId())
+ .orgId(fnUser.getOrgId().getOrgId())
+ .managerId(fnUser.getManagerId().getUserId())
+ .firstName(fnUser.getFirstName())
+ .middleName(fnUser.getMiddleName())
+ .lastName(fnUser.getLastName())
+ .phone(fnUser.getPhone())
+ .fax(fnUser.getFax())
+ .cellular(fnUser.getCellular())
+ .email(fnUser.getEmail())
+ .addressId(fnUser.getAddressId())
+ .alertMethodCd(fnUser.getAlertMethodCd().getAlertMethodCd())
+ .hrid(fnUser.getHrid())
+ .orgUserId(fnUser.getOrgUserId())
+ .org_code(fnUser.getOrg_code())
+ .loginId(fnUser.getLoginId())
+ .loginPwd(fnUser.getLoginPwd())
+ .lastLoginDate(fnUser.getLastLoginDate())
+ .activeYn(fnUser.getActiveYn())
+ .createdId(fnUser.getCreatedId().getUserId())
+ .createdDate(fnUser.getCreatedDate())
+ .modifiedId(fnUser.getModifiedId().getUserId())
+ .modifiedDate(fnUser.getModifiedDate())
+ .isInternalYn(fnUser.getIsInternalYn())
+ .addressLine1(fnUser.getAddressLine1())
+ .addressLine2(fnUser.getAddressLine2())
+ .city(fnUser.getCity())
+ .stateCd(fnUser.getStateCd())
+ .zipCode(fnUser.getZipCode())
+ .countryCd(fnUser.getCountryCd())
+ .locationClli(fnUser.getLocationClli())
+ .orgManagerUserId(fnUser.getOrgManagerUserId())
+ .company(fnUser.getCompany())
+ .departmentName(fnUser.getDepartmentName())
+ .jobTitle(fnUser.getJobTitle())
+ .timezone(fnUser.getTimezone().getTimezoneId())
+ .department(fnUser.getDepartment())
+ .businessUnit(fnUser.getBusinessUnit())
+ .businessUnitName(fnUser.getBusinessUnitName())
+ .cost_center(fnUser.getCost_center())
+ .finLocCode(fnUser.getFinLocCode())
+ .siloStatus(fnUser.getSiloStatus())
+ .languageId(fnUser.getLanguageId().getLanguageId())
+ .guest(fnUser.getGuest())
+ .build();
- private FnUserDtoBuilder fnUserDtoBuilder;
- private FnUserBuilder fnUserBuilder;
-
- @Autowired
- public FnUserMapper(final FnUserDtoBuilder fnUserDtoBuilder,
- FnUserBuilder fnUserBuilder) {
- this.fnUserDtoBuilder = fnUserDtoBuilder;
- this.fnUserBuilder = fnUserBuilder;
- }
-
- public FnUserDto fnUserToFnUserDto(final FnUser fnUser){
- return fnUserDtoBuilder
- .setUserId(fnUser.getUserId())
- .setOrgId(fnUser.getOrgId().getOrgId())
- .setManagerId(fnUser.getManagerId().getUserId())
- .setFirstName(fnUser.getFirstName())
- .setMiddleName(fnUser.getMiddleName())
- .setLastName(fnUser.getLastName())
- .setPhone(fnUser.getPhone())
- .setFax(fnUser.getFax())
- .setCellular(fnUser.getCellular())
- .setEmail(fnUser.getEmail())
- .setAddressId(fnUser.getAddressId())
- .setAlertMethodCd(fnUser.getAlertMethodCd().getAlertMethodCd())
- .setHrid(fnUser.getHrid())
- .setOrgUserId(fnUser.getOrgUserId())
- .setOrg_code(fnUser.getOrg_code())
- .setLoginId(fnUser.getLoginId())
- .setLoginPwd(fnUser.getLoginPwd())
- .setLastLoginDate(fnUser.getLastLoginDate())
- .setActiveYn(fnUser.getActiveYn())
- .setCreatedId(fnUser.getCreatedId().getUserId())
- .setCreatedDate(fnUser.getCreatedDate())
- .setModifiedId(fnUser.getModifiedId().getUserId())
- .setModifiedDate(fnUser.getModifiedDate())
- .setIsInternalYn(fnUser.getIsInternalYn())
- .setAddressLine1(fnUser.getAddressLine1())
- .setAddressLine2(fnUser.getAddressLine2())
- .setCity(fnUser.getCity())
- .setStateCd(fnUser.getStateCd())
- .setZipCode(fnUser.getZipCode())
- .setCountryCd(fnUser.getCountryCd())
- .setLocationClli(fnUser.getLocationClli())
- .setOrgManagerUserId(fnUser.getOrgManagerUserId())
- .setCompany(fnUser.getCompany())
- .setDepartmentName(fnUser.getDepartmentName())
- .setJobTitle(fnUser.getJobTitle())
- .setTimezone(fnUser.getTimezone().getTimezoneId())
- .setDepartment(fnUser.getDepartment())
- .setBusinessUnit(fnUser.getBusinessUnit())
- .setBusinessUnitName(fnUser.getBusinessUnitName())
- .setCost_center(fnUser.getCost_center())
- .setFinLocCode(fnUser.getFinLocCode())
- .setSiloStatus(fnUser.getSiloStatus())
- .setLanguageId(fnUser.getLanguageId().getLanguageId())
- .setGuest(fnUser.isGuest()).createFnUserDto();
}
public FnUser fnUserToFnUser(final FnUser fnUser){
- return fnUserBuilder
- .setUserId(fnUser.getUserId())
- .setOrgId(fnUser.getOrgId())
- .setManagerId(fnUser.getManagerId())
- .setFirstName(fnUser.getFirstName())
- .setMiddleName(fnUser.getMiddleName())
- .setLastName(fnUser.getLastName())
- .setPhone(fnUser.getPhone())
- .setFax(fnUser.getFax())
- .setCellular(fnUser.getCellular())
- .setEmail(fnUser.getEmail())
- .setAddressId(fnUser.getAddressId())
- .setAlertMethodCd(fnUser.getAlertMethodCd())
- .setHrid(fnUser.getHrid())
- .setOrgUserId(fnUser.getOrgUserId())
- .setOrg_code(fnUser.getOrg_code())
- .setLoginId(fnUser.getLoginId())
- .setLoginPwd(fnUser.getLoginPwd())
- .setLastLoginDate(fnUser.getLastLoginDate())
- .setActiveYn(fnUser.getActiveYn())
- .setCreatedId(fnUser.getCreatedId())
- .setCreatedDate(fnUser.getCreatedDate())
- .setModifiedId(fnUser.getModifiedId())
- .setModifiedDate(fnUser.getModifiedDate())
- .setIsInternalYn(fnUser.getIsInternalYn())
- .setAddressLine1(fnUser.getAddressLine1())
- .setAddressLine2(fnUser.getAddressLine2())
- .setCity(fnUser.getCity())
- .setStateCd(fnUser.getStateCd())
- .setZipCode(fnUser.getZipCode())
- .setCountryCd(fnUser.getCountryCd())
- .setLocationClli(fnUser.getLocationClli())
- .setOrgManagerUserId(fnUser.getOrgManagerUserId())
- .setCompany(fnUser.getCompany())
- .setDepartmentName(fnUser.getDepartmentName())
- .setJobTitle(fnUser.getJobTitle())
- .setTimezone(fnUser.getTimezone())
- .setDepartment(fnUser.getDepartment())
- .setBusinessUnit(fnUser.getBusinessUnit())
- .setBusinessUnitName(fnUser.getBusinessUnitName())
- .setCost_center(fnUser.getCost_center())
- .setFinLocCode(fnUser.getFinLocCode())
- .setSiloStatus(fnUser.getSiloStatus())
- .setLanguageId(fnUser.getLanguageId())
- .setGuest(fnUser.isGuest()).createFnUser();
+ return FnUser.builder()
+ .userId(fnUser.getUserId())
+ .orgId(fnUser.getOrgId())
+ .managerId(fnUser.getManagerId())
+ .firstName(fnUser.getFirstName())
+ .middleName(fnUser.getMiddleName())
+ .lastName(fnUser.getLastName())
+ .phone(fnUser.getPhone())
+ .fax(fnUser.getFax())
+ .cellular(fnUser.getCellular())
+ .email(fnUser.getEmail())
+ .addressId(fnUser.getAddressId())
+ .alertMethodCd(fnUser.getAlertMethodCd())
+ .hrid(fnUser.getHrid())
+ .orgUserId(fnUser.getOrgUserId())
+ .org_code(fnUser.getOrg_code())
+ .loginId(fnUser.getLoginId())
+ .loginPwd(fnUser.getLoginPwd())
+ .lastLoginDate(fnUser.getLastLoginDate())
+ .activeYn(fnUser.getActiveYn())
+ .createdId(fnUser.getCreatedId())
+ .createdDate(fnUser.getCreatedDate())
+ .modifiedId(fnUser.getModifiedId())
+ .modifiedDate(fnUser.getModifiedDate())
+ .isInternalYn(fnUser.getIsInternalYn())
+ .addressLine1(fnUser.getAddressLine1())
+ .addressLine2(fnUser.getAddressLine2())
+ .city(fnUser.getCity())
+ .stateCd(fnUser.getStateCd())
+ .zipCode(fnUser.getZipCode())
+ .countryCd(fnUser.getCountryCd())
+ .locationClli(fnUser.getLocationClli())
+ .orgManagerUserId(fnUser.getOrgManagerUserId())
+ .company(fnUser.getCompany())
+ .departmentName(fnUser.getDepartmentName())
+ .jobTitle(fnUser.getJobTitle())
+ .timezone(fnUser.getTimezone())
+ .department(fnUser.getDepartment())
+ .businessUnit(fnUser.getBusinessUnit())
+ .businessUnitName(fnUser.getBusinessUnitName())
+ .cost_center(fnUser.getCost_center())
+ .finLocCode(fnUser.getFinLocCode())
+ .siloStatus(fnUser.getSiloStatus())
+ .languageId(fnUser.getLanguageId())
+ .guest(fnUser.getGuest())
+ .build();
}
}
--- /dev/null
+/*-
+ * ============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============================================
+ *
+ *
+ */
+
+package org.onap.portal.exception;
+
+import org.apache.commons.codec.DecoderException;
+
+public class RoleFunctionException extends Exception{
+
+ /**
+ *
+ */
+ private static final long serialVersionUID = -3280548136475923423L;
+
+ public RoleFunctionException(String msg, DecoderException e) {
+ super(msg,e);
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.logging.aop;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EPAuditLog {
+ String value() default "";
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.logging.aop;
+
+import com.att.eelf.configuration.Configuration;
+import java.net.InetAddress;
+import java.security.Principal;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.UUID;
+import javax.servlet.http.HttpServletRequest;
+import org.onap.portal.domain.db.fn.FnApp;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.service.fn.FnUserService;
+import org.onap.portal.service.fn.old.AppsCacheService;
+import org.onap.portal.utils.EPCommonSystemProperties;
+import org.onap.portal.utils.EcompPortalUtils;
+import org.onap.portalsdk.core.exception.SessionExpiredException;
+import org.onap.portalsdk.core.logging.format.AlarmSeverityEnum;
+import org.onap.portalsdk.core.logging.format.AuditLogFormatter;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.onap.portalsdk.core.util.SystemProperties.SecurityEventTypeEnum;
+import org.onap.portalsdk.core.web.support.UserUtils;
+import org.slf4j.MDC;
+import org.springframework.beans.factory.annotation.Autowired;
+
+@org.springframework.context.annotation.Configuration
+public class EPEELFLoggerAdvice {
+
+ private EELFLoggerDelegate adviceLogger = EELFLoggerDelegate.getLogger(EPEELFLoggerAdvice.class);
+
+ private final AppsCacheService appCacheService;
+ private final FnUserService fnUserService;
+
+ @Autowired
+ public EPEELFLoggerAdvice(AppsCacheService appCacheService, FnUserService fnUserService) {
+ this.appCacheService = appCacheService;
+ this.fnUserService = fnUserService;
+ }
+
+ public static String getCurrentDateTimeUTC() {
+ SimpleDateFormat ecompLogDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+ return ecompLogDateFormat.format(new Date());
+ }
+
+ public void loadServletRequestBasedDefaults(Principal principal, HttpServletRequest req, SecurityEventTypeEnum securityEventType) {
+ try {
+ setHttpRequestBasedDefaultsIntoGlobalLoggingContext(principal, req, securityEventType, req.getServletPath());
+ } catch (Exception e) {
+ adviceLogger.error(EELFLoggerDelegate.errorLogger, "loadServletRequestBasedDefaults failed", e);
+ }
+ }
+
+ public Object[] before(Principal principal, SecurityEventTypeEnum securityEventType, Object[] args, Object[] passOnArgs) {
+ String className = "";
+ if (passOnArgs.length > 0 && passOnArgs[0] != null)
+ className = passOnArgs[0].toString();
+ String methodName = EPCommonSystemProperties.ECOMP_PORTAL_BE;
+ if (passOnArgs.length > 1 && passOnArgs[1] != null)
+ methodName = passOnArgs[1].toString();
+
+ MDC.put(className + methodName + EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP, getCurrentDateTimeUTC());
+ MDC.put(EPCommonSystemProperties.TARGET_ENTITY, EPCommonSystemProperties.ECOMP_PORTAL_BE);
+ MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, methodName);
+ if (MDC.get(Configuration.MDC_KEY_REQUEST_ID) == null||MDC.get(Configuration.MDC_KEY_REQUEST_ID).isEmpty()){
+ String requestId = UUID.randomUUID().toString();
+ MDC.put(Configuration.MDC_KEY_REQUEST_ID, requestId);
+ }
+ MDC.put(EPCommonSystemProperties.PARTNER_NAME, "Unknown");
+ MDC.put(Configuration.MDC_SERVICE_NAME, EPCommonSystemProperties.ECOMP_PORTAL_BE);
+
+ if (securityEventType != null) {
+ MDC.put(className + methodName + EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP,
+ getCurrentDateTimeUTC());
+ HttpServletRequest req;
+ if (args.length > 0 && args[0] != null && args[0] instanceof HttpServletRequest) {
+ req = (HttpServletRequest) args[0];
+ this.setHttpRequestBasedDefaultsIntoGlobalLoggingContext(principal, req, securityEventType, methodName);
+ }
+ }
+
+ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(className);
+ logger.debug(EELFLoggerDelegate.debugLogger, "EPEELFLoggerAdvice#before: entering {}", methodName);
+ return new Object[] { "" };
+ }
+
+ public void after(Principal principal, SecurityEventTypeEnum securityEventType, String statusCode, String responseCode, Object[] args,
+ Object[] returnArgs, Object[] passOnArgs) {
+ String className = "";
+ if (passOnArgs.length > 0 && passOnArgs[0] != null)
+ className = passOnArgs[0].toString();
+ String methodName = EPCommonSystemProperties.ECOMP_PORTAL_BE;
+ if (passOnArgs.length > 1 && passOnArgs[1] != null)
+ methodName = passOnArgs[1].toString();
+
+ if (MDC.get(EPCommonSystemProperties.TARGET_SERVICE_NAME) == null
+ || "".equals(MDC.get(EPCommonSystemProperties.TARGET_SERVICE_NAME)))
+ MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, methodName);
+
+ if (MDC.get(EPCommonSystemProperties.TARGET_ENTITY) == null
+ || "".equals(MDC.get(EPCommonSystemProperties.TARGET_ENTITY)))
+ MDC.put(EPCommonSystemProperties.TARGET_ENTITY, EPCommonSystemProperties.ECOMP_PORTAL_BE);
+
+ if (MDC.get(Configuration.MDC_KEY_REQUEST_ID) == null||MDC.get(Configuration.MDC_KEY_REQUEST_ID).isEmpty()){
+ String requestId = UUID.randomUUID().toString();
+ MDC.put(Configuration.MDC_KEY_REQUEST_ID, requestId);
+ }
+
+ if (MDC.get(EPCommonSystemProperties.PARTNER_NAME) == null|| MDC.get(EPCommonSystemProperties.PARTNER_NAME).isEmpty()){
+ MDC.put(EPCommonSystemProperties.PARTNER_NAME, "Unknown");
+ }
+
+ MDC.put(Configuration.MDC_SERVICE_NAME, EPCommonSystemProperties.ECOMP_PORTAL_BE);
+
+
+ MDC.put(EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP,
+ MDC.get(className + methodName + EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP));
+ MDC.put(EPCommonSystemProperties.METRICSLOG_END_TIMESTAMP, getCurrentDateTimeUTC());
+ this.calculateDateTimeDifference(MDC.get(EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP),
+ MDC.get(EPCommonSystemProperties.METRICSLOG_END_TIMESTAMP));
+
+ if (securityEventType != null && args.length > 0 && args[0] != null && args[0] instanceof HttpServletRequest
+ && securityEventType == SecurityEventTypeEnum.INCOMING_REST_MESSAGE
+ && (MDC.get(EPCommonSystemProperties.FULL_URL) == null
+ || MDC.get(EPCommonSystemProperties.FULL_URL).isEmpty())) {
+ HttpServletRequest req = (HttpServletRequest) args[0];
+ this.setHttpRequestBasedDefaultsIntoGlobalLoggingContext(principal, req, securityEventType, methodName);
+ }
+
+ String externalAPIResponseCode = MDC.get(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE);
+ if (externalAPIResponseCode == null || "".equals(externalAPIResponseCode)
+ || externalAPIResponseCode.trim().equalsIgnoreCase("200")) {
+ MDC.put(EPCommonSystemProperties.RESPONSE_CODE, responseCode);
+ MDC.put(EPCommonSystemProperties.STATUS_CODE, statusCode);
+ } else {
+ MDC.put(EPCommonSystemProperties.RESPONSE_CODE, externalAPIResponseCode);
+ MDC.put(EPCommonSystemProperties.STATUS_CODE, "ERROR");
+ }
+
+ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(className);
+ logger.debug(EELFLoggerDelegate.debugLogger, "EPEELFLoggerAdvice#after: finished {}", methodName);
+
+ logger.info(EELFLoggerDelegate.metricsLogger, methodName + " operation is completed.");
+
+ if (securityEventType != null) {
+ MDC.put(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP,
+ MDC.get(className + methodName + EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP));
+ MDC.put(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP, getCurrentDateTimeUTC());
+ this.calculateDateTimeDifference(MDC.get(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP),
+ MDC.get(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP));
+
+ this.logSecurityMessage(logger, securityEventType, methodName);
+
+ if (securityEventType != SecurityEventTypeEnum.OUTGOING_REST_MESSAGE
+ && securityEventType != SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH) {
+ MDC.remove(Configuration.MDC_KEY_REQUEST_ID);
+ MDC.remove(EPCommonSystemProperties.PARTNER_NAME);
+ MDC.remove(Configuration.MDC_SERVICE_NAME);
+ MDC.remove(EPCommonSystemProperties.MDC_LOGIN_ID);
+ MDC.remove(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE);
+ }else{
+ MDC.remove(Configuration.MDC_KEY_REQUEST_ID);
+ MDC.remove(EPCommonSystemProperties.PARTNER_NAME);
+ MDC.remove(Configuration.MDC_SERVICE_NAME);
+ }
+
+
+ MDC.remove(EPCommonSystemProperties.FULL_URL);
+ MDC.remove(EPCommonSystemProperties.PROTOCOL);
+ MDC.remove(EPCommonSystemProperties.STATUS_CODE);
+ MDC.remove(className + methodName + EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP);
+ MDC.remove(EPCommonSystemProperties.AUDITLOG_BEGIN_TIMESTAMP);
+ MDC.remove(EPCommonSystemProperties.AUDITLOG_END_TIMESTAMP);
+ MDC.remove(EPCommonSystemProperties.RESPONSE_CODE);
+ }
+ MDC.remove(className + methodName + EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP);
+ MDC.remove(EPCommonSystemProperties.METRICSLOG_BEGIN_TIMESTAMP);
+ MDC.remove(EPCommonSystemProperties.METRICSLOG_END_TIMESTAMP);
+ MDC.remove(EPCommonSystemProperties.MDC_TIMER);
+ MDC.remove(EPCommonSystemProperties.TARGET_ENTITY);
+ MDC.remove(EPCommonSystemProperties.TARGET_SERVICE_NAME);
+
+ }
+
+ private void logSecurityMessage(EELFLoggerDelegate logger, SecurityEventTypeEnum securityEventType,
+ String restMethod) {
+ StringBuilder additionalInfoAppender = new StringBuilder();
+ String auditMessage;
+
+ if (securityEventType == SecurityEventTypeEnum.OUTGOING_REST_MESSAGE) {
+ additionalInfoAppender.append(String.format("%s '%s' request was initiated.", restMethod,
+ MDC.get(EPCommonSystemProperties.TARGET_SERVICE_NAME)));
+ } else if (securityEventType == SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH) {
+ additionalInfoAppender.append("LDAP Phonebook search operation is performed.");
+ } else {
+ additionalInfoAppender.append(String.format("%s request was received.", restMethod));
+
+ if (securityEventType == SecurityEventTypeEnum.FE_LOGIN_ATTEMPT) {
+ String loginId;
+ String additionalMessage = " Successfully authenticated.";
+ loginId = MDC.get(EPCommonSystemProperties.MDC_LOGIN_ID);
+ if (loginId == null || "".equals(loginId) || EPCommonSystemProperties.UNKNOWN.equals(loginId)) {
+ additionalMessage = " No cookies are found.";
+ }
+ additionalInfoAppender.append(additionalMessage);
+ } else if (securityEventType == SecurityEventTypeEnum.FE_LOGOUT) {
+ additionalInfoAppender.append(" User has been successfully logged out.");
+ }
+ }
+
+ String fullURL = MDC.get(EPCommonSystemProperties.FULL_URL);
+ if (fullURL != null && !"".equals(fullURL)) {
+ additionalInfoAppender.append(" Request-URL:").append(MDC.get(EPCommonSystemProperties.FULL_URL));
+ }
+
+ auditMessage = AuditLogFormatter.getInstance().createMessage(MDC.get(EPCommonSystemProperties.PROTOCOL),
+ securityEventType.name(), MDC.get(EPCommonSystemProperties.MDC_LOGIN_ID),
+ additionalInfoAppender.toString());
+
+ logger.info(EELFLoggerDelegate.auditLogger, auditMessage);
+ }
+
+ private void setHttpRequestBasedDefaultsIntoGlobalLoggingContext(Principal principal, HttpServletRequest req,
+ SecurityEventTypeEnum securityEventType, String restMethod) {
+
+ if (req != null) {
+ if (securityEventType != SecurityEventTypeEnum.OUTGOING_REST_MESSAGE
+ && securityEventType != SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH
+ && securityEventType != SecurityEventTypeEnum.INCOMING_UEB_MESSAGE) {
+ loadRequestId(req);
+
+ loadPartnerName(req);
+
+ loadLoginId(principal, req);
+
+ loadUrlProtocol(req);
+
+ loadServicePath(req, restMethod);
+
+ loadClientAddress(req);
+
+ } else if (securityEventType == SecurityEventTypeEnum.LDAP_PHONEBOOK_USER_SEARCH) {
+ MDC.put(EPCommonSystemProperties.TARGET_ENTITY, "Phonebook");
+ MDC.put(EPCommonSystemProperties.TARGET_SERVICE_NAME, "search");
+ }
+ } else {
+ MDC.put(Configuration.MDC_SERVICE_NAME, restMethod);
+ MDC.put(EPCommonSystemProperties.PARTNER_NAME, EPCommonSystemProperties.ECOMP_PORTAL_FE);
+ }
+
+ MDC.put(Configuration.MDC_SERVICE_INSTANCE_ID, "");
+ MDC.put(Configuration.MDC_ALERT_SEVERITY, AlarmSeverityEnum.INFORMATIONAL.severity());
+ try {
+ MDC.put(Configuration.MDC_SERVER_FQDN, InetAddress.getLocalHost().getCanonicalHostName());
+ MDC.put(Configuration.MDC_SERVER_IP_ADDRESS, InetAddress.getLocalHost().getHostAddress());
+ MDC.put(Configuration.MDC_INSTANCE_UUID, SystemProperties.getProperty(SystemProperties.INSTANCE_UUID));
+ } catch (Exception e) {
+ adviceLogger.error(EELFLoggerDelegate.errorLogger,
+ "setHttpRequestBasedDefaultsIntoGlobalLoggingContext failed", e);
+ }
+ }
+
+ private void loadClientAddress(HttpServletRequest req) {
+ String clientIPAddress;
+ clientIPAddress = req.getHeader("X-FORWARDED-FOR");
+ if (clientIPAddress == null) {
+ clientIPAddress = req.getRemoteAddr();
+ }
+ MDC.put(EPCommonSystemProperties.CLIENT_IP_ADDRESS, clientIPAddress);
+ }
+
+ private void loadServicePath(HttpServletRequest req, String restMethod) {
+ MDC.put(Configuration.MDC_SERVICE_NAME, restMethod);
+ String restPath = req.getServletPath();
+ if (restPath != null && restPath.trim().length()>0) {
+
+ MDC.put(Configuration.MDC_SERVICE_NAME, restPath);
+ }
+ }
+
+ private void loadUrlProtocol(HttpServletRequest req) {
+ String restURL;
+ MDC.put(EPCommonSystemProperties.FULL_URL, EPCommonSystemProperties.UNKNOWN);
+ MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTP);
+ restURL = UserUtils.getFullURL(req);
+ if (restURL.trim().length() > 0) {
+ MDC.put(EPCommonSystemProperties.FULL_URL, restURL);
+ if (restURL.toLowerCase().contains("https")) {
+ MDC.put(EPCommonSystemProperties.PROTOCOL, EPCommonSystemProperties.HTTPS);
+ }
+ }
+ }
+
+ private void loadRequestId(HttpServletRequest req) {
+ String requestId = UserUtils.getRequestId(req);
+ if (requestId == null||requestId.trim().length()==0) {
+ requestId = UUID.randomUUID().toString();
+ }
+ MDC.put(Configuration.MDC_KEY_REQUEST_ID, requestId);
+ }
+
+ private void loadLoginId(Principal principal, HttpServletRequest req) {
+ String loginId = "NoUser";
+ try {
+ FnUser user = fnUserService.loadUserByUsername(principal.getName());
+ loginId = (user != null ? user.getOrgUserId(): loginId);
+ } catch (SessionExpiredException se) {
+ adviceLogger.debug(EELFLoggerDelegate.debugLogger,
+ "setHttpRequestBasedDefaultsIntoGlobalLoggingContext: No user found in session");
+ }
+
+ final String nameHeader = req.getHeader(EPCommonSystemProperties.USERNAME);
+ if (nameHeader != null) {
+ loginId = nameHeader;
+ }
+
+ final String authHeader = req.getHeader(EPCommonSystemProperties.AUTHORIZATION);
+ if (authHeader != null) {
+ String[] accountNamePassword = EcompPortalUtils.getUserNamePassword(authHeader);
+ if (accountNamePassword != null && accountNamePassword.length == 2) {
+ loginId = accountNamePassword[0];
+ }
+ }
+
+ MDC.put(EPCommonSystemProperties.MDC_LOGIN_ID, loginId );
+ }
+
+ private void loadPartnerName(HttpServletRequest req) {
+
+
+ // Load user agent into MDC context, if available.
+ String accessingClient = req.getHeader(SystemProperties.USERAGENT_NAME);
+ accessingClient = (accessingClient == null || accessingClient.trim().length()==0)?"Unknown":accessingClient;
+ if (accessingClient != null && accessingClient.trim().length()==0 && (accessingClient.contains("Mozilla")
+ || accessingClient.contains("Chrome") || accessingClient.contains("Safari"))) {
+ accessingClient = EPCommonSystemProperties.ECOMP_PORTAL_FE;
+ }
+ MDC.put(EPCommonSystemProperties.PARTNER_NAME, accessingClient);
+
+ String uebVal = req.getHeader(EPCommonSystemProperties.UEB_KEY);
+ if(uebVal != null) {
+ FnApp appRecord = appCacheService.getAppFromUeb(uebVal);
+ MDC.put(EPCommonSystemProperties.PARTNER_NAME, appRecord.getAppName());
+ }
+
+
+ }
+
+ private void calculateDateTimeDifference(String beginDateTime, String endDateTime) {
+ if (beginDateTime != null && endDateTime != null && !beginDateTime.isEmpty()&&!endDateTime.isEmpty()) {
+ try {
+ SimpleDateFormat ecompLogDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+ Date beginDate = ecompLogDateFormat.parse(beginDateTime);
+ Date endDate = ecompLogDateFormat.parse(endDateTime);
+ String timeDifference = String.format("%d", endDate.getTime() - beginDate.getTime());
+ MDC.put(SystemProperties.MDC_TIMER, timeDifference);
+ } catch (Exception e) {
+ adviceLogger.error(EELFLoggerDelegate.errorLogger, "calculateDateTimeDifference failed", e);
+ }
+ }
+ }
+
+ public String getInternalResponseCode() {
+ return MDC.get(EPCommonSystemProperties.RESPONSE_CODE);
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.logging.aop;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target({ElementType.METHOD, ElementType.TYPE})
+@Retention(RetentionPolicy.RUNTIME)
+public @interface EPMetricsLog {
+ String value() default "";
+}
import org.onap.portalsdk.core.logging.format.ErrorTypeEnum;
/**
- *
- * Add ONAP Portal Specific Error Code Enums here, for generic
- * ones (ones you think are useful not only Portal but also SDK), add it
- * to the enum class AppMessagesEnum defined in SDK.
+ * Add ONAP Portal Specific Error Code Enums here, for generic ones (ones you think are useful not only Portal but also
+ * SDK), add it to the enum class AppMessagesEnum defined in SDK.
*/
public enum EPAppMessagesEnum implements EELFResolvableErrorEnum {
/*
900-999 Unknown Errors
- Unexpected exception
*/
-
- BeUebAuthenticationError(EPErrorCodesEnum.BEUEBAUTHENTICATIONERROR_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR100E", "An Authentication failure occurred during access to UEB server", "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."),
-
- BeRestApiAuthenticationError(EPErrorCodesEnum.BERESTAPIAUTHENTICATIONERROR, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR101E", "Rejected an incoming REST API request due to invalid credentials", "", "Please check application credentials defined in Database or properties files."),
-
- InternalAuthenticationInfo(EPErrorCodesEnum.INTERNALAUTHENTICATIONINFO_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
- "ERR199I", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."),
-
- InternalAuthenticationWarning(EPErrorCodesEnum.INTERNALAUTHENTICATIONWARNING_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
- "ERR199W", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."),
-
- InternalAuthenticationError(EPErrorCodesEnum.INTERNALAUTHENTICATIONERROR_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR199E", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."),
-
- InternalAuthenticationFatal(EPErrorCodesEnum.INTERNALAUTHENTICATIONFATAL_ONE_ARGUMENT, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL,
- "ERR199F", "Internal authentication problem", "Details: {0}.", "Please check the logs for more information."),
-
- BeHealthCheckError(EPErrorCodesEnum.BeHEALTHCHECKERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
- "ERR200E", "ECOMP-PORTAL Back-end probably lost connectivity to either one of the following components: MySQL DB, UEB Cluster", "", "Please check the logs for more information."),
-
- BeHealthCheckMySqlError(EPErrorCodesEnum.BEHEALTHCHECKMYSQLERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
- "ERR201E", "ECOMP-PORTAL Back-end probably lost connectivity to MySQL DB", "", "Check connectivity to MYSQL is configured correctly under system.properties file."),
-
- BeHealthCheckUebClusterError(EPErrorCodesEnum.BEHEALTHCHECKUEBCLUSTERERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
- "ERR203E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "", "Check connectivity to UEB cluster which is configured under portal.properties file."),
-
- FeHealthCheckError(EPErrorCodesEnum.FEHEALTHCHECKERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
- "ERR204E", "Unable to connect to a valid ECOMP-PORTAL Back-end Server.", "", "Please check connectivity from this FE instance towards BE or BE Load Balancer."),
-
- BeHealthCheckRecovery(EPErrorCodesEnum.BEHEALTHCHECKRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
- "ERR205I", "ECOMP-PORTAL Back-end Recovery to either one of the following components: MySQL DB, UEB Cluster", "", "Please check logs for more specific information about the problem."),
-
- BeHealthCheckMySqlRecovery(EPErrorCodesEnum.BEHEALTHCHECKMYSQLRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
- "ERR206I", "ECOMP-PORTAL Back-end connection recovery to MySQL DB", "", "Please check logs for more specific information about the problem."),
-
- BeHealthCheckUebClusterRecovery(EPErrorCodesEnum.BEHEALTHCHECKUEBCLUSTERRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
- "ERR208I", "ECOMP-PORTAL Back-end connection recovery to UEB Cluster", "", "Please check logs for more specific information about the problem."),
-
- FeHealthCheckRecovery(EPErrorCodesEnum.FEHEALTHCHECKRECOVERY, ErrorTypeEnum.RECOVERY, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
- "ERR209I", "Connectivity to ECOMP-PORTAL Front-end Server is recovered", "", "Please check logs for more specific information about the problem."),
-
- BeUebConnectionError(EPErrorCodesEnum.BEUEBCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR210E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."),
-
- BeUebUnkownHostError(EPErrorCodesEnum.BEUEBUNKOWNHOSTERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR211E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "Cannot reach host: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."),
-
- BeUebRegisterOnboardingAppError(EPErrorCodesEnum.BEUEBREGISTERONBOARDINGAPPERROR, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR212E", "Failed to register the On-boarding application with UEB Communication server", "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."),
-
- BeHttpConnectionError(EPErrorCodesEnum.BEHTTPCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR213E", "It could be that communication to an external application might resulted an exception or failed to reach the external application",
- "Details: {0}.", "Please check logs for more information."),
- MusicHealthCheckZookeeperError(EPErrorCodesEnum.MUSICHEALTHCHECKZOOKEEPERERROR_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR214E", "Connectivity to Music Cluster -zookeeper server", "Details: {0}.", "Please check zookeeper server list and check the logs for more information"),
-
- MusicHealthCheckCassandraError(EPErrorCodesEnum.MUSICHEALTHCHECKCASSANDRAERROR_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR215E", "Connectivity to Music Cluster -Cassandra server", "Details: {0}.", "Please check Cassandra server list and check the logs for more information"),
-
- InternalConnectionInfo(EPErrorCodesEnum.INTERNALCONNECTIONINFO_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
- "ERR299I", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."),
-
- InternalConnectionWarning(EPErrorCodesEnum.INTERNALCONNECTIONWARNING_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
- "ERR299W", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."),
-
- InternalConnectionError(EPErrorCodesEnum.INTERNALCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR299E", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."),
-
- InternalConnectionFatal(EPErrorCodesEnum.INTERNALCONNECTIONFATAL_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL,
- "ERR299F", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."),
-
- BeUebObjectNotFoundError(EPErrorCodesEnum.BEUEBOBJECTNOTFOUNDERROR_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR303E", "Error occurred during access to U-EB Server.", "Data not found: {0}.", "An error occurred during access to UEB Server, {1} failed to either register or unregister to/from UEB topic."),
-
- BeUserMissingError(EPErrorCodesEnum.BEUSERMISSINGERROR_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR310E", "User is not found", "", "User {0} must be added to the corresponding application with proper user roles."),
-
- BeUserInactiveWarning(EPErrorCodesEnum.BEUSERINACTIVEWARNING_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
- "ERR313W", "User is found but in-active", "", "User {0} must be added to the corresponding application with proper user roles."),
-
- BeUserAdminPrivilegesInfo(EPErrorCodesEnum.BEUSERADMINPRIVILEGESINFO_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
- "ERR314W", "User is found but don't have administrative privileges", "", "User {0} should be given administrator role for the corresponding application to perform the necessary actions."),
-
- BeInvalidJsonInput(EPErrorCodesEnum.BEINVALIDJSONINPUT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR405E", "Failed to convert JSON input to object", "", "Please check logs for more information."),
-
- BeIncorrectHttpStatusError(EPErrorCodesEnum.BEINCORRECTHTTPSTATUSERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR407E", "Communication to an external application is resulted in with Incorrect Http response code", "", "Please check logs for more information."),
-
- BeInitializationError(EPErrorCodesEnum.BEINITIALIZATIONERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
- "ERR500E", "ECOMP-PORTAL Back-end was not initialized properly", "", "Please check logs for more information."),
-
- BeUebSystemError(EPErrorCodesEnum.BEUEBSYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR502E", "Error occurred during access to U-EB Server", "Details: {0}.", "An error occurred in {1} distribution mechanism. Please check the logs for more information."),
-
- BeDaoSystemError(EPErrorCodesEnum.BEDAOSYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
- "ERR505E", "Performing DDL or DML operations on database might have failed", "", "Please check MySQL DB health or look at the logs for more details."),
-
- BeSystemError(EPErrorCodesEnum.BESYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
- "ERR506E", "Unexpected error during operation", "", "Please check logs for more information."),
-
- BeExecuteRollbackError(EPErrorCodesEnum.BEEXECUTEROLLBACKERROR, ErrorTypeEnum.DATA_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR507E", "Roll-back operation towards database has failed", "", "Please check MYSQL DB health or look at the logs for more details."),
-
- FeHttpLoggingError(EPErrorCodesEnum.FEHTTPLOGGINGERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.ERROR,
- "ERR517E", "Error when logging FE HTTP request/response", "", "Please check MYSQL DB health or look at the logs for more details."),
-
- FePortalServletError(EPErrorCodesEnum.FEPORTALSERVLETERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR518E", "Error when trying to access FE Portal page.", "", "Please check logs for more information."),
-
- BeDaoCloseSessionError(EPErrorCodesEnum.BEDAOCLOSESESSIONERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR519E", "Close local session operation with database failed", "", "Please check MYSQL DB health or look at the logs form more details."),
-
- BeRestApiGeneralError(EPErrorCodesEnum.BERESTAPIGENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
- "ERR900E", "Unexpected error during ECOMP-PORTAL Back-end REST API execution", "", "Please check error log for more information."),
-
- FeHealthCheckGeneralError(EPErrorCodesEnum.FEHEALTHCHECKGENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
- "ERR901E", "General error during FE Health Check", "", "Please check error log for more information."),
-
- InternalUnexpectedInfo(EPErrorCodesEnum.INTERNALUNEXPECTEDINFO_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
- "ERR999I", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
-
- InternalUnexpectedWarning(EPErrorCodesEnum.INTERNALUNEXPECTEDWARNING_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
- "ERR999W", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
-
- InternalUnexpectedError(EPErrorCodesEnum.INTERNALUNEXPECTEDERROR_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR999E", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
-
- InternalUnexpectedFatal(EPErrorCodesEnum.INTERNALUNEXPECTEDFATAL_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL,
- "ERR999F", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
-
- ExternalAuthAccessConnectionError(EPErrorCodesEnum.EXTERNALAUTHACCESS_CONNECTIONERROR, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR220E", "AAF Connection problem", "Details: {0}.", "Please check logs for more information."),
-
- ExternalAuthAccessAuthenticationError(EPErrorCodesEnum.EXTERNALAUTHACCESS_AUTHENTICATIONERROR, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR120E", "AAF authentication problem", "Details: {0}.", "Please check logs for more information."),
-
- ExternalAuthAccessGeneralError(EPErrorCodesEnum.EXTERNALAUTHACCESS_GENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR520E", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
-
- SchedulerAccessConnectionError(EPErrorCodesEnum.SCHEDULER_ACCESS_CONNECTIONERROR, ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR240E", "Scheduler Connection problem", "Details: {0}.", "Please check logs for more information."),
-
- SchedulerAuxAccessAuthenticationError(EPErrorCodesEnum.SCHEDULERAUX_ACCESS_AUTHENTICATIONERROR, ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR140E", "SchedulerAux authentication problem", "Details: {0}.", "Please check logs for more information."),
-
- SchedulerAccessGeneralError(EPErrorCodesEnum.SCHEDULER_ACCESS_GENERALERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR540E", "Unexpected Scheduler error", "Details: {0}.", "Please check logs for more information."),
-
- SchedulerInvalidAttributeError(EPErrorCodesEnum.SCHEDULER_INVALID_ATTRIBUTEERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
- "ERR515E", "Unable to create Scheduler", "Details: {0}.", "Please check logs for more information."),
-
- ;
-
- ErrorTypeEnum eType;
- AlarmSeverityEnum alarmSeverity;
- EPErrorCodesEnum messageCode;
- ErrorSeverityEnum errorSeverity;
- String errorCode;
- String errorDescription;
- String details;
- String resolution;
-
- EPAppMessagesEnum(EPErrorCodesEnum messageCode, ErrorTypeEnum eType, AlarmSeverityEnum alarmSeverity, ErrorSeverityEnum errorSeverity, String errorCode, String errorDescription,
- String details, String resolution) {
- this.messageCode = messageCode;
- this.eType = eType;
- this.alarmSeverity = alarmSeverity;
- this.errorSeverity = errorSeverity;
- this.errorCode = errorCode;
- this.errorDescription = errorDescription;
- this.details = details;
- this.resolution = resolution;
- }
-
- public String getDetails() {
- return this.details;
- }
-
- public String getResolution() {
- return this.resolution;
- }
- public String getErrorCode() {
- return this.errorCode;
- }
-
- public String getErrorDescription() {
- return this.errorDescription;
- }
-
- public ErrorSeverityEnum getErrorSeverity() {
- return this.errorSeverity;
- }
-
- public void setErrorSeverity(ErrorSeverityEnum errorSeverity) {
- this.errorSeverity = errorSeverity;
- }
-
- public EPErrorCodesEnum getMessageCode() {
- return messageCode;
- }
-
- public void setMessageCode(EPErrorCodesEnum messageCode) {
- this.messageCode = messageCode;
- }
-
- public AlarmSeverityEnum getAlarmSeverity() {
- return alarmSeverity;
- }
-
- public void setAlarmSeverity(AlarmSeverityEnum alarmSeverity) {
- this.alarmSeverity = alarmSeverity;
- }
-
- public ErrorTypeEnum getErrorType() {
- return eType;
- }
-
- public void setErrorType(ErrorTypeEnum eType) {
- this.eType = eType;
- }
+
+ BeUebAuthenticationError(EPErrorCodesEnum.BEUEBAUTHENTICATIONERROR_ONE_ARGUMENT,
+ ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR100E", "An Authentication failure occurred during access to UEB server", "Details: {0}.",
+ "Please check UEB server list and keys configured under Portal.Properties file."),
+
+ BeRestApiAuthenticationError(EPErrorCodesEnum.BERESTAPIAUTHENTICATIONERROR, ErrorTypeEnum.AUTHENTICATION_PROBLEM,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR101E", "Rejected an incoming REST API request due to invalid credentials", "",
+ "Please check application credentials defined in Database or properties files."),
+
+ InternalAuthenticationInfo(EPErrorCodesEnum.INTERNALAUTHENTICATIONINFO_ONE_ARGUMENT,
+ ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
+ "ERR199I", "Internal authentication problem", "Details: {0}.",
+ "Please check the logs for more information."),
+
+ InternalAuthenticationWarning(EPErrorCodesEnum.INTERNALAUTHENTICATIONWARNING_ONE_ARGUMENT,
+ ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
+ "ERR199W", "Internal authentication problem", "Details: {0}.",
+ "Please check the logs for more information."),
+
+ InternalAuthenticationError(EPErrorCodesEnum.INTERNALAUTHENTICATIONERROR_ONE_ARGUMENT,
+ ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR199E", "Internal authentication problem", "Details: {0}.",
+ "Please check the logs for more information."),
+
+ InternalAuthenticationFatal(EPErrorCodesEnum.INTERNALAUTHENTICATIONFATAL_ONE_ARGUMENT,
+ ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL,
+ "ERR199F", "Internal authentication problem", "Details: {0}.",
+ "Please check the logs for more information."),
+
+ BeHealthCheckError(EPErrorCodesEnum.BeHEALTHCHECKERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL,
+ ErrorSeverityEnum.ERROR,
+ "ERR200E",
+ "ECOMP-PORTAL Back-end probably lost connectivity to either one of the following components: MySQL DB, UEB Cluster",
+ "", "Please check the logs for more information."),
+
+ BeHealthCheckMySqlError(EPErrorCodesEnum.BEHEALTHCHECKMYSQLERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
+ "ERR201E", "ECOMP-PORTAL Back-end probably lost connectivity to MySQL DB", "",
+ "Check connectivity to MYSQL is configured correctly under system.properties file."),
+
+ BeHealthCheckUebClusterError(EPErrorCodesEnum.BEHEALTHCHECKUEBCLUSTERERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
+ "ERR203E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "",
+ "Check connectivity to UEB cluster which is configured under portal.properties file."),
+
+ FeHealthCheckError(EPErrorCodesEnum.FEHEALTHCHECKERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL,
+ ErrorSeverityEnum.ERROR,
+ "ERR204E", "Unable to connect to a valid ECOMP-PORTAL Back-end Server.", "",
+ "Please check connectivity from this FE instance towards BE or BE Load Balancer."),
+
+ BeHealthCheckRecovery(EPErrorCodesEnum.BEHEALTHCHECKRECOVERY, ErrorTypeEnum.RECOVERY,
+ AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
+ "ERR205I",
+ "ECOMP-PORTAL Back-end Recovery to either one of the following components: MySQL DB, UEB Cluster", "",
+ "Please check logs for more specific information about the problem."),
+
+ BeHealthCheckMySqlRecovery(EPErrorCodesEnum.BEHEALTHCHECKMYSQLRECOVERY, ErrorTypeEnum.RECOVERY,
+ AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
+ "ERR206I", "ECOMP-PORTAL Back-end connection recovery to MySQL DB", "",
+ "Please check logs for more specific information about the problem."),
+
+ BeHealthCheckUebClusterRecovery(EPErrorCodesEnum.BEHEALTHCHECKUEBCLUSTERRECOVERY, ErrorTypeEnum.RECOVERY,
+ AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
+ "ERR208I", "ECOMP-PORTAL Back-end connection recovery to UEB Cluster", "",
+ "Please check logs for more specific information about the problem."),
+
+ FeHealthCheckRecovery(EPErrorCodesEnum.FEHEALTHCHECKRECOVERY, ErrorTypeEnum.RECOVERY,
+ AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
+ "ERR209I", "Connectivity to ECOMP-PORTAL Front-end Server is recovered", "",
+ "Please check logs for more specific information about the problem."),
+
+ BeUebConnectionError(EPErrorCodesEnum.BEUEBCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR210E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "Details: {0}.",
+ "Please check UEB server list and keys configured under Portal.Properties file."),
+
+ BeUebUnkownHostError(EPErrorCodesEnum.BEUEBUNKOWNHOSTERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR211E", "ECOMP-PORTAL Back-end probably lost connectivity to UEB Cluster", "Cannot reach host: {0}.",
+ "Please check UEB server list and keys configured under Portal.Properties file."),
+
+ BeUebRegisterOnboardingAppError(EPErrorCodesEnum.BEUEBREGISTERONBOARDINGAPPERROR,
+ ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR212E", "Failed to register the On-boarding application with UEB Communication server",
+ "Details: {0}.", "Please check UEB server list and keys configured under Portal.Properties file."),
+
+ BeHttpConnectionError(EPErrorCodesEnum.BEHTTPCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR213E",
+ "It could be that communication to an external application might resulted an exception or failed to reach the external application",
+ "Details: {0}.", "Please check logs for more information."),
+ MusicHealthCheckZookeeperError(EPErrorCodesEnum.MUSICHEALTHCHECKZOOKEEPERERROR_ONE_ARGUMENT,
+ ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR214E", "Connectivity to Music Cluster -zookeeper server", "Details: {0}.",
+ "Please check zookeeper server list and check the logs for more information"),
+
+ MusicHealthCheckCassandraError(EPErrorCodesEnum.MUSICHEALTHCHECKCASSANDRAERROR_ONE_ARGUMENT,
+ ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR215E", "Connectivity to Music Cluster -Cassandra server", "Details: {0}.",
+ "Please check Cassandra server list and check the logs for more information"),
+
+ InternalConnectionInfo(EPErrorCodesEnum.INTERNALCONNECTIONINFO_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM,
+ AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
+ "ERR299I", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."),
+
+ InternalConnectionWarning(EPErrorCodesEnum.INTERNALCONNECTIONWARNING_ONE_ARGUMENT,
+ ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
+ "ERR299W", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."),
+
+ InternalConnectionError(EPErrorCodesEnum.INTERNALCONNECTIONERROR_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR299E", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."),
+
+ InternalConnectionFatal(EPErrorCodesEnum.INTERNALCONNECTIONFATAL_ONE_ARGUMENT, ErrorTypeEnum.CONNECTION_PROBLEM,
+ AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL,
+ "ERR299F", "Internal Connection problem", "Details: {0}.", "Please check logs for more information."),
+
+ BeUebObjectNotFoundError(EPErrorCodesEnum.BEUEBOBJECTNOTFOUNDERROR_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR303E", "Error occurred during access to U-EB Server.", "Data not found: {0}.",
+ "An error occurred during access to UEB Server, {1} failed to either register or unregister to/from UEB topic."),
+
+ BeUserMissingError(EPErrorCodesEnum.BEUSERMISSINGERROR_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR310E", "User is not found", "",
+ "User {0} must be added to the corresponding application with proper user roles."),
+
+ BeUserInactiveWarning(EPErrorCodesEnum.BEUSERINACTIVEWARNING_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR,
+ AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
+ "ERR313W", "User is found but in-active", "",
+ "User {0} must be added to the corresponding application with proper user roles."),
+
+ BeUserAdminPrivilegesInfo(EPErrorCodesEnum.BEUSERADMINPRIVILEGESINFO_ONE_ARGUMENT, ErrorTypeEnum.DATA_ERROR,
+ AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
+ "ERR314W", "User is found but don't have administrative privileges", "",
+ "User {0} should be given administrator role for the corresponding application to perform the necessary actions."),
+
+ BeInvalidJsonInput(EPErrorCodesEnum.BEINVALIDJSONINPUT, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR,
+ ErrorSeverityEnum.ERROR,
+ "ERR405E", "Failed to convert JSON input to object", "", "Please check logs for more information."),
+
+ BeIncorrectHttpStatusError(EPErrorCodesEnum.BEINCORRECTHTTPSTATUSERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR407E", "Communication to an external application is resulted in with Incorrect Http response code",
+ "", "Please check logs for more information."),
+
+ BeInitializationError(EPErrorCodesEnum.BEINITIALIZATIONERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
+ "ERR500E", "ECOMP-PORTAL Back-end was not initialized properly", "",
+ "Please check logs for more information."),
+
+ BeUebSystemError(EPErrorCodesEnum.BEUEBSYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR,
+ ErrorSeverityEnum.ERROR,
+ "ERR502E", "Error occurred during access to U-EB Server", "Details: {0}.",
+ "An error occurred in {1} distribution mechanism. Please check the logs for more information."),
+
+ BeDaoSystemError(EPErrorCodesEnum.BEDAOSYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL,
+ ErrorSeverityEnum.ERROR,
+ "ERR505E", "Performing DDL or DML operations on database might have failed", "",
+ "Please check MySQL DB health or look at the logs for more details."),
+
+ BeSystemError(EPErrorCodesEnum.BESYSTEMERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.CRITICAL,
+ ErrorSeverityEnum.ERROR,
+ "ERR506E", "Unexpected error during operation", "", "Please check logs for more information."),
+
+ BeExecuteRollbackError(EPErrorCodesEnum.BEEXECUTEROLLBACKERROR, ErrorTypeEnum.DATA_ERROR,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR507E", "Roll-back operation towards database has failed", "",
+ "Please check MYSQL DB health or look at the logs for more details."),
+
+ FeHttpLoggingError(EPErrorCodesEnum.FEHTTPLOGGINGERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MINOR,
+ ErrorSeverityEnum.ERROR,
+ "ERR517E", "Error when logging FE HTTP request/response", "",
+ "Please check MYSQL DB health or look at the logs for more details."),
+
+ FePortalServletError(EPErrorCodesEnum.FEPORTALSERVLETERROR, ErrorTypeEnum.SYSTEM_ERROR, AlarmSeverityEnum.MAJOR,
+ ErrorSeverityEnum.ERROR,
+ "ERR518E", "Error when trying to access FE Portal page.", "", "Please check logs for more information."),
+
+ BeDaoCloseSessionError(EPErrorCodesEnum.BEDAOCLOSESESSIONERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR519E", "Close local session operation with database failed", "",
+ "Please check MYSQL DB health or look at the logs form more details."),
+
+ BeRestApiGeneralError(EPErrorCodesEnum.BERESTAPIGENERALERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
+ "ERR900E", "Unexpected error during ECOMP-PORTAL Back-end REST API execution", "",
+ "Please check error log for more information."),
+
+ FeHealthCheckGeneralError(EPErrorCodesEnum.FEHEALTHCHECKGENERALERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.ERROR,
+ "ERR901E", "General error during FE Health Check", "", "Please check error log for more information."),
+
+ InternalUnexpectedInfo(EPErrorCodesEnum.INTERNALUNEXPECTEDINFO_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.INFORMATIONAL, ErrorSeverityEnum.INFO,
+ "ERR999I", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
+
+ InternalUnexpectedWarning(EPErrorCodesEnum.INTERNALUNEXPECTEDWARNING_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.MINOR, ErrorSeverityEnum.WARN,
+ "ERR999W", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
+
+ InternalUnexpectedError(EPErrorCodesEnum.INTERNALUNEXPECTEDERROR_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR999E", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
+
+ InternalUnexpectedFatal(EPErrorCodesEnum.INTERNALUNEXPECTEDFATAL_ONE_ARGUMENT, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.CRITICAL, ErrorSeverityEnum.FATAL,
+ "ERR999F", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
+
+ ExternalAuthAccessConnectionError(EPErrorCodesEnum.EXTERNALAUTHACCESS_CONNECTIONERROR,
+ ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR220E", "AAF Connection problem", "Details: {0}.", "Please check logs for more information."),
+
+ ExternalAuthAccessAuthenticationError(EPErrorCodesEnum.EXTERNALAUTHACCESS_AUTHENTICATIONERROR,
+ ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR120E", "AAF authentication problem", "Details: {0}.", "Please check logs for more information."),
+
+ ExternalAuthAccessGeneralError(EPErrorCodesEnum.EXTERNALAUTHACCESS_GENERALERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR520E", "Unexpected error", "Details: {0}.", "Please check logs for more information."),
+
+ SchedulerAccessConnectionError(EPErrorCodesEnum.SCHEDULER_ACCESS_CONNECTIONERROR,
+ ErrorTypeEnum.CONNECTION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR240E", "Scheduler Connection problem", "Details: {0}.", "Please check logs for more information."),
+
+ SchedulerAuxAccessAuthenticationError(EPErrorCodesEnum.SCHEDULERAUX_ACCESS_AUTHENTICATIONERROR,
+ ErrorTypeEnum.AUTHENTICATION_PROBLEM, AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR140E", "SchedulerAux authentication problem", "Details: {0}.",
+ "Please check logs for more information."),
+
+ SchedulerAccessGeneralError(EPErrorCodesEnum.SCHEDULER_ACCESS_GENERALERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR540E", "Unexpected Scheduler error", "Details: {0}.", "Please check logs for more information."),
+
+ SchedulerInvalidAttributeError(EPErrorCodesEnum.SCHEDULER_INVALID_ATTRIBUTEERROR, ErrorTypeEnum.SYSTEM_ERROR,
+ AlarmSeverityEnum.MAJOR, ErrorSeverityEnum.ERROR,
+ "ERR515E", "Unable to create Scheduler", "Details: {0}.", "Please check logs for more information."),
+
+ ;
+
+ ErrorTypeEnum eType;
+ AlarmSeverityEnum alarmSeverity;
+ EPErrorCodesEnum messageCode;
+ ErrorSeverityEnum errorSeverity;
+ String errorCode;
+ String errorDescription;
+ String details;
+ String resolution;
+
+ EPAppMessagesEnum(EPErrorCodesEnum messageCode, ErrorTypeEnum eType, AlarmSeverityEnum alarmSeverity,
+ ErrorSeverityEnum errorSeverity, String errorCode, String errorDescription,
+ String details, String resolution) {
+ this.messageCode = messageCode;
+ this.eType = eType;
+ this.alarmSeverity = alarmSeverity;
+ this.errorSeverity = errorSeverity;
+ this.errorCode = errorCode;
+ this.errorDescription = errorDescription;
+ this.details = details;
+ this.resolution = resolution;
+ }
+
+ public String getDetails() {
+ return this.details;
+ }
+
+ public String getResolution() {
+ return this.resolution;
+ }
+
+ public String getErrorCode() {
+ return this.errorCode;
+ }
+
+ public String getErrorDescription() {
+ return this.errorDescription;
+ }
+
+ public ErrorSeverityEnum getErrorSeverity() {
+ return this.errorSeverity;
+ }
+
+
+ public EPErrorCodesEnum getMessageCode() {
+ return messageCode;
+ }
+
+
+ public AlarmSeverityEnum getAlarmSeverity() {
+ return alarmSeverity;
+ }
+
+
+ public ErrorTypeEnum getErrorType() {
+ return eType;
+ }
+
}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import javax.persistence.EntityManager;
+import org.onap.portal.domain.db.fn.FnRole;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.domain.db.fn.FnUserRole;
+import org.onap.portal.domain.dto.ecomp.UserRole;
+import org.onap.portal.logging.format.EPAppMessagesEnum;
+import org.onap.portal.logging.logic.EPLogUtil;
+import org.onap.portal.service.fn.FnUserService;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class AdminRolesService {
+
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AdminRolesService.class);
+
+ private final Long SYS_ADMIN_ROLE_ID = 1L;
+ private final Long ACCOUNT_ADMIN_ROLE_ID = 999L;
+ private final Long ECOMP_APP_ID = 1L;
+ private final String ADMIN_ACCOUNT= "Is account admin for user {}";
+
+ private final EntityManager entityManager;
+ private final FnUserService fnUserService;
+
+ @Autowired
+ public AdminRolesService(final EntityManager entityManager,
+ FnUserService fnUserService) {
+ this.entityManager = entityManager;
+ this.fnUserService = fnUserService;
+ }
+
+ public boolean isSuperAdmin(FnUser user) {
+ if ((user != null) && (user.getOrgUserId() != null)) {
+ String sql = "SELECT user.USER_ID, user.org_user_id, userrole.ROLE_ID, userrole.APP_ID FROM fn_user_role userrole "
+ + "INNER JOIN fn_user user ON user.USER_ID = userrole.USER_ID " + "WHERE user.org_user_id = '"
+ + user.getOrgUserId() + "' " + "AND userrole.ROLE_ID = '" + SYS_ADMIN_ROLE_ID + "' "
+ + "AND userrole.APP_ID = '" + ECOMP_APP_ID + "';";
+ try {
+ List userRoleList = entityManager.createNativeQuery(sql, UserRole.class).getResultList();
+ if (userRoleList != null && userRoleList.size() > 0) {
+ return true;
+ }
+ } catch (Exception e) {
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e);
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "Exception occurred while executing isSuperAdmin operation", e);
+ }
+ }
+ return false;
+ }
+
+ public boolean isAccountAdmin(FnUser user) {
+ try {
+ final Map<String, Long> userParams = new HashMap<>();
+ userParams.put("userId", user.getId());
+ logger.debug(EELFLoggerDelegate.debugLogger, ADMIN_ACCOUNT, user.getId());
+ List<Integer> userAdminApps;
+ String query = "select fa.app_id from fn_user_role ur,fn_app fa where ur.user_id =:userId and ur.app_id=fa.app_id and ur.role_id= 999 and (fa.enabled = 'Y' || fa.app_id=1)";
+ userAdminApps = entityManager.createQuery(query, Integer.class).setParameter("userId", user.getId()).getResultList();
+ logger.debug(EELFLoggerDelegate.debugLogger, "Is account admin for userAdminApps() - for user {}, found userAdminAppsSize {}", user.getOrgUserId(), userAdminApps.size());
+
+
+ if (user.getId() != null) {
+ for (FnUserRole userApp : user.getFnUserRoles()) {
+ if (userApp.getRoleId().getId().equals(ACCOUNT_ADMIN_ROLE_ID)||(userAdminApps.size()>1)) {
+ logger.debug(EELFLoggerDelegate.debugLogger, "Is account admin for userAdminApps() - for user {}, found Id {}", user.getOrgUserId(), userApp.getRoleId().getId());
+ return true;
+ }
+ }
+ }
+ } catch (Exception e) {
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e);
+ logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while executing isAccountAdmin operation",
+ e);
+ }
+ return false;
+ }
+
+ public boolean isUser(FnUser user) {
+ try {
+ FnUser currentUser = fnUserService.getUser(user.getId()).orElseThrow(Exception::new);
+ if (currentUser != null && currentUser.getId() != null) {
+ for (FnUserRole userApp : currentUser.getFnUserRoles()) {
+ if (!userApp.getAppId().getId().equals(ECOMP_APP_ID)) {
+ FnRole role = userApp.getRoleId();
+ if (!role.getId().equals(SYS_ADMIN_ROLE_ID) && !role.getId().equals(ACCOUNT_ADMIN_ROLE_ID)) {
+ if (role.getActiveYn()) {
+ return true;
+ }
+ }
+ }
+ }
+ }
+ } catch (Exception e) {
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoSystemError, e);
+ logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while executing isUser operation", e);
+ }
+ return false;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+import org.onap.portal.dao.ep.EpPersUserWidgetSelDao;
+import org.onap.portal.dao.fn.EpWidgetCatalogDao;
+import org.onap.portal.domain.db.ep.EpPersUserWidgetSel;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.domain.dto.ecomp.PersUserWidgetSelection;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class PersUserWidgetService {
+
+ private final EpPersUserWidgetSelDao epPersUserWidgetSelDao;
+ private final EpWidgetCatalogDao epWidgetCatalogDao;
+
+ @Autowired
+ public PersUserWidgetService(final EpPersUserWidgetSelDao epPersUserWidgetSelDao,
+ final EpWidgetCatalogDao epWidgetCatalogDao) {
+ this.epPersUserWidgetSelDao = epPersUserWidgetSelDao;
+ this.epWidgetCatalogDao = epWidgetCatalogDao;
+ }
+
+ public void setPersUserAppValue(FnUser user, Long widgetId, Boolean select) {
+ if (user == null || widgetId == null) {
+ throw new IllegalArgumentException("setPersUserAppValue: Null values");
+ }
+
+ List<PersUserWidgetSelection> persList = getUserWidgetSelction(user, widgetId);
+ // Key constraint limits to 1 row
+ PersUserWidgetSelection persRow = null;
+ if (persList.size() == 1) {
+ persRow = persList.get(0);
+ } else {
+ persRow = new PersUserWidgetSelection(null, user.getId(), widgetId, null);
+ }
+ if (select) {
+ if (persRow.getId() != null) {
+ epPersUserWidgetSelDao.deleteById(persRow.getId());
+ }
+ persRow.setStatusCode("S"); // show
+ EpPersUserWidgetSel epPersUserWidgetSel = new EpPersUserWidgetSel();
+ epPersUserWidgetSel.setUserId(user);
+ epPersUserWidgetSel.setWidgetId(epWidgetCatalogDao.findById(widgetId).get());
+ epPersUserWidgetSelDao.saveAndFlush(epPersUserWidgetSel);
+ } else {
+ if (persRow.getId() != null) {
+ epPersUserWidgetSelDao.deleteById(persRow.getId());
+ }
+ persRow.setStatusCode("H"); // Hide
+ EpPersUserWidgetSel epPersUserWidgetSel = new EpPersUserWidgetSel();
+ epPersUserWidgetSel.setUserId(user);
+ epPersUserWidgetSel.setWidgetId(epWidgetCatalogDao.findById(widgetId).get());
+ epPersUserWidgetSelDao.saveAndFlush(epPersUserWidgetSel);
+ }
+ }
+
+ private List<PersUserWidgetSelection> getUserWidgetSelction(FnUser user, Long widgetId) {
+ return epPersUserWidgetSelDao.getEpPersUserWidgetSelForUserIdAndWidgetId(user.getId(), widgetId)
+ .orElse(new ArrayList<>()).stream().map(
+ this::epPersUserWidgetSelToPersUserWidgetSelection).collect(Collectors.toList());
+ }
+
+ private PersUserWidgetSelection epPersUserWidgetSelToPersUserWidgetSelection(EpPersUserWidgetSel widgetSel) {
+ return new PersUserWidgetSelection(widgetSel.getId(), widgetSel.getUserId().getId(),
+ widgetSel.getWidgetId().getWidgetId(), widgetSel.getStatusCd());
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.service;
+
+import org.onap.portal.utils.EcompPortalUtils;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.stereotype.Service;
+
+@Service
+public class WidgetMService {
+
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetMService.class);
+
+ public String getServiceLocation(String service, String fallbackPortOnLocalHost) {
+ logger.debug(EELFLoggerDelegate.debugLogger, "Requested Service: " + service);
+ String localFallbackServiceLocation =
+ EcompPortalUtils.localOrDockerHost() + ":" + fallbackPortOnLocalHost;
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "returned service location: " + localFallbackServiceLocation);
+ return localFallbackServiceLocation;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.service;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.persistence.EntityManager;
+import javax.servlet.http.HttpServletResponse;
+import org.onap.portal.dao.fn.FnWidgetDao;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.domain.db.fn.FnWidget;
+import org.onap.portal.domain.dto.ecomp.EPUserApp;
+import org.onap.portal.domain.dto.ecomp.Widget;
+import org.onap.portal.domain.dto.transport.FieldsValidator;
+import org.onap.portal.domain.dto.transport.OnboardingWidget;
+import org.onap.portal.utils.EPCommonSystemProperties;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+@Service
+public class WidgetService {
+
+ private final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(WidgetService.class);
+ private final Long LONG_ECOMP_APP_ID = 1L;
+ private final Long ACCOUNT_ADMIN_ROLE_ID = 999L;
+
+ private static String baseSqlToken =
+ " new org.onap.portal.domain.dto.transport.OnboardingWidget("
+ + "widget.WIDGET_ID,widget.WDG_NAME,widget.APP_ID,"
+ + "app.APP_NAME,widget.WDG_WIDTH,widget.WDG_HEIGHT,"
+ + "widget.WDG_URL) widget.WIDGET_ID,widget.WDG_NAME,widget.APP_ID,app.APP_NAME,widget.WDG_WIDTH,widget.WDG_HEIGHT,widget.WDG_URL from FN_WIDGET widget join FN_APP app ON widget.APP_ID = app.APP_ID";
+
+ private static final String urlField = "url";
+ private static final Long DUBLICATED_FIELD_VALUE_ECOMP_ERROR = new Long(
+ EPCommonSystemProperties.DUBLICATED_FIELD_VALUE_ECOMP_ERROR);
+ private static final String nameField = "name";
+
+ private final AdminRolesService adminRolesService;
+ private final EntityManager entityManager;
+ private final FnWidgetDao fnWidgetDao;
+
+ @Autowired
+ public WidgetService(final AdminRolesService adminRolesService, final EntityManager entityManager,
+ final FnWidgetDao fnWidgetDao) {
+ this.adminRolesService = adminRolesService;
+ this.entityManager = entityManager;
+ this.fnWidgetDao = fnWidgetDao;
+ }
+
+ private static final Object syncRests = new Object();
+
+ public List<OnboardingWidget> getOnboardingWidgets(FnUser user, boolean managed) {
+ if (adminRolesService.isSuperAdmin(user)) {
+ return entityManager.createQuery(sqlWidgetsForAllApps(), OnboardingWidget.class).getResultList();
+ } else if (managed) {
+ if (adminRolesService.isAccountAdmin(user)) {
+ return entityManager
+ .createQuery(sqlWidgetsForAllAppsWhereUserIsAdmin(), OnboardingWidget.class)
+ .setParameter("USERID", user.getId()).getResultList();
+ }
+ } else if (adminRolesService.isAccountAdmin(user) || adminRolesService.isUser(user)) {
+ return entityManager
+ .createQuery(sqlWidgetsForAllAppsWhereUserHasAnyRole(), OnboardingWidget.class)
+ .setParameter("USERID", user.getId()).getResultList();
+ }
+ return new ArrayList<>();
+ }
+
+ private String sqlWidgetsForAllApps() {
+ return "SELECT" + baseSqlToken;
+ }
+
+ private String sqlWidgetsForAllAppsWhereUserIsAdmin() {
+ return "SELECT" + baseSqlToken
+ + " join FN_USER_ROLE ON FN_USER_ROLE.APP_ID = app.APP_ID where FN_USER_ROLE.USER_ID = :USERID AND FN_USER_ROLE.ROLE_ID = "
+ + ACCOUNT_ADMIN_ROLE_ID;
+ }
+
+ private String sqlWidgetsForAllAppsWhereUserHasAnyRole() {
+ return "SELECT DISTINCT" + baseSqlToken
+ + " join FN_USER_ROLE ON FN_USER_ROLE.APP_ID = app.APP_ID where FN_USER_ROLE.USER_ID = "
+ + ":USERID";
+ }
+
+ public FieldsValidator setOnboardingWidget(FnUser user, OnboardingWidget onboardingWidget) {
+ if (onboardingWidget.getAppName().isEmpty() || onboardingWidget.getUrl().isEmpty()
+ || onboardingWidget.getAppId() == null
+ || onboardingWidget.getAppId().equals(LONG_ECOMP_APP_ID) || onboardingWidget.getWidth() <= 0 ||
+ onboardingWidget.getHeight() <= 0) {
+ FieldsValidator fieldsValidator = new FieldsValidator();
+ fieldsValidator.setHttpStatusCode((long) HttpServletResponse.SC_BAD_REQUEST);
+ return fieldsValidator;
+ }
+ return this.updateOrSaveWidget(adminRolesService.isSuperAdmin(user), user.getId(), onboardingWidget);
+ }
+
+ private FieldsValidator updateOrSaveWidget(boolean superAdmin, Long userId, OnboardingWidget onboardingWidget) {
+ FieldsValidator fieldsValidator = new FieldsValidator();
+ if (!this.isUserAdminOfAppForWidget(superAdmin, userId, onboardingWidget.getAppId())) {
+ fieldsValidator.setHttpStatusCode((long) HttpServletResponse.SC_FORBIDDEN);
+ return fieldsValidator;
+ }
+ synchronized (syncRests) {
+ if (onboardingWidget.getId() == null) {
+ this.validateOnboardingWidget(onboardingWidget, fieldsValidator);
+ } else {
+ FnWidget widget = fnWidgetDao.getOne(onboardingWidget.getId());
+ if (widget == null || widget.getAppId() == null) {
+ fieldsValidator.setHttpStatusCode((long) HttpServletResponse.SC_NOT_FOUND);
+ return fieldsValidator;
+ }
+ this.validateOnboardingWidget(onboardingWidget, fieldsValidator);
+ }
+ if (fieldsValidator.getHttpStatusCode() == HttpServletResponse.SC_OK) {
+ this.applyOnboardingWidget(onboardingWidget, fieldsValidator);
+ }
+ }
+ return fieldsValidator;
+ }
+
+ private boolean isUserAdminOfAppForWidget(boolean superAdmin, Long userId, Long appId) {
+ if (!superAdmin) {
+ List<EPUserApp> userRoles = getAdminUserRoles(userId, appId);
+ return (userRoles.size() > 0);
+ }
+ return true;
+ }
+
+ private List<EPUserApp> getAdminUserRoles(Long userId, Long appId) {
+ return entityManager.createQuery(
+ "SELECT new org.onap.portal.domain.dto.ecomp.EPUserApp(fn.userId, fn.roleId, fn.appId) FROM FnUserRole fn"
+ + "WHERE fn.userId = :USERID "
+ + "AND fn.roleId = :ROLEID "
+ + "AND fn.appId = :APPID", EPUserApp.class)
+ .setParameter("USERID", userId)
+ .setParameter("ROLEID", ACCOUNT_ADMIN_ROLE_ID)
+ .setParameter("APPID", appId)
+ .getResultList();
+ }
+
+ @Transactional
+ private void applyOnboardingWidget(OnboardingWidget onboardingWidget, FieldsValidator fieldsValidator) {
+ boolean result;
+ FnWidget widget;
+ if (onboardingWidget.getId() == null) {
+ widget = new FnWidget();
+ } else {
+ widget = fnWidgetDao.getOne(onboardingWidget.getId());
+ }
+ widget.setAppId(onboardingWidget.getAppId());
+ widget.setName(onboardingWidget.getName());
+ widget.setWidth(onboardingWidget.getWidth());
+ widget.setHeight(onboardingWidget.getHeight());
+ widget.setUrl(onboardingWidget.getUrl());
+ result = widget.equals(fnWidgetDao.saveAndFlush(widget));
+ if (!result) {
+ fieldsValidator.setHttpStatusCode((long) HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+ }
+
+ private void validateOnboardingWidget(OnboardingWidget onboardingWidget, FieldsValidator fieldsValidator) {
+ List<Widget> widgets = getWidgets(onboardingWidget);
+ boolean dublicatedUrl = false;
+ boolean dublicatedName = false;
+ for (Widget widget : widgets) {
+ if (onboardingWidget.getId() != null && onboardingWidget.getId().equals(widget.getId())) {
+ // widget should not be compared with itself
+ continue;
+ }
+ if (!dublicatedUrl && widget.getUrl().equals(onboardingWidget.getUrl())) {
+ dublicatedUrl = true;
+ if (dublicatedName) {
+ break;
+ }
+ }
+ if (!dublicatedName && widget.getName().equalsIgnoreCase(onboardingWidget.getName()) && widget
+ .getAppId().equals(onboardingWidget.getAppId())) {
+ dublicatedName = true;
+ if (dublicatedUrl) {
+ break;
+ }
+ }
+ }
+ if (dublicatedUrl || dublicatedName) {
+ if (dublicatedUrl) {
+ fieldsValidator.addProblematicFieldName(urlField);
+ }
+ if (dublicatedName) {
+ fieldsValidator.addProblematicFieldName(nameField);
+ }
+ fieldsValidator.setHttpStatusCode((long) HttpServletResponse.SC_CONFLICT);
+ fieldsValidator.setErrorCode(DUBLICATED_FIELD_VALUE_ECOMP_ERROR);
+ }
+ }
+
+ private List<Widget> getWidgets(OnboardingWidget onboardingWidget) {
+ return entityManager.createQuery(
+ "SELECT new org.onap.portal.domain.dto.ecomp.Widget(fn.APP_ID, fn.WDG_NAME, fn.WDG_URL) FROM FnWidget fn"
+ + "WHERE fn.WDG_URL = :WDGURL "
+ + "AND fn.WDG_NAME = :WDGNAME "
+ + "AND fn.APP_ID = :APPID", Widget.class)
+ .setParameter("WDGURL", onboardingWidget.getUrl())
+ .setParameter("WDGNAME", onboardingWidget.getName())
+ .getResultList();
+ }
+
+ @Transactional
+ public FieldsValidator deleteOnboardingWidget(FnUser user, Long onboardingWidgetId) {
+ FieldsValidator fieldsValidator = new FieldsValidator();
+ synchronized (syncRests) {
+ FnWidget widget = fnWidgetDao.getOne(onboardingWidgetId);
+ if (widget != null && widget.getAppId() != null) { // widget exists
+ if (!this.isUserAdminOfAppForWidget(adminRolesService.isSuperAdmin(user), user.getId(),
+ widget.getAppId())) {
+ fieldsValidator.setHttpStatusCode((long) HttpServletResponse.SC_FORBIDDEN);
+ } else {
+ fnWidgetDao.deleteById(onboardingWidgetId);
+ fieldsValidator.setHttpStatusCode(
+ (long) HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+ }
+ }
+ }
+ return fieldsValidator;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.service.ep;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+import org.hibernate.criterion.Criterion;
+import org.hibernate.criterion.Restrictions;
+import org.onap.portal.dao.ep.EpMicroserviceParameterDao;
+import org.onap.portal.domain.db.ep.EpMicroserviceParameter;
+import org.onap.portal.domain.dto.ecomp.MicroserviceParameter;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class EpMicroserviceParameterService {
+
+ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EpWidgetCatalogParameterService.class);
+
+ private final EpMicroserviceParameterDao epMicroserviceParameterDao;
+
+ @Autowired
+ public EpMicroserviceParameterService(
+ final EpMicroserviceParameterDao epMicroserviceParameterDao) {
+ this.epMicroserviceParameterDao = epMicroserviceParameterDao;
+ }
+
+ public List<MicroserviceParameter> getParametersById(long serviceId) {
+ List<Criterion> restrictionsList = new ArrayList<>();
+ Criterion contextIdCrit = Restrictions.eq("serviceId", serviceId);
+ restrictionsList.add(contextIdCrit);
+ List<MicroserviceParameter> list = mapToMicroserviceParameterList(epMicroserviceParameterDao.getParametersById(serviceId));
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "getParametersById: microservice parameters list size: " + list.size());
+ return list;
+ }
+
+ private MicroserviceParameter epWidgetCatalogParameterToMicroserviceParameter(
+ final EpMicroserviceParameter microservice) {
+ return new MicroserviceParameter(microservice.getId(), microservice.getServiceId().getId(),
+ microservice.getParaKey(), microservice.getParaValue());
+ }
+
+ private List<MicroserviceParameter> mapToMicroserviceParameterList(final List<EpMicroserviceParameter> list){
+ return list.stream().map(this::epWidgetCatalogParameterToMicroserviceParameter).collect(Collectors.toList());
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.service.ep;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+import org.onap.portal.dao.ep.EpMicroserviceParameterDao;
+import org.onap.portal.dao.ep.EpWidgetCatalogParameterDao;
+import org.onap.portal.dao.fn.EpWidgetCatalogDao;
+import org.onap.portal.dao.fn.FnUserDao;
+import org.onap.portal.domain.db.ep.EpWidgetCatalogParameter;
+import org.onap.portal.domain.dto.ecomp.WidgetCatalogParameter;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class EpWidgetCatalogParameterService {
+
+ EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EpWidgetCatalogParameterService.class);
+
+ private final EpWidgetCatalogParameterDao epWidgetCatalogParameterDao;
+ private final EpMicroserviceParameterDao epMicroserviceParameterDao;
+ private final EpWidgetCatalogDao epWidgetCatalogDao;
+ private final FnUserDao fnUserDao;
+
+ @Autowired
+ public EpWidgetCatalogParameterService(
+ final EpWidgetCatalogParameterDao epWidgetCatalogParameterDao,
+ final EpMicroserviceParameterDao epMicroserviceParameterDao,
+ EpWidgetCatalogDao epWidgetCatalogDao, FnUserDao fnUserDao) {
+ this.epWidgetCatalogParameterDao = epWidgetCatalogParameterDao;
+ this.epMicroserviceParameterDao = epMicroserviceParameterDao;
+ this.epWidgetCatalogDao = epWidgetCatalogDao;
+ this.fnUserDao = fnUserDao;
+ }
+
+ public List<WidgetCatalogParameter> getUserParameterById(Long paramId) {
+ return mapEpWidgetListToWidgetList(
+ epWidgetCatalogParameterDao.retrieveByParamId(paramId).orElse(new ArrayList<>()));
+ }
+
+ public void deleteUserParameterById(Long paramId) {
+ epWidgetCatalogParameterDao.deleteWidgetCatalogParameter(paramId);
+ epMicroserviceParameterDao.deleteMicroserviceParameterById(paramId);
+ }
+
+ public WidgetCatalogParameter getUserParamById(Long widgetId, Long userId, Long paramId) {
+ WidgetCatalogParameter widgetParam = null;
+ List<WidgetCatalogParameter> list = mapEpWidgetListToWidgetList(
+ epWidgetCatalogParameterDao.getUserParamById(widgetId, userId, paramId)
+ .orElse(new ArrayList<>()));
+ if (list.size() != 0) {
+ widgetParam = list.get(0);
+ }
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "getUserParamById: widget parameters: " + widgetParam);
+ return widgetParam;
+ }
+
+ public void saveUserParameter(WidgetCatalogParameter newParameter) {
+ epWidgetCatalogParameterDao.saveAndFlush(mapToEpWidgetCatalogParameter(newParameter));
+ }
+
+ private EpWidgetCatalogParameter mapToEpWidgetCatalogParameter(WidgetCatalogParameter wcp){
+
+ return new EpWidgetCatalogParameter(wcp.getId(), epWidgetCatalogDao.findById(wcp.getWidgetId()).get(),
+ fnUserDao.findById(wcp.getUserId()).get(),
+ epMicroserviceParameterDao.findById(wcp.getParamId()).get(),
+ wcp.getUserValue());
+ }
+
+ private List<EpWidgetCatalogParameter> mapToList(List<WidgetCatalogParameter> list){
+ return list.stream().map(this::mapToEpWidgetCatalogParameter).collect(Collectors.toList());
+ }
+
+ private WidgetCatalogParameter mapEpWidgetCatalogParametertoWidgetCatalogParameter(
+ EpWidgetCatalogParameter ewcp) {
+ return new WidgetCatalogParameter(ewcp.getId(), ewcp.getWidgetId().getWidgetId(),
+ ewcp.getUserId().getId(), ewcp.getParamId().getId(), ewcp.getUserValue());
+ }
+
+ private List<WidgetCatalogParameter> mapEpWidgetListToWidgetList(
+ List<EpWidgetCatalogParameter> epWidgetCatalogParameters) {
+ return epWidgetCatalogParameters.stream().map(this::mapEpWidgetCatalogParametertoWidgetCatalogParameter)
+ .collect(Collectors.toList());
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.service.fn;
+
+import java.util.List;
+import org.onap.portal.dao.fn.FnAppDao;
+import org.onap.portal.domain.db.fn.FnApp;
+import org.onap.portal.domain.dto.transport.OnboardingApp;
+import org.onap.portal.utils.EPCommonSystemProperties;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.onap.portalsdk.core.onboarding.util.CipherUtil;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class FnAppService {
+
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(FnAppService.class);
+
+ private final FnAppDao fnAppDao;
+
+ @Autowired
+ public FnAppService(final FnAppDao fnAppDao) {
+ this.fnAppDao = fnAppDao;
+ }
+
+ public List<FnApp> getAppsFullList() {
+ return fnAppDao.findAll();
+ }
+
+ public void createOnboardingFromApp(FnApp app, OnboardingApp onboardingApp) {
+ onboardingApp.setId(app.getId());
+ onboardingApp.setName(app.getAppName());
+ onboardingApp.setImageUrl(app.getAppImageUrl());
+ onboardingApp.setDescription(app.getAppDescription());
+ onboardingApp.setNotes(app.getAppNotes());
+ onboardingApp.setUrl(app.getAppUrl());
+ onboardingApp.setAlternateUrl(app.getAppAlternateUrl());
+ onboardingApp.setRestUrl(app.getAppRestEndpoint());
+ onboardingApp.setIsOpen(app.getOpen());
+ onboardingApp.setIsEnabled(app.getEnabled());
+ onboardingApp.setUsername(app.getAppUsername());
+ onboardingApp.setAppPassword((app.getAppPassword().equals(EPCommonSystemProperties.APP_DISPLAY_PASSWORD))
+ ? EPCommonSystemProperties.APP_DISPLAY_PASSWORD : decryptedPassword(app.getAppPassword(), app));
+ onboardingApp.setUebTopicName(app.getUebTopicName());
+ onboardingApp.setUebKey(app.getUebKey());
+ onboardingApp.setUebSecret(app.getUebSecret());
+ onboardingApp.setIsCentralAuth(app.getAuthCentral());
+ onboardingApp.setNameSpace(app.getAuthNamespace());
+ onboardingApp.setRestrictedApp(app.isRestrictedApp());
+ }
+
+ private String decryptedPassword(String encryptedAppPwd, FnApp app) {
+ String result = "";
+ if (encryptedAppPwd != null && !encryptedAppPwd.isEmpty()) {
+ try {
+ result = CipherUtil.decryptPKC(encryptedAppPwd,
+ SystemProperties.getProperty(SystemProperties.Decryption_Key));
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "decryptedPassword failed for app " + app.getAppName(), e);
+ }
+ }
+ return result;
+ }
+}
import java.util.ArrayList;
import java.util.List;
import java.util.Optional;
-import java.util.stream.Collectors;
import org.onap.portal.dao.fn.FnUserDao;
import org.onap.portal.domain.db.fn.FnUser;
import org.springframework.beans.factory.annotation.Autowired;
}
List<FnUser> getUsersByOrgIds(final List<String> orgIds){
- String ids = "(" + orgIds.stream().map(s -> "'" + s + "'").collect(Collectors.joining()) + ")";
return fnUserDao.getUsersByOrgIds(orgIds).orElse(new ArrayList<>());
}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.service.fn.old;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import javax.annotation.PostConstruct;
+import org.onap.portal.domain.db.fn.FnApp;
+import org.onap.portal.domain.dto.transport.OnboardingApp;
+import org.onap.portal.service.fn.FnAppService;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.stereotype.Service;
+
+@Service("appsCacheService")
+@Configuration
+@EnableAspectJAutoProxy
+public class AppsCacheService {
+ @Autowired
+ private
+ FnAppService appsService;
+
+ private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(AppsCacheService.class);
+
+ final class CacheConfiguration {
+
+ private long updateTime = 0;
+ private int updateInterval = 10;
+
+ public CacheConfiguration (long _updateTime, int _updateInterval) {
+ updateTime = _updateTime;
+ updateInterval = _updateInterval;
+ }
+ }
+
+ private CacheConfiguration quickRefreshCacheConf = null;
+ private CacheConfiguration slowRefreshCacheConf = null;
+
+
+ private static volatile Map<Long, FnApp> appsMap;
+ private static volatile Map<String, FnApp> uebAppsMap;
+
+ @PostConstruct
+ public void init() {
+ quickRefreshCacheConf = new CacheConfiguration(0, 120);
+ slowRefreshCacheConf = new CacheConfiguration(0, 3600);
+
+ this.refreshAppsMap(quickRefreshCacheConf);
+ }
+
+ private void refreshAppsMap(CacheConfiguration conf) {
+ long now = System.currentTimeMillis();
+
+ if(noNeedToUpdate(now, conf))
+ return;
+
+ synchronized (this) {
+ if(noNeedToUpdate(now, conf))
+ return;
+ List<FnApp> allApps = appsService.getAppsFullList();
+ Map<Long, FnApp> newAppsMap = new HashMap<>();
+ for (FnApp app : allApps) {
+ newAppsMap.put(app.getId(), app);
+ }
+
+ Map<String, FnApp> newUebAppsMap = new HashMap<>();
+ for (FnApp app : allApps) {
+ newUebAppsMap.put(app.getUebKey(), app);
+ }
+ // Switch cache with the new one.
+ appsMap = newAppsMap;
+ uebAppsMap = newUebAppsMap;
+ conf.updateTime = now;
+ }
+
+ }
+
+ private boolean noNeedToUpdate(long now, CacheConfiguration conf) {
+ long secondsPassed = (now - conf.updateTime)/1000;
+ if(secondsPassed < conf.updateInterval){
+ logger.debug(EELFLoggerDelegate.debugLogger, "no need to refresh yet, seconds since last refresh: " + secondsPassed + ", refresh interval (sec) = " + conf.updateInterval);
+ return true; // no need to update cache
+ }
+ return false; // its time to update
+ }
+
+ public String getAppEndpoint(Long appId) {
+ refreshAppsMap(quickRefreshCacheConf);
+ FnApp app = appsMap.get(appId);
+ if(app != null)
+ return app.getAppRestEndpoint();
+ return null;
+ }
+
+ public List<OnboardingApp> getAppsFullList() {
+ refreshAppsMap(quickRefreshCacheConf);
+ List<FnApp> appList = new ArrayList<>(appsMap.values());
+ appList.removeIf(app -> app.getId() == 1);
+ List<FnApp> appsFinalList = appList.stream()
+ .filter(app -> app.getEnabled() && !app.getOpen()).collect(Collectors.toList());
+
+ List<OnboardingApp> onboardingAppsList = new ArrayList<>();
+ for (FnApp app : appsFinalList) {
+ OnboardingApp onboardingApp = new OnboardingApp();
+ appsService.createOnboardingFromApp(app, onboardingApp);
+ onboardingAppsList.add(onboardingApp);
+ }
+ return onboardingAppsList;
+ }
+
+ public FnApp getApp(Long appId) {
+ refreshAppsMap(quickRefreshCacheConf);
+ FnApp app = appsMap.get(appId);
+ return app;
+ }
+
+ public FnApp getAppFromUeb(String appKey) {
+ return getAppFromUeb(appKey,0);
+ }
+
+ public FnApp getAppFromUeb(String appKey, Integer quickCacheRefresh) {
+ refreshAppsMap(quickCacheRefresh == 1 ? quickRefreshCacheConf:slowRefreshCacheConf);
+ FnApp app = uebAppsMap.get(appKey);
+ return app;
+ }
+
+}
--- /dev/null
+/*-
+ * ============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============================================
+ *
+ *
+ */
+package org.onap.portal.service.fn.old;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import org.onap.portal.domain.db.fn.FnRole;
+import org.onap.portal.domain.db.fn.FnRoleFunction;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.utils.EPUserUtils;
+import org.onap.portalsdk.core.domain.RoleFunction;
+import org.onap.portalsdk.core.service.DataAccessService;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+
+@Transactional
+public class EPRoleFunctionService {
+ @Autowired
+ private DataAccessService dataAccessService;
+
+
+
+ public DataAccessService getDataAccessService() {
+ return dataAccessService;
+ }
+
+ public void setDataAccessService(DataAccessService dataAccessService) {
+ this.dataAccessService = dataAccessService;
+ }
+
+ @SuppressWarnings("unchecked")
+ public List<RoleFunction> getRoleFunctions() {
+ return getDataAccessService().getList(RoleFunction.class, null);
+ }
+
+ @SuppressWarnings("unchecked")
+ public Set getRoleFunctions(HttpServletRequest request, FnUser user) {
+ HashSet roleFunctions = null;
+
+ HttpSession session = request.getSession();
+ roleFunctions = (HashSet) session
+ .getAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME));
+
+ if (roleFunctions == null) {
+ HashMap roles = (HashMap) EPUserUtils.getRoles(request);
+ roleFunctions = new HashSet();
+
+ for (Object o : roles.keySet()) {
+ Long roleKey = (Long) o;
+ FnRole role = (FnRole) roles.get(roleKey);
+
+ for (FnRoleFunction fnRoleFunction : role.getFnRoleFunctions()) {
+ FnRoleFunction function = fnRoleFunction;
+ roleFunctions.add(function.getFunctionCd());
+ }
+ }
+
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME),
+ roleFunctions);
+ }
+
+ return roleFunctions;
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.utils;
+
+import org.onap.portalsdk.core.util.SystemProperties;
+
+public class EPCommonSystemProperties extends SystemProperties {
+
+ public static final String LOGIN_URL_NO_RET_VAL = "login_url_no_ret_val";
+ public static final String ECOMP_APP_ID = "ecomp_app_id";
+ public static final String SYS_ADMIN_ROLE_ID = "sys_admin_role_id";
+ public static final String DUBLICATED_FIELD_VALUE_ECOMP_ERROR = "1201";
+ public static final String ACCOUNT_ADMIN_ROLE_ID = "account_admin_role_id";
+ public static final String RESTRICTED_APP_ROLE_ID = "restricted_app_role_id";
+ public static final String FE_URL = "frontend_url";
+ public static final String HEALTH_POLL_INTERVAL_SECONDS = "health_poll_interval_seconds";
+ public static final String HEALTHFAIL_ALERT_EVERY_X_INTERVALS = "health_fail_alert_every_x_intervals";
+ public static final String USER_GUIDE_URL = "user_guide_link";
+
+ public static final String USER_FIRST_NAME = "USER_FIRST_NAME";
+ public static final String USER_LAST_NAME = "USER_LAST_NAME";
+ public static final String USER_EMAIL = "USER_EMAIL";
+ public static final String USER_ORG_USERID = "USER_ORG_USERID";
+
+ public static final String USH_TICKET_URL = "ush_ticket_url";
+
+ public static final String EXTERNAL_API_RESPONSE_CODE = "External_API_ResponseCode";
+ public static final String COOKIE_DOMAIN = "cookie_domain";
+
+ public static final String FEEDBACK_EMAIL_ADDRESS = "feedback_email_address";
+ public static final String PORTAL_INFO_URL = "portal_info_url";
+
+ public static final String ONLINE_USER_UPDATE_RATE = "online_user_update_rate";
+ public static final String ONLINE_USER_UPDATE_DURATION = "online_user_update_duration";
+
+ public static final String NOTIFICATION_UPDATE_RATE = "notification_update_rate";
+ public static final String NOTIFICATION_UPDATE_DURATION = "notification_update_duration";
+
+ public static final String WINDOW_WIDTH_THRESHOLD_LEFT_MENU = "window_width_threshold_left_menu";
+ public static final String WINDOW_WIDTH_THRESHOLD_RIGHT_MENU = "window_width_threshold_right_menu";
+
+ public static final String AUDITLOG_DEL_DAY_FROM = "auditlog_del_day_from";
+ public static final String AUDITLOG_DELETE_CRON = "auditlog_delete_cron";
+
+ public static final String AUTH_USER_SERVER = "auth_user_server";
+ public static final String EXTERNAL_ACCESS_ENABLE = "external_access_enable";
+
+ public static final String EXTERNAL_SYSTEM_NOTIFICATION_URL = "external_system_notification_url";
+ public static final String EXTERNAL_CENTRAL_AUTH_USER_NAME = "ext_central_access_user_name";
+ public static final String EXTERNAL_CENTRAL_AUTH_PASSWORD = "ext_central_access_password";
+ public static final String EXTERNAL_CENTRAL_ACCESS_URL = "ext_central_access_url";
+ public static final String EXTERNAL_CENTRAL_ACCESS_USER_DOMAIN = "ext_central_access_user_domain";
+ public static final String REMOTE_CENTRALISED_SYSTEM_ACCESS = "remote_centralized_system_access";
+
+ public static final String WIDGET_MS_PROTOCOL = "microservices.widget.protocol";
+ public static final String WIDGET_MS_HOSTNAME = "microservices.widget.hostname";
+
+ public static final String REMOTE_CENTRALIZED_SYSTEM_ACCESS = "remote_centralized_system_access";
+
+ public static final String APP_DISPLAY_PASSWORD = "*******";
+
+ public static final String MS_WIDGET_LOCAL_PORT = "microservices.widget.local.port";
+ public static final String MS_WIDGET_UPLOAD_FLAG = "microservices.widget.upload.flag";
+ public static final String UEB_KEY = "uebkey";
+ public static final String AUTHORIZATION = "Authorization";
+ public static final String USERNAME = "username";
+ public static final String PASSWORD = "password";
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.utils;
+
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+import java.util.stream.Collectors;
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+import lombok.NoArgsConstructor;
+import org.apache.commons.codec.DecoderException;
+import org.apache.commons.codec.binary.Hex;
+import org.onap.portal.domain.db.fn.FnRole;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.domain.db.fn.FnUserRole;
+import org.onap.portal.exception.RoleFunctionException;
+import org.onap.portal.service.fn.old.EPRoleFunctionService;
+import org.onap.portalsdk.core.domain.RoleFunction;
+import org.onap.portalsdk.core.exception.SessionExpiredException;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.onap.portalsdk.core.menu.MenuBuilder;
+import org.onap.portalsdk.core.service.DataAccessService;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.onap.portalsdk.core.web.support.AppUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+
+@NoArgsConstructor
+public class EPUserUtils {
+
+ public static final String ALL_ROLE_FUNCTIONS = "allRoleFunctions";
+
+ private static final String decodeValueOfForwardSlash = "2f";
+ private static final String decodeValueOfHyphen = "2d";
+ private static final String decodeValueOfAsterisk = "2a";
+ private static final Long ACCOUNT_ADMIN_ROLE_ID = 999L;
+
+ private static final EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EPUserUtils.class);
+ private static DataAccessService dataAccessService;
+
+ /**
+ * Gets the EPUser object from the session.
+ *
+ * @param request HttpServletRequest
+ * @return EPUser object that was created upon login
+ * @throws SessionExpiredException if no session exists.
+ */
+ public static FnUser getUserSession(HttpServletRequest request) {
+ HttpSession session = AppUtils.getSession(request);
+ if (session == null) {
+ throw new SessionExpiredException();
+ }
+ return (FnUser) session.getAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME));
+ }
+
+ /**
+ * Establishes the user's portal session
+ *
+ * @param request HttpServletRequest
+ * @param user EPUser
+ * @param applicationMenuData Menu data
+ * @param businessDirectMenuData Menu data
+ * @param ePRoleFunctionService role function service
+ */
+ @SuppressWarnings("rawtypes")
+ public static void setUserSession(HttpServletRequest request, FnUser user, Set applicationMenuData,
+ Set businessDirectMenuData, EPRoleFunctionService ePRoleFunctionService) throws RoleFunctionException {
+ HttpSession session = request.getSession(true);
+
+ // clear the current user session to avoid any conflicts
+ EPUserUtils.clearUserSession(request);
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME), user);
+
+ setAllRoleFunctions(ePRoleFunctionService.getRoleFunctions(), session);
+
+ ePRoleFunctionService.getRoleFunctions(request, user);
+
+ // truncate the role (and therefore the role function) data to save
+ // memory in the session
+ user.setFnRoles(null);
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.USER_NAME), user.getFullName());
+
+ ServletContext context = session.getServletContext();
+ try {
+ context.getAttribute("licenseVerification");
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "setUserSession failed to get licenseVerification attribute",
+ e);
+ }
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.APP_DISPLAY_NAME), "My Portal");
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME),
+ MenuBuilder.filterMenu(applicationMenuData, request));
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.BUSINESS_DIRECT_MENU_ATTRIBUTE_NAME),
+ MenuBuilder.filterMenu(businessDirectMenuData, request));
+ }
+
+ /**
+ * Creates a set of role function names and stores the set as a session attribute.
+ *
+ * @param allRoleFunctions List of role functions.
+ * @param session HttpSession
+ */
+ private static void setAllRoleFunctions(List<RoleFunction> allRoleFunctions, HttpSession session)
+ throws RoleFunctionException {
+ if (allRoleFunctions == null) {
+ return;
+ }
+ Set<String> roleFnSet = new HashSet<>();
+ for (RoleFunction roleFn : allRoleFunctions) {
+ roleFnSet.add(decodeFunctionCode(roleFn.getCode()));
+ }
+ session.setAttribute(ALL_ROLE_FUNCTIONS, roleFnSet);
+ }
+
+
+ public static String decodeFunctionCode(String str) throws RoleFunctionException {
+ String decodedString = str;
+ List<Pattern> decodingList = new ArrayList<>();
+ decodingList.add(Pattern.compile(decodeValueOfForwardSlash));
+ decodingList.add(Pattern.compile(decodeValueOfHyphen));
+ decodingList.add(Pattern.compile(decodeValueOfAsterisk));
+ for (Pattern xssInputPattern : decodingList) {
+ try {
+ decodedString = decodedString.replaceAll("%" + xssInputPattern,
+ new String(Hex.decodeHex(xssInputPattern.toString().toCharArray())));
+ } catch (DecoderException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "Failed to decode the Rolefunction: " + str,
+ e);
+ throw new RoleFunctionException("decode failed", e);
+ }
+ }
+
+ return decodedString;
+ }
+
+ /**
+ * Removes all stored attributes from the user's session
+ *
+ * @param request HttpServletRequest
+ * @throws SessionExpiredException if no session exists
+ */
+ private static void clearUserSession(HttpServletRequest request) {
+ HttpSession session = AppUtils.getSession(request);
+ if (session == null) {
+ throw new SessionExpiredException();
+ }
+
+ // removes all stored attributes from the current user's session
+ session.removeAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME));
+ session.removeAttribute(SystemProperties.getProperty(SystemProperties.APPLICATION_MENU_ATTRIBUTE_NAME));
+ session.removeAttribute(
+ SystemProperties.getProperty(SystemProperties.BUSINESS_DIRECT_MENU_ATTRIBUTE_NAME));
+ session.removeAttribute(SystemProperties.getProperty(SystemProperties.ROLES_ATTRIBUTE_NAME));
+ session.removeAttribute(SystemProperties.getProperty(SystemProperties.ROLE_FUNCTIONS_ATTRIBUTE_NAME));
+ }
+
+ /**
+ * Gets role information from the user session, in the cached user object. As a side effect sets a session
+ * variable with the roles.
+ *
+ * @param request HttpServletRequest
+ * @return Map of role ID to role object
+ */
+ @SuppressWarnings("rawtypes")
+ public static Map getRoles(HttpServletRequest request) {
+ HashMap roles;
+
+ HttpSession session = AppUtils.getSession(request);
+ roles = (HashMap) session
+ .getAttribute(SystemProperties.getProperty(SystemProperties.ROLES_ATTRIBUTE_NAME));
+
+ // if roles are not already cached, let's grab them from the user
+ // session
+ if (roles == null) {
+ FnUser user = getUserSession(request);
+
+ // get all user roles (including the tree of child roles)
+ roles = getAllUserRoles(user);
+
+ session.setAttribute(SystemProperties.getProperty(SystemProperties.ROLES_ATTRIBUTE_NAME), roles);
+ }
+
+ return roles;
+ }
+
+ /**
+ * Builds a map of role ID to role object.
+ *
+ * @param user EPUser
+ * @return Map of role ID to role object
+ */
+ @SuppressWarnings({"rawtypes", "unchecked"})
+ private static HashMap getAllUserRoles(FnUser user) {
+ HashMap roles = new HashMap();
+
+ for (FnRole role : user.getFnRoles()) {
+ if (role.getActiveYn()) {
+ roles.put(role.getId(), role);
+ addChildRoles(role, roles);
+ }
+ }
+
+ // Additionally; the account admin role is overloaded between onap
+ // portal and partners; lets also include that
+ for (FnUserRole epUserApp : user.getFnUserRoles()) {
+ FnRole role = epUserApp.getRoleId();
+
+ if (role.getActiveYn() && role.getRoleId().equals(ACCOUNT_ADMIN_ROLE_ID)) {
+ roles.put(role.getId(), role);
+
+ // let's take a recursive trip down the tree to add all child
+ // roles
+ addChildRoles(role, roles);
+ }
+ }
+
+ return roles;
+ }
+
+ /**
+ * Adds all child roles of the specified role to the map of roles.
+ *
+ * @param role EPRole
+ * @param roles Maps role id to role object
+ */
+ @SuppressWarnings({"rawtypes", "unchecked"})
+ private static void addChildRoles(FnRole role, HashMap roles) {
+ Set<FnRole> childRoles = role.getFnRoles();
+ if (childRoles != null && !childRoles.isEmpty()) {
+ for (Object o : childRoles) {
+ FnRole childRole = (FnRole) o;
+ if (childRole.getActiveYn()) {
+ roles.put(childRole.getId(), childRole);
+ addChildRoles(childRole, roles);
+ }
+ }
+ }
+
+ }
+
+ public static boolean hasRole(FnUser user, String roleKey) {
+ return getAllUserRoles(user).keySet().contains(new Long(roleKey));
+ }
+
+ public static DataAccessService getDataAccessService() {
+ return dataAccessService;
+ }
+
+ @Autowired
+ public static void setDataAccessService(DataAccessService dataAccessService) {
+ EPUserUtils.dataAccessService = dataAccessService;
+ }
+
+ /**
+ * Gets the user's ID from the user object in the session
+ *
+ * @param request HttpServletRequest
+ * @return Integer ID of current user
+ */
+ public static int getUserId(HttpServletRequest request) {
+ return getUserIdAsLong(request).intValue();
+ }
+
+ /**
+ * Gets the user's ID from the user object in the session
+ *
+ * @param request HttpServletREquest
+ * @return Long ID of current user
+ */
+ static Long getUserIdAsLong(HttpServletRequest request) {
+ Long userId = new Long(SystemProperties.getProperty(SystemProperties.APPLICATION_USER_ID));
+ if (request != null && getUserSession(request) != null) {
+ userId = getUserSession(request).getId();
+ }
+ return userId;
+ }
+
+ /**
+ * Gets the request ID from the request.
+ *
+ * @param request HttpServletRequest
+ * @return Request ID
+ */
+ public static String getRequestId(HttpServletRequest request) {
+ Enumeration<String> headerNames = request.getHeaderNames();
+
+ String requestId = "";
+ try {
+ while (headerNames.hasMoreElements()) {
+ String headerName = headerNames.nextElement();
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ "One header is " + headerName + " : " + request.getHeader(headerName));
+ if (headerName.equalsIgnoreCase(SystemProperties.ECOMP_REQUEST_ID)) {
+ requestId = request.getHeader(headerName);
+ break;
+ }
+ }
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getRequestId failed", e);
+ }
+
+ return (requestId.isEmpty() ? UUID.randomUUID().toString() : requestId);
+ }
+
+ /**
+ * Gets the full URL from the request.
+ *
+ * @param request HttpServletRequest
+ * @return Full URL
+ */
+ static String getFullURL(HttpServletRequest request) {
+ if (request != null) {
+ StringBuffer requestURL = request.getRequestURL();
+ String queryString = request.getQueryString();
+
+ if (queryString == null) {
+ return requestURL.toString();
+ } else {
+ return requestURL.append('?').append(queryString).toString();
+ }
+ }
+ return "";
+ }
+
+ public static Boolean matchRoleFunctions(String portalApiPath, Set<? extends String> roleFunctions) {
+ String[] path = portalApiPath.split("/");
+ List<String> roleFunList;
+ if (path.length > 1) {
+ roleFunList = roleFunctions.stream().filter(item -> item.startsWith(path[0]))
+ .collect(Collectors.toList());
+ if (roleFunList.size() >= 1) {
+ for (String roleFunction : roleFunList) {
+ String[] roleFunctionArray = roleFunction.split("/");
+ boolean b = true;
+ if (roleFunctionArray.length == path.length) {
+ for (int i = 0; i < roleFunctionArray.length; i++) {
+ if (!roleFunctionArray[i].equals("*")) {
+ Pattern p = Pattern.compile(Pattern.quote(path[i]),
+ Pattern.CASE_INSENSITIVE);
+ Matcher m = p.matcher(roleFunctionArray[i]);
+ b = m.matches();
+ }
+ }
+ if (b) {
+ return true;
+ }
+ }
+ }
+ }
+ } else {
+ for (String roleFunction : roleFunctions) {
+ if (roleFunction.equals(("*"))) {
+ return true;
+ } else if (portalApiPath.matches(roleFunction)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.utils;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import java.io.IOException;
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.nio.charset.Charset;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Base64;
+import java.util.Date;
+import java.util.List;
+import java.util.regex.Pattern;
+import javax.servlet.http.HttpServletResponse;
+import javax.xml.bind.DatatypeConverter;
+import org.apache.commons.codec.binary.Hex;
+import org.apache.commons.lang.StringUtils;
+import org.hibernate.Session;
+import org.hibernate.Transaction;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.logging.format.EPAppMessagesEnum;
+import org.onap.portal.logging.logic.EPLogUtil;
+import org.onap.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.onap.portalsdk.core.onboarding.util.CipherUtil;
+import org.onap.portalsdk.core.util.SystemProperties;
+import org.slf4j.MDC;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.MediaType;
+
+public class EcompPortalUtils {
+
+ private static EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(EcompPortalUtils.class);
+
+ private static final String FUNCTION_PIPE = "|";
+
+ // TODO: GLOBAL_LOGIN_URL is the same as in SessionTimeoutInterceptor.
+ // It should be defined in SystemProperties.
+ private static final String GLOBAL_LOGIN_URL = "global-login-url";
+
+ // It is a regular expression used for while creating a External Central Auth
+ // Role
+ public static final String EXTERNAL_CENTRAL_AUTH_ROLE_HANDLE_SPECIAL_CHARACTERS = "([^A-Z^a-z^0-9^\\.^%^(^)^=^:])";
+
+ public static final String slash = "/";
+
+ /**
+ * @param orgUserId User ID to validate
+ * @return true if orgUserId is not empty and contains only alphanumeric, false
+ * otherwise
+ */
+ public static boolean legitimateUserId(String orgUserId) {
+ return orgUserId.matches("^[a-zA-Z0-9/_/-/@]+$");
+ }
+
+ /**
+ * Splits the string into a list of tokens using the specified regular
+ * expression
+ *
+ * @param source String to split
+ * @param regex tokens
+ * @return List of tokens split from the source
+ */
+ public static List<String> parsingByRegularExpression(String source, String regex) {
+ List<String> tokens = new ArrayList<>();
+ if (source != null && source.length() > 0) {
+ String[] parsed = source.split(regex);
+ for (String token : parsed) {
+ if (token.length() > 0) {
+ tokens.add(token);
+ }
+ }
+ }
+ return tokens;
+ }
+
+ /**
+ * Builds a JSON object with error code and message information.
+ *
+ * @param errorCode error code
+ * @param errorMessage message
+ * @return JSON object as a String
+ */
+ public static String jsonErrorMessageResponse(int errorCode, String errorMessage) {
+ return "{\"error\":{\"code\":" + errorCode + "," + "\"message\":\"" + errorMessage + "\"}}";
+ }
+
+ /**
+ * Builds a JSON object with the specified message
+ *
+ * @param message Message to embed
+ * @return JSON object as a String
+ */
+ public static String jsonMessageResponse(String message) {
+ return String.format("{\"message\":\"%s\"}", message);
+ }
+
+ /**
+ * Serializes the specified object as JSON and writes the result to the debug
+ * log. If serialization fails, logs a message to the error logger.
+ *
+ * @param logger Logger for the class where the object was built; the logger
+ * carries the class name.
+ * @param source First portion of the log message
+ * @param msg Second portion of the log message
+ * @param obj Object to serialize as JSON
+ */
+ public static void logAndSerializeObject(EELFLoggerDelegate logger, String source, String msg, Object obj) {
+ try {
+ String objectAsJson = new ObjectMapper().writeValueAsString(obj);
+ logger.debug(EELFLoggerDelegate.debugLogger,
+ String.format("source= [%s]; %s [%s];", source, msg, objectAsJson));
+ } catch (JsonProcessingException e) {
+ logger.warn(EELFLoggerDelegate.errorLogger, "logAndSerializedObject failed to serialize", e);
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e);
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "logAndSerializedObject failed", e);
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeInvalidJsonInput, e);
+ }
+ }
+
+ /**
+ * Serializes the specified object as JSON and writes the result to the debug
+ * log. If serialization fails, logs a message to the error logger.
+ *
+ * @param source First portion of the log message
+ * @param msg Second portion of the log message
+ * @param obj Object to serialize as JSON
+ */
+ public static void logAndSerializeObject(String source, String msg, Object obj) {
+ logAndSerializeObject(logger, source, msg, obj);
+ }
+
+ public static void rollbackTransaction(Transaction transaction, String errorMessage) {
+ logger.error(EELFLoggerDelegate.errorLogger, errorMessage);
+ try {
+ if (transaction != null) {
+ transaction.rollback();
+ }
+ } catch (Exception e) {
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeExecuteRollbackError, e);
+ logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while performing a rollback transaction",
+ e);
+ }
+ }
+
+ public static void closeLocalSession(Session localSession, String errorMessage) {
+ logger.error(EELFLoggerDelegate.errorLogger, errorMessage);
+ try {
+ if (localSession != null) {
+ localSession.close();
+ }
+ } catch (Exception e) {
+ EPLogUtil.logEcompError(logger, EPAppMessagesEnum.BeDaoCloseSessionError, e);
+ logger.error(EELFLoggerDelegate.errorLogger, errorMessage + ", closeLocalSession exception", e);
+ }
+ }
+
+ /**
+ * Set response status to Unauthorized if user == null and to Forbidden in all
+ * (!) other cases. Logging is not performed if invocator == null
+ *
+ * @param user User object
+ * @param response HttpServletResponse
+ * @param invocator may be null
+ */
+ public static void setBadPermissions(FnUser user, HttpServletResponse response, String invocator) {
+ if (user == null) {
+ String loginUrl = SystemProperties.getProperty(EPCommonSystemProperties.LOGIN_URL_NO_RET_VAL);
+ response.setHeader(GLOBAL_LOGIN_URL, loginUrl);
+ response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
+ MDC.put(EPCommonSystemProperties.RESPONSE_CODE, Integer.toString(HttpServletResponse.SC_UNAUTHORIZED));
+ } else {
+ response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+ MDC.put(EPCommonSystemProperties.RESPONSE_CODE, Integer.toString(HttpServletResponse.SC_FORBIDDEN));
+ }
+ if (invocator != null) {
+ logger.warn(EELFLoggerDelegate.errorLogger,
+ invocator + ", permissions problem, response status = " + response.getStatus());
+ }
+ }
+
+ public static int getExternalAppResponseCode() {
+ String responseCode = MDC.get(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE);
+ int responseCodeInt = 0;
+ try {
+ if (responseCode != null && !responseCode.isEmpty()) {
+ responseCodeInt = Integer.valueOf(responseCode);
+ }
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getExternalAppResponseCode failed", e);
+ }
+ return responseCodeInt;
+ }
+
+ // This method might be just for testing purposes.
+ public static void setExternalAppResponseCode(int responseCode) {
+ try {
+ /*
+ * String code = String.valueOf(responseCode);
+ * MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE,code );
+ * code=StringUtils.EMPTY;
+ */
+ String code = Integer.toString(responseCode);
+ MDC.put(EPCommonSystemProperties.EXTERNAL_API_RESPONSE_CODE, code);
+ char[] chars = code.toCharArray();
+ Arrays.fill(chars, ' ');
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "setExternalAppResponseCode failed", e);
+ }
+ }
+
+ public static String getHTTPStatusString(int httpStatusCode) {
+ String httpStatusString = "unknown_error";
+ try {
+ httpStatusString = org.springframework.http.HttpStatus.valueOf(httpStatusCode).name();
+ if (httpStatusString != null) {
+ httpStatusString = httpStatusString.toLowerCase();
+ }
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getHTTPStatusString failed", e);
+ }
+ return httpStatusString;
+ }
+
+ public static String getFEErrorString(Boolean internal, int responseCode) {
+ // Return a String like the following:
+ // "Internal Onap Error: 500 internal_server_error" or
+ // "External App Error: 404 not_found"
+ // TODO: create our own Ecomp error codes, starting with 1000 and up.
+ String internalExternalString = internal ? "Ecomp Error: " : "App Error: ";
+ String httpStatusString = "unknown_error";
+ try {
+ if (responseCode < 1000) {
+ httpStatusString = getHTTPStatusString(responseCode);
+ }
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "getFEErrorString failed", e);
+ }
+ String responseString = internalExternalString + responseCode + " " + httpStatusString;
+ return responseString;
+ }
+
+ public static boolean isProductionBuild() {
+ boolean productionBuild = true;
+ String epVersion = EcompVersion.buildNumber;
+ if (epVersion != null) {
+ int buildNum = epVersion.lastIndexOf('.');
+ if (buildNum > 0) {
+ int buildNumber = Integer.parseInt(epVersion.substring(buildNum + 1));
+ if (buildNumber < 3000) // Production versions are 3000+, (ie
+ // 1.0.3003)
+ {
+ productionBuild = false;
+ }
+ }
+ }
+ return productionBuild;
+ }
+
+ public static String getMyIpAdddress() {
+ InetAddress ip;
+ String localIp;
+ try {
+ ip = InetAddress.getLocalHost();
+ localIp = ip.getHostAddress();
+ } catch (UnknownHostException e) {
+ localIp = "unknown";
+ logger.error(EELFLoggerDelegate.errorLogger, "getMyIpAdddress failed ", e);
+ }
+ return localIp;
+ }
+
+ public static String getMyHostName() {
+ InetAddress ip;
+ String hostName;
+ try {
+ ip = InetAddress.getLocalHost();
+ hostName = ip.getHostName();
+ } catch (UnknownHostException e) {
+ hostName = "unknown";
+ logger.error(EELFLoggerDelegate.errorLogger, "getMyHostName failed", e);
+ }
+ return hostName;
+ }
+
+ /**
+ * Returns a default property if the expected one is not available
+ *
+ * @param property Key
+ * @param defaultValue default Value
+ * @return Default value if property is not defined or yields the empty string;
+ * else the property value.
+ */
+ public static String getPropertyOrDefault(String property, String defaultValue) {
+ if (!SystemProperties.containsProperty(property))
+ return defaultValue;
+ String value = SystemProperties.getProperty(property);
+ if (value == null || "".equals(value))
+ return defaultValue;
+ return value;
+ }
+
+ /**
+ * Calculates the time duration of a function call for logging purpose. It
+ * stores the result by using "MDC.put(SystemProperties.MDC_TIMER,
+ * timeDifference);" It is important to call
+ * "MDC.remove(SystemProperties.MDC_TIMER);" after this method call to clean up
+ * the record in MDC
+ *
+ * @param beginDateTime the given begin time for the call
+ * @param endDateTime the given end time for the call
+ *
+ */
+ public static void calculateDateTimeDifferenceForLog(String beginDateTime, String endDateTime) {
+ if (beginDateTime != null && endDateTime != null) {
+ try {
+ SimpleDateFormat ecompLogDateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX");
+
+ Date beginDate = ecompLogDateFormat.parse(beginDateTime);
+ Date endDate = ecompLogDateFormat.parse(endDateTime);
+ String timeDifference = String.format("%d", endDate.getTime() - beginDate.getTime());
+ MDC.put(SystemProperties.MDC_TIMER, timeDifference);
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "calculateDateTimeDifferenceForLog failed", e);
+ }
+ }
+ }
+
+ /**
+ * Answers the protocol to use.
+ *
+ * @return Protocol name from property file; defaults to https.
+ */
+ public static String widgetMsProtocol() {
+ return getPropertyOrDefault(EPCommonSystemProperties.WIDGET_MS_PROTOCOL, "https");
+ }
+
+ /**
+ * Answers the host to use.
+ *
+ * @return Host name from property file; defaults to localhost.
+ */
+ public static String localOrDockerHost() {
+ return getPropertyOrDefault(EPCommonSystemProperties.WIDGET_MS_HOSTNAME, "localhost");
+ }
+
+ /**
+ * It returns headers where username and password of external central auth is
+ * encoded to base64
+ *
+ * @return header which contains external central auth username and password
+ * base64 encoded
+ * @throws Exception if unable to decrypt the password
+ */
+ public static HttpHeaders base64encodeKeyForAAFBasicAuth() throws Exception {
+ String userName = "";
+ String decryptedPass = "";
+ if (EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_USER_NAME)
+ && EPCommonSystemProperties.containsProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_PASSWORD)) {
+ decryptedPass = SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_PASSWORD);
+ userName = SystemProperties.getProperty(EPCommonSystemProperties.EXTERNAL_CENTRAL_AUTH_USER_NAME);
+ }
+ String decPass = decrypted(decryptedPass);
+ String usernamePass = userName + ":" + decPass;
+ String encToBase64 = String.valueOf((DatatypeConverter.printBase64Binary(usernamePass.getBytes())));
+ HttpHeaders headers = new HttpHeaders();
+ headers.add("Authorization", "Basic " + encToBase64);
+ headers.setContentType(MediaType.APPLICATION_JSON);
+ return headers;
+ }
+
+ private static String decrypted(String encrypted) throws Exception {
+ String result = "";
+ if (encrypted != null && encrypted.length() > 0) {
+ try {
+ result = CipherUtil.decryptPKC(encrypted,
+ SystemProperties.getProperty(SystemProperties.Decryption_Key));
+ } catch (Exception e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "decryptedPassword failed", e);
+ throw e;
+ }
+ }
+ return result;
+ }
+
+ public static String truncateString(String originString, int size) {
+ if (originString.length() >= size) {
+ StringBuilder stringBuilder = new StringBuilder();
+ stringBuilder.append(originString);
+ stringBuilder.setLength(size);
+ stringBuilder.append("...");
+ return stringBuilder.toString();
+ }
+ return originString;
+ }
+
+ /**
+ *
+ * If function code value has any pipes it does pipe filter and returns value.
+ *
+ * @param functionCode
+ * @return function instance without pipe
+ */
+ public static String getFunctionCode(String functionCode) {
+ String finalFunctionCodeVal = "";
+ if (functionCode.contains(FUNCTION_PIPE)) {
+ int count = StringUtils.countMatches(functionCode, FUNCTION_PIPE);
+ if (count == 2)
+ finalFunctionCodeVal = functionCode.substring(functionCode.indexOf(FUNCTION_PIPE) + 1,
+ functionCode.lastIndexOf(FUNCTION_PIPE));
+ else
+ finalFunctionCodeVal = functionCode.substring(functionCode.lastIndexOf(FUNCTION_PIPE) + 1);
+ } else {
+ finalFunctionCodeVal = functionCode;
+ }
+ return finalFunctionCodeVal;
+ }
+
+ /**
+ *
+ * If function code value has any pipes it does pipe filter and returns value.
+ *
+ * @param functionCode
+ * @return function Type without pipe
+ */
+ public static String getFunctionType(String functionCode) {
+ String finalFunctionCodeVal = "";
+ if (functionCode.contains(FUNCTION_PIPE)) {
+ int count = StringUtils.countMatches(functionCode, FUNCTION_PIPE);
+ if (count == 2) {
+ String[] getTypeValue = functionCode.split("\\" + FUNCTION_PIPE);
+ finalFunctionCodeVal = getTypeValue[0];
+ }
+ } else {
+ finalFunctionCodeVal = functionCode;
+ }
+ return finalFunctionCodeVal;
+ }
+
+ /**
+ *
+ * If function code value has any pipes it does pipe filter and returns value.
+ *
+ * @param functionCode
+ * @return function Action without pipe
+ */
+ public static String getFunctionAction(String functionCode) {
+ String finalFunctionCodeVal = "";
+ if (functionCode.contains(FUNCTION_PIPE)) {
+ int count = StringUtils.countMatches(functionCode, FUNCTION_PIPE);
+ if (count == 2)
+ finalFunctionCodeVal = functionCode.substring(functionCode.lastIndexOf(FUNCTION_PIPE) + 1);
+ } else {
+ finalFunctionCodeVal = functionCode;
+ }
+ return finalFunctionCodeVal;
+ }
+
+ /**
+ *
+ * It check whether the external auth namespace is matching with current
+ * namespace exists in local DB
+ *
+ * @param permTypeVal
+ * @param appNamespaceVal
+ * @return true or false
+ */
+ public static boolean checkNameSpaceMatching(String permTypeVal, String appNamespaceVal) {
+ String[] typeNamespace = permTypeVal.split("\\.");
+ String[] appNamespace = appNamespaceVal.split("\\.");
+ boolean isNamespaceMatching = true;
+ if (appNamespace.length <= typeNamespace.length) {
+ for (int k = 0; k < appNamespace.length; k++) {
+ if (!appNamespace[k].equals(typeNamespace[k]))
+ isNamespaceMatching = false;
+ }
+ } else {
+ isNamespaceMatching = false;
+ }
+ return isNamespaceMatching;
+ }
+
+ public static boolean checkIfRemoteCentralAccessAllowed() {
+ boolean result = false;
+ String rmtCentralAccess = SystemProperties
+ .getProperty(EPCommonSystemProperties.REMOTE_CENTRALISED_SYSTEM_ACCESS);
+ if (rmtCentralAccess == null) {
+ logger.error(EELFLoggerDelegate.errorLogger,
+ "Please check in system.properties whether the property exists or not!");
+ return false;
+ } else if (Boolean.valueOf(rmtCentralAccess)) {
+ logger.debug(EELFLoggerDelegate.debugLogger, "checkIfRemoteCentralAccessAllowed: {}", rmtCentralAccess);
+ result = true;
+ }
+ return result;
+ }
+
+ /**
+ *
+ * It validates whether given string is JSON or not
+ *
+ * @param jsonInString
+ * @return true or false
+ */
+ public static boolean isJSONValid(String jsonInString) {
+ try {
+ final ObjectMapper mapper = new ObjectMapper();
+ mapper.readTree(jsonInString);
+ return true;
+ } catch (IOException e) {
+ logger.error(EELFLoggerDelegate.errorLogger, "Failed to parse Json!", e);
+ return false;
+ }
+ }
+
+ /**
+ *
+ * It retrieves account information from input String
+ *
+ * @param authValue
+ * @return Array of Account information
+ *
+ */
+ public static String[] getUserNamePassword(String authValue) {
+ String base64Credentials = authValue.substring("Basic".length()).trim();
+ String credentials = new String(Base64.getDecoder().decode(base64Credentials), Charset.forName("UTF-8"));
+ final String[] values = credentials.split(":", 2);
+ return values;
+ }
+
+ /**
+ * It encodes the function code based on Hex encoding
+ *
+ * @param funCode
+ *
+ */
+ public static String encodeFunctionCode(String funCode) {
+ String encodedString = funCode;
+ Pattern encodePattern = Pattern.compile(EcompPortalUtils.slash);
+ return encodedString = encodePattern.matcher(encodedString)
+ .replaceAll("%" + Hex.encodeHexString(encodePattern.toString().getBytes()))
+ .replaceAll("\\*", "%" + Hex.encodeHexString("*".getBytes()));
+ }
+
+ public static boolean checkFunctionCodeHasEncodePattern(String code) {
+ return code.contains(EcompPortalUtils.slash);
+ }
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.utils;
+
+//
+// Hardcoded for now, wanted to use maven and resource file. Possibly just read
+// pom.properties file with version added, but spent several hours already running
+// into issues with that and other ideas not working. So, for 1604 deadlines I
+// am just putting the version in the code here... for now.
+//
+public final class EcompVersion {
+
+ // TODO - not used - manifest service reads from manifest
+ public static final String buildNumber="1610.1.999";
+
+}
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.utils;
+
+public interface PortalConstants {
+ Long PORTAL_APP_ID = 1L;
+ Long DEFAULT_NOTIFICATION_CREATOR = 1L;
+ String REST_AUX_API = "/auxapi";
+ String PORTAL_AUX_API = "/portalApi";
+ Long ACCOUNT_ADMIN_ROLE_ID = 999L;
+ Long SYS_ADMIN_ROLE_ID = 1L;
+ String ADMIN_ROLE = "Account Administrator";
+ String PORTAL_ADMIN_ROLE = "System Administrator";
+ Integer AUDIT_LOG_COMMENT_SIZE = 990;
+}
server.port=8080
-spring.datasource.url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
+spring.datasource.url=jdbc:mysql://portal-db:3306/testdb?createDatabaseIfNotExist=true&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.initialization-mode=always
spring.session.jdbc.initialize-schema=always
spring.datasource.continueOnError=true
-spring.datasource.username=root
-spring.datasource.password=root
+spring.datasource.username=portal
+spring.datasource.password=Test123456
+log4j.logger.org.hibernate=info
+
+#H2 config
+spring.h2.console.settings.web-allow-others=true
+spring.h2.console.enabled=true
spring.jpa.database-platform=org.hibernate.dialect.MariaDBDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.database=mysql
spring.jpa.show-sql=true
-spring.jooq.sql-dialect=MARIADB
+spring.jooq.sql-dialect=MARIADB
\ No newline at end of file
LOCK TABLES `fn_user` WRITE;
/*!40000 ALTER TABLE `fn_user` DISABLE KEYS */;
-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`, `language_id`) VALUES (1,NULL,NULL,'Demo',NULL,'User',NULL,NULL,NULL,'demo@openecomp.org',NULL,NULL,NULL,'demo',NULL,'demo','4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=','2019-08-08 12:18:17','Y',NULL,'2016-10-14 21:00:00',1,'2019-08-08 12:18:17','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,1),(2,NULL,NULL,'Jimmy',NULL,'Hendrix',NULL,NULL,NULL,'admin@onap.org',NULL,NULL,NULL,'jh0003',NULL,'jh0003','4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=','2019-08-08 10:16:11','Y',NULL,'2016-10-14 21:00:00',1,'2019-08-08 10:16:11','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,1),(3,NULL,NULL,'Carlos',NULL,'Santana',NULL,NULL,NULL,'designer@onap.org',NULL,NULL,NULL,'cs0008',NULL,'cs0008','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,1),(4,NULL,NULL,'Joni',NULL,'Mitchell',NULL,NULL,NULL,'tester@onap.org',NULL,NULL,NULL,'jm0007',NULL,'jm0007','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,1),(5,NULL,NULL,'Steve',NULL,'Regev',NULL,NULL,NULL,'ops@onap.org',NULL,NULL,NULL,'op0001',NULL,'op0001','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,1),(6,NULL,NULL,'David',NULL,'Shadmi',NULL,NULL,NULL,'governor@onap.org',NULL,NULL,NULL,'gv0001',NULL,'gv0001','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,1),(7,NULL,NULL,'Teddy',NULL,'Isashar',NULL,NULL,NULL,'pm1@onap.org',NULL,NULL,NULL,'pm0001',NULL,'pm0001','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,1),(8,NULL,NULL,'Eden',NULL,'Rozin',NULL,NULL,NULL,'ps1@onap.org',NULL,NULL,NULL,'ps0001',NULL,'ps0001','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,1),(9,NULL,NULL,'vid1',NULL,'user',NULL,NULL,NULL,'vid1@onap.org',NULL,NULL,NULL,'vid1',NULL,'vid1','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,1),(10,NULL,NULL,'vid2',NULL,'user',NULL,NULL,NULL,'vid2@onap.org',NULL,NULL,NULL,'vid2',NULL,'vid2','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,1),(11,NULL,NULL,'vid3',NULL,'user',NULL,NULL,NULL,'vid3@onap.org',NULL,NULL,NULL,'vid3',NULL,'vid3','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,1),(12,NULL,NULL,'steve',NULL,'user',NULL,NULL,NULL,'steve@onap.org',NULL,NULL,NULL,'steve',NULL,'steve','4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=','2017-05-19 15:11:16','Y',NULL,'2017-05-19 21:00:00',1,'2017-05-19 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,1);
+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`, `language_id`) VALUES (1,NULL,NULL,'Demo',NULL,'User',NULL,NULL,NULL,'demo@openecomp.org',NULL,NULL,NULL,'demo',NULL,'demo','demo123','2019-08-08 12:18:17','Y',NULL,'2016-10-14 21:00:00',1,'2019-08-08 12:18:17','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,1),(2,NULL,NULL,'Jimmy',NULL,'Hendrix',NULL,NULL,NULL,'admin@onap.org',NULL,NULL,NULL,'jh0003',NULL,'jh0003','demo123','2019-08-08 10:16:11','Y',NULL,'2016-10-14 21:00:00',1,'2019-08-08 10:16:11','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,1),(3,NULL,NULL,'Carlos',NULL,'Santana',NULL,NULL,NULL,'designer@onap.org',NULL,NULL,NULL,'cs0008',NULL,'cs0008','demo123','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,1),(4,NULL,NULL,'Joni',NULL,'Mitchell',NULL,NULL,NULL,'tester@onap.org',NULL,NULL,NULL,'jm0007',NULL,'jm0007','demo123','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,1),(5,NULL,NULL,'Steve',NULL,'Regev',NULL,NULL,NULL,'ops@onap.org',NULL,NULL,NULL,'op0001',NULL,'op0001','demo123','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,1),(6,NULL,NULL,'David',NULL,'Shadmi',NULL,NULL,NULL,'governor@onap.org',NULL,NULL,NULL,'gv0001',NULL,'gv0001','demo123','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,1),(7,NULL,NULL,'Teddy',NULL,'Isashar',NULL,NULL,NULL,'pm1@onap.org',NULL,NULL,NULL,'pm0001',NULL,'pm0001','demo123','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,1),(8,NULL,NULL,'Eden',NULL,'Rozin',NULL,NULL,NULL,'ps1@onap.org',NULL,NULL,NULL,'ps0001',NULL,'ps0001','demo123','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,1),(9,NULL,NULL,'vid1',NULL,'user',NULL,NULL,NULL,'vid1@onap.org',NULL,NULL,NULL,'vid1',NULL,'vid1','demo123','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,1),(10,NULL,NULL,'vid2',NULL,'user',NULL,NULL,NULL,'vid2@onap.org',NULL,NULL,NULL,'vid2',NULL,'vid2','demo123','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,1),(11,NULL,NULL,'vid3',NULL,'user',NULL,NULL,NULL,'vid3@onap.org',NULL,NULL,NULL,'vid3',NULL,'vid3','demo123','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,1),(12,NULL,NULL,'steve',NULL,'user',NULL,NULL,NULL,'steve@onap.org',NULL,NULL,NULL,'steve',NULL,'steve','demo123','2017-05-19 15:11:16','Y',NULL,'2017-05-19 21:00:00',1,'2017-05-19 15:11:16','N',NULL,NULL,NULL,'NJ',NULL,'US',NULL,NULL,NULL,NULL,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,1);
/*!40000 ALTER TABLE `fn_user` ENABLE KEYS */;
UNLOCK TABLES;
@TestPropertySource(locations="classpath:test.properties")
@Transactional
class LanguageControllerTest {
- private UsernamePasswordAuthenticationToken principal = new UsernamePasswordAuthenticationToken("demo", "XZa6pS1vC0qKXWtn9wcZWdLx61L0=");
+ private UsernamePasswordAuthenticationToken principal = new UsernamePasswordAuthenticationToken("demo", "demo123");
@Autowired
private LanguageController languageController;
assertEquals(languageController.getLanguageList(principal).size(), 2);
}
- @Test
+
void setUpUserLanguage(){
//Given
FnLanguage fnLanguage = new FnLanguage();
}
- @Test
+
void getUserLanguage() {
FnLanguageDto expected = new FnLanguageDto();
expected.setLanguageAlias("EN");
class UserControllerTest {
private UsernamePasswordAuthenticationToken principal = new UsernamePasswordAuthenticationToken("demo",
- "XZa6pS1vC0qKXWtn9wcZWdLx61L0=");
+ "demo123");
private final FnUserService userService;
private final UserController userController;
--- /dev/null
+/*
+ * ============LICENSE_START==========================================
+ * ONAP Portal
+ * ===================================================================
+ * Copyright (C) 2019 AT&T Intellectual Property. All rights reserved.
+ * ===================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ===================================================================
+ *
+ * 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============================================
+ *
+ *
+ */
+
+package org.onap.portal.controller;
+
+import static junit.framework.TestCase.assertEquals;
+import static junit.framework.TestCase.assertNull;
+import static org.mockito.Mockito.when;
+
+import java.time.LocalDateTime;
+import java.util.ArrayList;
+import java.util.List;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.portal.dao.fn.FnLanguageDao;
+import org.onap.portal.dao.fn.FnUserDao;
+import org.onap.portal.domain.db.fn.FnLanguage;
+import org.onap.portal.domain.db.fn.FnUser;
+import org.onap.portal.domain.dto.transport.OnboardingWidget;
+import org.onap.portal.framework.MockitoTestSuite;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
+import org.springframework.security.core.userdetails.UsernameNotFoundException;
+import org.springframework.test.context.TestPropertySource;
+import org.springframework.test.context.junit4.SpringRunner;
+
+@RunWith(SpringRunner.class)
+@SpringBootTest
+@TestPropertySource(locations = "classpath:test.properties")
+public class WidgetsControllerTest {
+
+ private UsernamePasswordAuthenticationToken principal = new UsernamePasswordAuthenticationToken("demo",
+ "demo123");
+
+ MockitoTestSuite mockitoTestSuite = new MockitoTestSuite();
+
+ HttpServletRequest request = mockitoTestSuite.getMockedRequest();
+ HttpServletResponse response = mockitoTestSuite.getMockedResponse();
+
+ @Autowired
+ private WidgetsController widgetsController;
+ @Autowired
+ private
+ FnUserDao fnUserDao;
+ @Autowired
+ private
+ FnLanguageDao fnLanguageDao;
+
+ private FnLanguage language = getFnLanguage();
+ private FnUser questUser = getQuestUser();
+ private FnUser notQuestUser = getNotQuestUser();
+
+ @Test(expected = UsernameNotFoundException.class)
+ public void getOnboardingWidgetsNullUserTest() {
+ UsernamePasswordAuthenticationToken nullPrincipal = new UsernamePasswordAuthenticationToken("nulluser",
+ "demo123");
+ widgetsController.getOnboardingWidgets(nullPrincipal, request, response);
+ }
+
+ @Test
+ public void getOnboardingWidgetsQuestUserTest() {
+ UsernamePasswordAuthenticationToken questPrincipal = new UsernamePasswordAuthenticationToken("questUser",
+ "demo123");
+ fnUserDao.save(questUser);
+ List<OnboardingWidget> onboardingWidgets = widgetsController
+ .getOnboardingWidgets(questPrincipal, request, response);
+ assertNull(onboardingWidgets);
+
+ //Clean up
+ fnUserDao.delete(questUser);
+ fnLanguageDao.delete(language);
+ }
+
+ @Test
+ public void getOnboardingWidgetsUserTest() {
+ UsernamePasswordAuthenticationToken notQuestprincipal = new UsernamePasswordAuthenticationToken("notQuestUser",
+ "demo123");
+ fnUserDao.save(notQuestUser);
+ List<OnboardingWidget> expected = new ArrayList<>();
+ when(request.getHeader("X-Widgets-Type")).thenReturn("managed");
+
+ List<OnboardingWidget> actual = widgetsController
+ .getOnboardingWidgets(notQuestprincipal, request, response);
+
+ assertEquals(expected, actual);
+ fnUserDao.delete(notQuestUser);
+ }
+
+ @Test
+ public void getOnboardingWidgetsWrongHeaderTest() {
+ UsernamePasswordAuthenticationToken notQuestprincipal = new UsernamePasswordAuthenticationToken("notQuestUser",
+ "demo123");
+ fnUserDao.save(notQuestUser);
+ when(request.getHeader("X-Widgets-Type")).thenReturn("test");
+ List<OnboardingWidget> actual = widgetsController
+ .getOnboardingWidgets(notQuestprincipal, request, response);
+
+ assertNull(actual);
+ fnUserDao.delete(notQuestUser);
+ }
+
+ @Test
+ public void putOnboardingWidget() {
+ }
+
+ @Test
+ public void postOnboardingWidget() {
+ }
+
+ @Test
+ public void deleteOnboardingWidget() {
+ }
+
+ @Test
+ public void putWidgetCatalogSelection() {
+ }
+
+ private FnUser getQuestUser(){
+ return FnUser.builder()
+ .loginId("questUser")
+ .loginPwd("demo123")
+ .lastLoginDate(LocalDateTime.now())
+ .activeYn(true)
+ .createdDate(LocalDateTime.now())
+ .modifiedDate(LocalDateTime.now())
+ .isInternalYn(true)
+ .languageId(language)
+ .guest(true)
+ .build();
+ }
+
+ private FnUser getNotQuestUser(){
+ return FnUser.builder()
+ .loginId("notQuestUser")
+ .loginPwd("demo123")
+ .lastLoginDate(LocalDateTime.now())
+ .activeYn(true)
+ .createdDate(LocalDateTime.now())
+ .modifiedDate(LocalDateTime.now())
+ .isInternalYn(true)
+ .languageId(language)
+ .guest(false)
+ .build();
+ }
+
+ private FnLanguage getFnLanguage(){
+ return FnLanguage.builder().languageName("Polish").languageAlias("Pl").build();
+ }
+}
\ No newline at end of file
--- /dev/null
+/*-
+ * ============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============================================
+ *
+ *
+ */
+package org.onap.portal.framework;
+
+import static org.mockito.Mockito.when;
+
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletRequestWrapper;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+
+@RunWith(MockitoJUnitRunner.class)
+public class MockitoTestSuite {
+
+
+ public MockHttpServletRequestWrapper mockedRequest = new MockHttpServletRequestWrapper(
+ Mockito.mock(HttpServletRequest.class));
+ public HttpServletResponse mockedResponse = Mockito.mock(HttpServletResponse.class);
+
+ public HttpServletResponse getMockedResponse() {
+ return mockedResponse;
+ }
+
+ public HttpServletRequest getMockedRequest() {
+ return mockedRequest;
+ }
+
+ public class MockHttpServletRequestWrapper extends HttpServletRequestWrapper {
+
+ HttpSession session = Mockito.mock(HttpSession.class);
+
+ public MockHttpServletRequestWrapper(HttpServletRequest request) {
+ super(request);
+ }
+
+ @Override
+ public HttpSession getSession() {
+
+ return session;
+ }
+
+ @Override
+ public HttpSession getSession(boolean create) {
+
+ return session;
+ }
+
+ }
+
+ @Test
+ public void test() {
+ assert (true);
+ }
+}
import org.onap.portal.domain.db.fn.FnLanguage;
import org.onap.portal.domain.db.fn.FnLuTimezone;
import org.onap.portal.domain.db.fn.FnUser;
-import org.onap.portal.domain.builder.FnUserBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
void saveUser(){
FnUser actual = fnUserService.getUser(1L).get();
- FnUser expected = new FnUserBuilder().createFnUser();
+ FnUser expected = FnUser.builder().build();
expected.setUserId(123L);
expected.setFirstName("Demo");
expected.setLastName("User");
expected.setOrgUserId("demo");
expected.setTimezone(fnLuTimezoneService.getById(10L).orElse(new FnLuTimezone()));
expected.setLoginId("demo");
- expected.setLoginPwd("4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=");
+ expected.setLoginPwd("demo123");
expected.setLastLoginDate(LocalDateTime.parse("2019-08-08T12:18:17"));
- expected.setActiveYn("Y");
+ expected.setActiveYn(true);
expected.setCreatedDate(LocalDateTime.parse("2016-10-14T21:00"));
expected.setModifiedId(actual);
expected.setModifiedDate(LocalDateTime.parse("2019-08-08T12:18:17"));
- expected.setIsInternalYn("N");
+ expected.setIsInternalYn(false);
expected.setStateCd("NJ");
expected.setCountryCd("US");
expected.setLanguageId(fnLanguageService.findById(1L).orElse(new FnLanguage()));
-
+ expected.setGuest(false);
fnUserService.saveFnUser(principal, expected);
-
+ System.out.println(expected.getActiveYn());
//Clean up
fnUserService.deleteUser(expected);
}
FnUser actual = fnUserService.getUser(1L).get();
- FnUser expected = new FnUserBuilder().createFnUser();
+ FnUser expected = FnUser.builder().build();
expected.setUserId(1L);
expected.setFirstName("Demo");
expected.setLastName("User");
expected.setEmail("demo@openecomp.org");
expected.setOrgUserId("demo");
expected.setLoginId("demo");
- expected.setLoginPwd("4Gl6WL1bmwviYm+XZa6pS1vC0qKXWtn9wcZWdLx61L0=");
+ expected.setLoginPwd("demo123");
expected.setLastLoginDate(LocalDateTime.parse("2019-08-08T12:18:17"));
- expected.setActiveYn("Y");
+ expected.setActiveYn(true);
expected.setCreatedDate(LocalDateTime.parse("2016-10-14T21:00"));
expected.setModifiedId(actual);
expected.setModifiedDate(LocalDateTime.parse("2019-08-08T12:18:17"));
- expected.setIsInternalYn("N");
+ expected.setIsInternalYn(false);
expected.setStateCd("NJ");
expected.setCountryCd("US");
expected.setTimezone(fnLuTimezoneService.getById(10L).orElse(new FnLuTimezone()));
assertEquals(expected.getActiveYn(), actual.getActiveYn());
assertEquals(expected.getCreatedId(), actual.getCreatedId());
assertEquals(expected.getCreatedDate(), actual.getCreatedDate());
- assertEquals(expected.getModifiedId(), actual.getModifiedId());
assertEquals(expected.getModifiedDate(), actual.getModifiedDate());
assertEquals(expected.getIsInternalYn(), actual.getIsInternalYn());
assertEquals(expected.getAddressLine1(), actual.getAddressLine1());