[PORTAL-16 PORTAL-18] Widget ms; staging
[portal.git] / ecomp-portal-BE-common / src / main / java / org / openecomp / portalapp / portal / service / PortalAdminServiceImpl.java
index 639bfc4..0963f04 100644 (file)
-/*-\r
- * ================================================================================\r
- * ECOMP Portal\r
- * ================================================================================\r
- * Copyright (C) 2017 AT&T Intellectual Property\r
- * ================================================================================\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- * \r
- *      http://www.apache.org/licenses/LICENSE-2.0\r
- * \r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- * ================================================================================\r
- */\r
-package org.openecomp.portalapp.portal.service;\r
-\r
-import java.util.List;\r
-\r
-import javax.annotation.PostConstruct;\r
-import javax.servlet.http.HttpServletResponse;\r
-\r
-import org.hibernate.Session;\r
-import org.hibernate.SessionFactory;\r
-import org.hibernate.Transaction;\r
-import org.springframework.beans.factory.annotation.Autowired;\r
-import org.springframework.context.annotation.EnableAspectJAutoProxy;\r
-import org.springframework.stereotype.Service;\r
-\r
-import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;\r
-import org.openecomp.portalsdk.core.service.DataAccessService;\r
-import org.openecomp.portalsdk.core.util.SystemProperties;\r
-import org.openecomp.portalapp.portal.domain.EPUser;\r
-import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog;\r
-import org.openecomp.portalapp.portal.transport.FieldsValidator;\r
-import org.openecomp.portalapp.portal.transport.PortalAdmin;\r
-import org.openecomp.portalapp.portal.transport.PortalAdminUserRole;\r
-import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties;\r
-import org.openecomp.portalapp.portal.utils.EcompPortalUtils;\r
-\r
-@Service("portalAdminService")\r
-@org.springframework.context.annotation.Configuration\r
-@EnableAspectJAutoProxy\r
-@EPMetricsLog\r
-public class PortalAdminServiceImpl implements PortalAdminService {\r
-\r
-       private String SYS_ADMIN_ROLE_ID = "1";\r
-       private String ECOMP_APP_ID = "1";\r
-\r
-       EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PortalAdminServiceImpl.class);\r
-\r
-       @Autowired\r
-       private SessionFactory sessionFactory;\r
-       @Autowired\r
-       private DataAccessService dataAccessService;\r
-       @Autowired\r
-       SearchService searchService;\r
-\r
-       @PostConstruct\r
-       private void init() {\r
-               SYS_ADMIN_ROLE_ID = SystemProperties.getProperty(SystemProperties.SYS_ADMIN_ROLE_ID);\r
-               ECOMP_APP_ID = SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID);\r
-       }\r
-\r
-       public List<PortalAdmin> getPortalAdmins() {\r
-               try {\r
-                       String sql = "SELECT u.user_id, u.first_name, u.last_name, u.login_id "\r
-                                       + " FROM fn_user u, fn_user_role ur WHERE u.user_id = ur.user_id AND ur.role_id="\r
-                                       + SYS_ADMIN_ROLE_ID;\r
-                       logQuery(sql);\r
-\r
-                       @SuppressWarnings("unchecked")\r
-                       List<PortalAdmin> portalAdmins = dataAccessService.executeSQLQuery(sql, PortalAdmin.class, null);\r
-                       logger.debug(EELFLoggerDelegate.debugLogger, "getPortalAdmins was successful");\r
-                       return portalAdmins;\r
-\r
-               } catch (Exception e) {\r
-                       logger.error(EELFLoggerDelegate.errorLogger,\r
-                                       "Exception occurred while performing getPortalAdmins operation, Details: "\r
-                                                       + EcompPortalUtils.getStackTrace(e));\r
-                       return null;\r
-               }\r
-       }\r
-\r
-       @SuppressWarnings("unchecked") \r
-       public FieldsValidator createPortalAdmin(String orgUserId) {\r
-               FieldsValidator fieldsValidator = new FieldsValidator(); \r
-               logger.debug(EELFLoggerDelegate.debugLogger, "LR: createPortalAdmin: test 1"); \r
-               boolean result = false; \r
-               EPUser user = null; \r
-               boolean createNewUser = false; \r
-               List<EPUser> localUserList = dataAccessService.getList(EPUser.class, " where orgUserId='" + orgUserId + "'",\r
-                               null, null); \r
-               if (localUserList.size() > 0) { \r
-                       user = localUserList.get(0); \r
-               } else { \r
-                       createNewUser = true; \r
-               } \r
\r
-               if (user!=null && isLoggedInUserPortalAdmin(user.getId())) { \r
-                       fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT); \r
-                       logger.error(EELFLoggerDelegate.errorLogger, "User '" + user.getOrgUserId() + "' already has PortalAdmin role assigned."); \r
-               } \r
-               else if (user != null || createNewUser) { \r
-                       Session localSession = null; \r
-                       Transaction transaction = null; \r
-                       try { \r
-                               localSession = sessionFactory.openSession(); \r
\r
-                               transaction = localSession.beginTransaction(); \r
-                               if (createNewUser) { \r
-                               user = this.searchService.searchUserByUserId(orgUserId);\r
-                                       if (user != null) { \r
-                                               // insert the user with active true in order to \r
-                                               // pass login phase. \r
-                                               user.setActive(true); \r
-                                               localSession.save(EPUser.class.getName(), user); \r
-                                       } \r
-                               } \r
-                               if (user != null) { \r
-                                       Long userid = user.getId(); \r
-                                       PortalAdminUserRole userRole = new PortalAdminUserRole(); \r
-                                       userRole.userId = userid; \r
-                                       userRole.roleId = Long.valueOf(SYS_ADMIN_ROLE_ID); \r
-                                       userRole.appId = Long.valueOf(ECOMP_APP_ID); \r
\r
-                                       localSession.save(PortalAdminUserRole.class.getName(), userRole); \r
-                               } \r
-       //                      logger.debug(EELFLoggerDelegate.debugLogger, "after saving menu object, new id: " + userid); \r
\r
-                               transaction.commit(); \r
-                               result = true; \r
-                       } catch (Exception e) { \r
-                               EcompPortalUtils.rollbackTransaction(transaction, \r
-                                               "createPortalAdmin rollback, exception = " + e); \r
-                               logger.error(EELFLoggerDelegate.errorLogger, EcompPortalUtils.getStackTrace(e)); \r
-                       } finally { \r
-                               EcompPortalUtils.closeLocalSession(localSession, "createPortalAdmin"); \r
-                       } \r
-                       if (!result) { \r
-                               logger.debug(EELFLoggerDelegate.debugLogger, "LR: createPortalAdmin: no result. setting httpStatusCode to " \r
-                                               + HttpServletResponse.SC_INTERNAL_SERVER_ERROR); \r
-                               fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); \r
-                               logger.error(EELFLoggerDelegate.errorLogger, "PortalAdminServiceImpl.createPortalAdmin: bad request"); \r
-                       } \r
-               } \r
-               return fieldsValidator; \r
-       }\r
-       \r
-       public FieldsValidator deletePortalAdmin(Long userId) {\r
-               FieldsValidator fieldsValidator = new FieldsValidator();\r
-               logger.debug(EELFLoggerDelegate.debugLogger, "deletePortalAdmin: test 1");\r
-               boolean result = false;\r
-               Session localSession = null;\r
-               Transaction transaction = null;\r
-\r
-               try {\r
-                       localSession = sessionFactory.openSession();\r
-                       transaction = localSession.beginTransaction();\r
-                       dataAccessService.deleteDomainObjects(PortalAdminUserRole.class,\r
-                                       "user_id='" + userId + "' AND role_id='" + SYS_ADMIN_ROLE_ID + "'", null);\r
-                       transaction.commit();\r
-                       result = true;\r
-               } catch (Exception e) {\r
-                       EcompPortalUtils.rollbackTransaction(transaction, "deletePortalAdmin rollback, exception = " + e);\r
-                       logger.error(EELFLoggerDelegate.errorLogger, EcompPortalUtils.getStackTrace(e));\r
-               } finally {\r
-                       EcompPortalUtils.closeLocalSession(localSession, "deletePortalAdmin");\r
-               }\r
-               if (result) {\r
-               } else {\r
-                       logger.debug(EELFLoggerDelegate.debugLogger, "deletePortalAdmin: no result. setting httpStatusCode to "\r
-                                       + HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
-                       fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);\r
-               }\r
-               return fieldsValidator;\r
-       }\r
-\r
-       private void logQuery(String sql) {\r
-               logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql);\r
-       }\r
-       \r
-       private boolean isLoggedInUserPortalAdmin(Long userId) { \r
-               try { \r
-                       String sql = "SELECT u.user_id, u.first_name, u.last_name, u.login_id " + \r
-                                       " FROM fn_user u, fn_user_role ur " + \r
-                                       " WHERE u.user_id = ur.user_id " + \r
-                                       " AND ur.user_id=" + userId + \r
-                                       " AND ur.role_id=" + SYS_ADMIN_ROLE_ID;\r
\r
-                       logQuery(sql); \r
\r
-                       @SuppressWarnings("unchecked") \r
-                       List<PortalAdmin> portalAdmins = dataAccessService.executeSQLQuery(sql, PortalAdmin.class, null); \r
-                       logger.debug(EELFLoggerDelegate.debugLogger, portalAdmins.toString()); \r
-                       if (portalAdmins==null || portalAdmins.size()<=0) { \r
-                               return false; \r
-                       } \r
-                       return true; \r
\r
-               } catch (Exception e) { \r
-                       logger.error(EELFLoggerDelegate.errorLogger, "Exception occurred while performing isLoggedInUserPortalAdmin operation, Details: " + EcompPortalUtils.getStackTrace(e)); \r
-                       return false; \r
-               } \r
-       }\r
-}\r
+/*-
+ * ================================================================================
+ * ECOMP Portal
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * 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.
+ * ================================================================================
+ */
+package org.openecomp.portalapp.portal.service;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.annotation.PostConstruct;
+import javax.servlet.http.HttpServletResponse;
+
+import org.hibernate.Session;
+import org.hibernate.SessionFactory;
+import org.hibernate.Transaction;
+import org.openecomp.portalapp.portal.domain.EPUser;
+import org.openecomp.portalapp.portal.logging.aop.EPMetricsLog;
+import org.openecomp.portalapp.portal.transport.FieldsValidator;
+import org.openecomp.portalapp.portal.transport.PortalAdmin;
+import org.openecomp.portalapp.portal.transport.PortalAdminUserRole;
+import org.openecomp.portalapp.portal.utils.EPCommonSystemProperties;
+import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
+import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
+import org.openecomp.portalsdk.core.service.DataAccessService;
+import org.openecomp.portalsdk.core.util.SystemProperties;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.EnableAspectJAutoProxy;
+import org.springframework.stereotype.Service;
+
+@Service("portalAdminService")
+@org.springframework.context.annotation.Configuration
+@EnableAspectJAutoProxy
+@EPMetricsLog
+public class PortalAdminServiceImpl implements PortalAdminService {
+
+       private String SYS_ADMIN_ROLE_ID = "1";
+       private String ECOMP_APP_ID = "1";
+
+       EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PortalAdminServiceImpl.class);
+
+       @Autowired
+       private SessionFactory sessionFactory;
+       @Autowired
+       private DataAccessService dataAccessService;
+       @Autowired
+       SearchService searchService;
+
+       @PostConstruct
+       private void init() {
+               SYS_ADMIN_ROLE_ID = SystemProperties.getProperty(SystemProperties.SYS_ADMIN_ROLE_ID);
+               ECOMP_APP_ID = SystemProperties.getProperty(EPCommonSystemProperties.ECOMP_APP_ID);
+       }
+
+       public List<PortalAdmin> getPortalAdmins() {
+               try {
+                       Map<String, String> params = new HashMap<>();
+                       params.put("adminRoleId", SYS_ADMIN_ROLE_ID);
+                       @SuppressWarnings("unchecked")
+                       List<PortalAdmin> portalAdmins = (List<PortalAdmin>) dataAccessService.executeNamedQuery("getPortalAdmins",
+                                       params, null);
+                       logger.debug(EELFLoggerDelegate.debugLogger, "getPortalAdmins was successful");
+                       return portalAdmins;
+               } catch (Exception e) {
+                       logger.error(EELFLoggerDelegate.errorLogger,
+                                       "Exception occurred while performing getPortalAdmins operation, Details: "
+                                                       + EcompPortalUtils.getStackTrace(e));
+                       return null;
+               }
+       }
+
+       @SuppressWarnings("unchecked")
+       public FieldsValidator createPortalAdmin(String orgUserId) {
+               FieldsValidator fieldsValidator = new FieldsValidator();
+               logger.debug(EELFLoggerDelegate.debugLogger, "LR: createPortalAdmin: test 1");
+               boolean result = false;
+               EPUser user = null;
+               boolean createNewUser = false;
+               List<EPUser> localUserList = dataAccessService.getList(EPUser.class, " where orgUserId='" + orgUserId + "'",
+                               null, null);
+               if (localUserList.size() > 0) {
+                       user = localUserList.get(0);
+               } else {
+                       createNewUser = true;
+               }
+
+               if (user != null && isLoggedInUserPortalAdmin(user.getId())) {
+                       fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_CONFLICT);
+                       logger.error(EELFLoggerDelegate.errorLogger,
+                                       "User '" + user.getOrgUserId() + "' already has PortalAdmin role assigned.");
+               } else if (user != null || createNewUser) {
+                       Session localSession = null;
+                       Transaction transaction = null;
+                       try {
+                               localSession = sessionFactory.openSession();
+
+                               transaction = localSession.beginTransaction();
+                               if (createNewUser) {
+                                       user = this.searchService.searchUserByUserId(orgUserId);
+                                       if (user != null) {
+                                               // insert the user with active true in order to
+                                               // pass login phase.
+                                               user.setActive(true);
+                                               localSession.save(EPUser.class.getName(), user);
+                                       }
+                               }
+                               if (user != null) {
+                                       Long userid = user.getId();
+                                       PortalAdminUserRole userRole = new PortalAdminUserRole();
+                                       userRole.userId = userid;
+                                       userRole.roleId = Long.valueOf(SYS_ADMIN_ROLE_ID);
+                                       userRole.appId = Long.valueOf(ECOMP_APP_ID);
+
+                                       localSession.save(PortalAdminUserRole.class.getName(), userRole);
+                               }
+
+                               transaction.commit();
+                               result = true;
+                       } catch (Exception e) {
+                               EcompPortalUtils.rollbackTransaction(transaction, "createPortalAdmin rollback, exception = " + e);
+                               logger.error(EELFLoggerDelegate.errorLogger, EcompPortalUtils.getStackTrace(e));
+                       } finally {
+                               EcompPortalUtils.closeLocalSession(localSession, "createPortalAdmin");
+                       }
+                       if (!result) {
+                               logger.debug(EELFLoggerDelegate.debugLogger,
+                                               "LR: createPortalAdmin: no result. setting httpStatusCode to "
+                                                               + HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                               fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                               logger.error(EELFLoggerDelegate.errorLogger, "PortalAdminServiceImpl.createPortalAdmin: bad request");
+                       }
+               }
+               return fieldsValidator;
+       }
+
+       public FieldsValidator deletePortalAdmin(Long userId) {
+               FieldsValidator fieldsValidator = new FieldsValidator();
+               logger.debug(EELFLoggerDelegate.debugLogger, "deletePortalAdmin: test 1");
+               boolean result = false;
+               Session localSession = null;
+               Transaction transaction = null;
+
+               try {
+                       localSession = sessionFactory.openSession();
+                       transaction = localSession.beginTransaction();
+                       dataAccessService.deleteDomainObjects(PortalAdminUserRole.class,
+                                       "user_id='" + userId + "' AND role_id='" + SYS_ADMIN_ROLE_ID + "'", null);
+                       transaction.commit();
+                       result = true;
+               } catch (Exception e) {
+                       EcompPortalUtils.rollbackTransaction(transaction, "deletePortalAdmin rollback, exception = " + e);
+                       logger.error(EELFLoggerDelegate.errorLogger, EcompPortalUtils.getStackTrace(e));
+               } finally {
+                       EcompPortalUtils.closeLocalSession(localSession, "deletePortalAdmin");
+               }
+               if (result) {
+               } else {
+                       logger.debug(EELFLoggerDelegate.debugLogger, "deletePortalAdmin: no result. setting httpStatusCode to "
+                                       + HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                       fieldsValidator.httpStatusCode = new Long(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+               }
+               return fieldsValidator;
+       }
+
+       private void logQuery(String sql) {
+               logger.debug(EELFLoggerDelegate.debugLogger, "Executing query: " + sql);
+       }
+
+       private boolean isLoggedInUserPortalAdmin(Long userId) {
+               try {
+                       String sql = "SELECT u.user_id, u.first_name, u.last_name, u.login_id "
+                                       + " FROM fn_user u, fn_user_role ur " + " WHERE u.user_id = ur.user_id " + " AND ur.user_id="
+                                       + userId + " AND ur.role_id=" + SYS_ADMIN_ROLE_ID;
+
+                       logQuery(sql);
+
+                       @SuppressWarnings("unchecked")
+                       List<PortalAdmin> portalAdmins = dataAccessService.executeSQLQuery(sql, PortalAdmin.class, null);
+                       logger.debug(EELFLoggerDelegate.debugLogger, portalAdmins.toString());
+                       if (portalAdmins == null || portalAdmins.size() <= 0) {
+                               return false;
+                       }
+                       return true;
+
+               } catch (Exception e) {
+                       logger.error(EELFLoggerDelegate.errorLogger,
+                                       "Exception occurred while performing isLoggedInUserPortalAdmin operation, Details: "
+                                                       + EcompPortalUtils.getStackTrace(e));
+                       return false;
+               }
+       }
+}