Deleted User Role Mapping 81/113881/1
authorSudarshan Kumar <sudarshan.kumar@att.com>
Wed, 14 Oct 2020 10:00:16 +0000 (15:30 +0530)
committerSudarshan Kumar <sudarshan.kumar@att.com>
Wed, 14 Oct 2020 10:02:23 +0000 (15:32 +0530)
Delete User Role Mapping in Portal DB if the same role is already deleted from AAF

Issue-ID: PORTAL-1029
Change-Id: I2b15c1ce49a9a65160abb1f502590490c88b7256
Signed-off-by: Sudarshan Kumar <sudarshan.kumar@att.com>
ecomp-portal-BE-common/src/main/java/org/onap/portalapp/portal/service/ExternalAccessRolesServiceImpl.java

index ad06dd9..acc8351 100644 (file)
@@ -2812,6 +2812,11 @@ public class ExternalAccessRolesServiceImpl implements ExternalAccessRolesServic
                                                EPRole updateRoleInactive = roleList.get(0);
                                                updateRoleInactive.setActive(false);
                                                dataAccessService.saveDomainObject(updateRoleInactive, null);
+                                               
+                                               /**
+                                                * Newly Added - Deleting User Role association as this role is not present in AAF and got removed from AAF directly
+                                               */
+                                               deleteUserRoleAssociation(updateRoleInactive, app);
                                        }
                                }
                        } catch (Exception e) {
@@ -2820,6 +2825,25 @@ public class ExternalAccessRolesServiceImpl implements ExternalAccessRolesServic
                        }
                }
        }
+       
+       /**
+        * Delete User Role Association mapping in Portal DB - In case of particular role is already removed from AAF directly.
+        * @param epRole
+        */
+       private void deleteUserRoleAssociation(EPRole epRole, EPApp app) {              
+               Session localSession = sessionFactory.openSession();
+               Query query = null;
+               try {
+                       String sql = "DELETE FROM FN_USER_ROLE where role_id=" +epRole.getId() + " AND app_id=" +app.getId();
+                       logger.debug(EELFLoggerDelegate.debugLogger,"deleteUserRoleAssociation: sql :"+ sql);
+                       query = localSession.createSQLQuery(sql);
+                       query.executeUpdate();
+               } catch (Exception e) {
+                       logger.error(EELFLoggerDelegate.errorLogger, "deleteUserRoleAssociation: failed", e);
+               } finally {
+                       localSession.close();
+               }
+       }
 
        @Override
        @SuppressWarnings("unchecked")