Sync Integ to Master
[sdc.git] / catalog-be / src / main / java / org / openecomp / sdc / be / ecomp / EcompIntImpl.java
index c88ec87..6ffa3a7 100644 (file)
 
 package org.openecomp.sdc.be.ecomp;
 
-import java.util.LinkedList;
-import java.util.List;
-
-import javax.servlet.http.HttpServletRequest;
-
+import fj.data.Either;
 import org.openecomp.portalsdk.core.onboarding.crossapi.IPortalRestAPIService;
 import org.openecomp.portalsdk.core.onboarding.exception.PortalAPIException;
 import org.openecomp.portalsdk.core.restful.domain.EcompRole;
@@ -44,343 +40,342 @@ import org.slf4j.LoggerFactory;
 import org.springframework.context.ApplicationContext;
 import org.springframework.web.context.ContextLoader;
 
-import fj.data.Either;
+import javax.servlet.http.HttpServletRequest;
+import java.util.LinkedList;
+import java.util.List;
+
 
-/*
- * PortalAPIException(String message, Throwable cause);
- */
 public class EcompIntImpl implements IPortalRestAPIService {
-       private static Logger log = LoggerFactory.getLogger(EcompIntImpl.class.getName());
-
-       public EcompIntImpl() {
-               log.debug("EcompIntImpl Class Instantiated");
-       }
-
-       @Override
-       public void pushUser(EcompUser user) throws PortalAPIException {
-               log.debug("Start handle request of ECOMP pushUser");
-               try {
-                       if (user == null) {
-                               BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "Recieved null for argument user", ErrorSeverity.INFO);
-                               log.debug("Recieved null for argument user");
-                               throw new PortalAPIException("Recieved null for argument user");
-                       }
-
-                       UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
-
-                       final String modifierAttId = "jh0003";
-                       User modifier = new User();
-                       modifier.setUserId(modifierAttId);
-                       log.debug("modifier id is {}", modifierAttId);
-
-                       Either<User, String> newASDCUser = EcompUserConverter.convertEcompUserToUser(user);
-                       if (newASDCUser.isRight()) {
-                               BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "Failed to convert user", ErrorSeverity.INFO);
-                               log.debug("Failed to create user {}", user.toString());
-                               throw new PortalAPIException("Failed to create user " + newASDCUser.right().value());
-                       } else if (newASDCUser.left().value() == null) {
-                               BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "NULL pointer returned from user converter", ErrorSeverity.INFO);
-                               log.debug("Failed to create user {}", user.toString());
-                               throw new PortalAPIException("Failed to create user " + newASDCUser.right().value());
-                       }
-
-                       User convertedAsdcUser = newASDCUser.left().value();
-                       Either<User, ResponseFormat> createUserResponse = userBusinessLogic.createUser(modifier, convertedAsdcUser);
-
-                       // ALREADY EXIST ResponseFormat
-                       final String ALREADY_EXISTS_RESPONSE_ID = "SVC4006";
-
-                       if (createUserResponse.isRight()) {
-                               if (!createUserResponse.right().value().getMessageId().equals(ALREADY_EXISTS_RESPONSE_ID)) {
-                                       log.debug("Failed to create user {}", user.toString());
-                                       BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "Failed to create user", ErrorSeverity.ERROR);
-                                       throw new PortalAPIException("Failed to create user" + createUserResponse.right());
-                               }
-                               log.debug("User already exist {}", user.toString());
-                       }
-                       log.debug("User created {}", user.toString());
-               } catch (Exception e) {
-                       log.debug("Failed to create user {}", user, e);
-                       BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "Failed to create user", ErrorSeverity.ERROR);
-                       throw new PortalAPIException("Failed to create user", e);
-               }
-       }
-
-       /*
-        * (non-Javadoc)
-        * 
-        * 
-        * loginId - equals to userId
-        * 
-        */
-       @Override
-       public void editUser(String loginId, EcompUser user) throws PortalAPIException {
-               log.debug("Start handle request of ECOMP editUser");
-
-               try {
-                       if (user == null) {
-                               log.debug("Recieved null for argument user");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "Recieved null for argument user", ErrorSeverity.INFO);
-                               throw new PortalAPIException("Recieved null for argument user");
-                       } else if (loginId == null) {
-                               log.debug("Recieved null for argument loginId");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "Recieved null for argument loginId", ErrorSeverity.INFO);
-                               throw new PortalAPIException("Recieved null for argument loginId");
-                       }
-
-                       UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
-
-                       if (user.getLoginId() != null && !user.getLoginId().equals(loginId)) {
-                               log.debug("loginId and user loginId not equal");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "loginId and user loginId not equal", ErrorSeverity.INFO);
-                               throw new PortalAPIException("loginId not equals to the user loginId field");
-                       } else if (user.getLoginId() == null) {
-                               user.setLoginId(loginId);
-                       }
-
-                       Either<User, String> asdcUser = EcompUserConverter.convertEcompUserToUser(user);
-                       if (asdcUser.isRight()) {
-                               log.debug("Failed to convert user");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "Failed to convert user", ErrorSeverity.INFO);
-                               throw new PortalAPIException(asdcUser.right().value());
-                       } else if (asdcUser.left().value() == null) {
-                               log.debug("NULL pointer returned from user converter");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "NULL pointer returned from user converter", ErrorSeverity.INFO);
-                               throw new PortalAPIException("Failed to edit user");
-                       }
-
-                       Either<User, ResponseFormat> updateUserCredentialsResponse = userBusinessLogic.updateUserCredentials(asdcUser.left().value());
-
-                       if (updateUserCredentialsResponse.isRight()) {
-                               log.debug("Failed to updateUserCredentials");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "Failed to updateUserCredentials", ErrorSeverity.ERROR);
-                               throw new PortalAPIException("Failed to edit user" + updateUserCredentialsResponse.right().value());
-                       }
-               } catch (Exception e) {
-                       log.debug("Failed to updateUserCredentials");
-                       throw new PortalAPIException("Failed to edit user", e);
-               }
-
-       }
-
-       @Override
-       public EcompUser getUser(String loginId) throws PortalAPIException {
-               log.debug("Start handle request of ECOMP getUser");
-
-               try {
-
-                       if (loginId == null) {
-                               log.debug("Recieved null for argument loginId");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("GetUser", "Recieved null for argument loginId", ErrorSeverity.INFO);
-                               throw new PortalAPIException("Recieved null for argument loginId");
-                       }
-
-                       UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
-
-                       Either<User, ActionStatus> getUserResponse = userBusinessLogic.getUser(loginId, false);
-
-                       if (getUserResponse.isRight()) {
-                               log.debug("Failed to get User");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("GetUser", "Failed to get User", ErrorSeverity.INFO);
-                               throw new PortalAPIException("Failed to get User" + getUserResponse.right());
-                       } else {
-                               if (getUserResponse.left().value() != null) {
-                                       Either<EcompUser, String> ecompUser = EcompUserConverter.convertUserToEcompUser(getUserResponse.left().value());
-                                       if (ecompUser.isLeft() && ecompUser.left().value() != null) {
-                                               return ecompUser.left().value();
-                                       } else {
-                                               log.debug("Failed to get User");
-                                               BeEcompErrorManager.getInstance().logInvalidInputError("GetUser", "Failed to get User", ErrorSeverity.INFO);
-                                               throw new PortalAPIException(ecompUser.right().value());
-                                       }
-                               } else {
-                                       log.debug("Failed to get User");
-                                       BeEcompErrorManager.getInstance().logInvalidInputError("GetUser", "Failed to get User", ErrorSeverity.INFO);
-                                       throw new PortalAPIException("Failed to get User" + getUserResponse.right());
-                               }
-                       }
-               } catch (Exception e) {
-                       log.debug("Failed to get User");
-                       throw new PortalAPIException("Failed to get User", e);
-               }
-       }
-
-       @Override
-       public List<EcompUser> getUsers() throws PortalAPIException {
-               log.debug("Start handle request of ECOMP getUsers");
-
-               try {
-                       UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
-
-                       final String modifierAttId = "jh0003";
-
-                       Either<List<User>, ResponseFormat> getUsersResponse = userBusinessLogic.getUsersList(modifierAttId, null, null);
-
-                       if (getUsersResponse.isRight()) {
-                               log.debug("Failed to get Users");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to get users", ErrorSeverity.INFO);
-                               throw new PortalAPIException("Failed to get Users" + getUsersResponse.right());
-                       } else {
-                               if (getUsersResponse.left().value() != null) {
-                                       List<EcompUser> ecompUserList = new LinkedList<>();
-                                       for (User user : getUsersResponse.left().value()) {
-                                               Either<EcompUser, String> ecompUser = EcompUserConverter.convertUserToEcompUser(user);
-                                               if (ecompUser.isRight()) {
-                                                       log.debug("Failed to convert User {}", user);
-                                                       BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to convert User" + user.toString(), ErrorSeverity.WARNING);
-                                                       continue;
-                                               } else if (ecompUser.left().value() == null) {
-                                                       log.debug("Failed to convert User {}", user);
-                                                       BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to convert User" + user.toString(), ErrorSeverity.WARNING);
-                                                       continue;
-                                               }
-                                               ecompUserList.add(ecompUser.left().value());
-                                       }
-                                       return ecompUserList;
-                               } else {
-                                       log.debug("Failed to get users");
-                                       BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to get users", ErrorSeverity.INFO);
-                                       throw new PortalAPIException("Failed to get Users" + getUsersResponse.right());
-                               }
-                       }
-               } catch (Exception e) {
-                       log.debug("Failed to get users");
-                       BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to get users", ErrorSeverity.INFO);
-                       throw new PortalAPIException("Failed to get Users", e);
-               }
-       }
-
-       @Override
-       public List<EcompRole> getAvailableRoles() throws PortalAPIException {
-               log.debug("Start handle request of ECOMP getAvailableRoles");
-               try {
-                       List<EcompRole> ecompRolesList = new LinkedList<>();
-                       for (Role role : Role.values()) {
-                               EcompRole ecompRole = new EcompRole();
-                               ecompRole.setId(new Long(role.ordinal()));
-                               ecompRole.setName(role.name());
-                               ecompRolesList.add(ecompRole);
-                       }
-
-                       if (ecompRolesList.isEmpty()) {
-                               throw new PortalAPIException();
-                       }
-
-                       return ecompRolesList;
-               } catch (Exception e) {
-                       log.debug("Failed to fetch roles");
-                       BeEcompErrorManager.getInstance().logInvalidInputError("GetAvailableRoles", "Failed to fetch roles", ErrorSeverity.INFO);
-                       throw new PortalAPIException("Roles fetching failed", e);
-               }
-
-       }
-
-       /**
-        * The user role updated through this method only
-        */
-       @Override
-       public void pushUserRole(String loginId, List<EcompRole> roles) throws PortalAPIException {
-               log.debug("Start handle request of ECOMP pushUserRole");
-
-               final String modifierAttId = "jh0003";
-               User modifier = new User();
-               modifier.setUserId(modifierAttId);
-               log.debug("modifier id is {}", modifierAttId);
-
-               UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
-
-               String updatedRole = null;
-
-               if (roles == null) {
-                       throw new PortalAPIException("Error: Recieved null for roles");                 
-               } else if (roles.iterator().hasNext()) {
-                       EcompRole ecompRole = roles.iterator().next();
-                       updatedRole = EcompRoleConverter.convertEcompRoleToRole(ecompRole);
-                       log.debug("pushing role: {} to user: {}", updatedRole, loginId);
-                       Either<User, ResponseFormat> updateUserRoleResponse = userBusinessLogic.updateUserRole(modifier, loginId, updatedRole);
-                       if (updateUserRoleResponse.isRight()) {
-                               log.debug("Error: Failed to update role");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("PushUserRole", "Failed to update role", ErrorSeverity.INFO);
-                               throw new PortalAPIException("Failed to update role" + updateUserRoleResponse.right().value().toString());
-                       }
-               } else {
-                       log.debug("Error: No roles in List");
-                       BeEcompErrorManager.getInstance().logInvalidInputError("PushUserRole", "Failed to fetch roles", ErrorSeverity.INFO);
-                       //throw new PortalAPIException("Error: No roles in List");
-                       //in this cases we want to deactivate the user
-                       Either<User, ResponseFormat> deActivateUserResponse = userBusinessLogic.deActivateUser(modifier, loginId);
-                       if (deActivateUserResponse.isRight()) {
-                               log.debug("Error: Failed to deactivate user {}",loginId);
-                               BeEcompErrorManager.getInstance().logInvalidInputError("PushUserRole", "Failed to deactivate user", ErrorSeverity.INFO);
-                               throw new PortalAPIException(deActivateUserResponse.right().value().getFormattedMessage());
-                       }
-               }               
-       }
-
-       @Override
-       public List<EcompRole> getUserRoles(String loginId) throws PortalAPIException {
-               try {
-                       log.debug("Start handle request of ECOMP getUserRoles");
-
-                       UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
-
-                       Either<User, ActionStatus> getUserResponse = userBusinessLogic.getUser(loginId, false);
-
-                       if (getUserResponse.isRight()) {
-                               log.debug("Error: Failed to get Roles");
-                               BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to get Roles", ErrorSeverity.INFO);
-                               throw new PortalAPIException("Failed to get Roles" + getUserResponse.right());
-                       } else {
-                               if (getUserResponse.left().value() != null) {
-                                       Either<EcompUser, String> ecompUser = EcompUserConverter.convertUserToEcompUser(getUserResponse.left().value());
-                                       if (ecompUser.isRight()) {
-                                               log.debug("Error: Failed to convert Roles");
-                                               BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to convert Roles", ErrorSeverity.ERROR);
-                                               throw new PortalAPIException(ecompUser.right().value());
-                                       } else if (ecompUser.left().value() == null) {
-                                               log.debug("Error: Failed to convert Roles");
-                                               BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to convert Roles", ErrorSeverity.ERROR);
-                                               throw new PortalAPIException();
-                                       }
-
-                                       return new LinkedList<>(ecompUser.left().value().getRoles());
-                               } else {
-                                       log.debug("Error: Failed to get Roles");
-                                       BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to get Roles", ErrorSeverity.ERROR);
-                                       throw new PortalAPIException("Failed to get Roles" + getUserResponse.right());
-                               }
-                       }
-               } catch (Exception e) {
-                       log.debug("Error: Failed to get Roles");
-                       BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to get Roles", ErrorSeverity.INFO);
-                       throw new PortalAPIException("Failed to get Roles", e);
-               }
-       }
-
-       @Override
-       public boolean isAppAuthenticated(HttpServletRequest request) throws PortalAPIException {
-               // TODO Validation should be changed completely
-               final String USERNAME = request.getHeader("username");
-               final String PASSWORD = request.getHeader("password");
-
-               if (USERNAME != null && PASSWORD != null) {
-                       if (!USERNAME.equals("") && !PASSWORD.equals("")) {
-                               log.debug("User authenticated - Username: ,Password: {}", USERNAME, PASSWORD);
-                               return true;
-                       }
-               }
-
-               log.debug("User authentication failed");
-               return false;
-       }
-
-       private UserBusinessLogic getUserBusinessLogic() {
-               ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();
-               UserBusinessLogic userBusinessLogic = (UserBusinessLogic) ctx.getBean("userBusinessLogic");
-               return userBusinessLogic;
-       }
-       
-       /**
+    private static final Logger log = LoggerFactory.getLogger(EcompIntImpl.class);
+
+    public EcompIntImpl() {
+        log.debug("EcompIntImpl Class Instantiated");
+    }
+
+    @Override
+    public void pushUser(EcompUser user) throws PortalAPIException {
+        log.debug("Start handle request of ECOMP pushUser");
+        try {
+            if (user == null) {
+                BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "Recieved null for argument user", ErrorSeverity.INFO);
+                log.debug("Recieved null for argument user");
+                throw new PortalAPIException("Recieved null for argument user");
+            }
+
+            UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
+
+            final String modifierAttId = "jh0003";
+            User modifier = new User();
+            modifier.setUserId(modifierAttId);
+            log.debug("modifier id is {}", modifierAttId);
+
+            Either<User, String> newASDCUser = EcompUserConverter.convertEcompUserToUser(user);
+            if (newASDCUser.isRight()) {
+                BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "Failed to convert user", ErrorSeverity.INFO);
+                log.debug("Failed to create user {}", user);
+                throw new PortalAPIException("Failed to create user " + newASDCUser.right().value());
+            } else if (newASDCUser.left().value() == null) {
+                BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "NULL pointer returned from user converter", ErrorSeverity.INFO);
+                log.debug("Failed to create user {}", user);
+                throw new PortalAPIException("Failed to create user " + newASDCUser.right().value());
+            }
+
+            User convertedAsdcUser = newASDCUser.left().value();
+            Either<User, ResponseFormat> createUserResponse = userBusinessLogic.createUser(modifier, convertedAsdcUser);
+
+            // ALREADY EXIST ResponseFormat
+            final String ALREADY_EXISTS_RESPONSE_ID = "SVC4006";
+
+            if (createUserResponse.isRight()) {
+                if (!createUserResponse.right().value().getMessageId().equals(ALREADY_EXISTS_RESPONSE_ID)) {
+                    log.debug("Failed to create user {}", user);
+                    BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "Failed to create user", ErrorSeverity.ERROR);
+                    throw new PortalAPIException("Failed to create user" + createUserResponse.right());
+                }
+                log.debug("User already exist {}", user);
+            }
+            log.debug("User created {}", user);
+        } catch (Exception e) {
+            log.debug("Failed to create user {}", user, e);
+            BeEcompErrorManager.getInstance().logInvalidInputError("PushUser", "Failed to create user", ErrorSeverity.ERROR);
+            throw new PortalAPIException("Failed to create user", e);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     *
+     *
+     * loginId - equals to userId
+     *
+     */
+    @Override
+    public void editUser(String loginId, EcompUser user) throws PortalAPIException {
+        log.debug("Start handle request of ECOMP editUser");
+
+        try {
+            if (user == null) {
+                log.debug("Recieved null for argument user");
+                BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "Recieved null for argument user", ErrorSeverity.INFO);
+                throw new PortalAPIException("Recieved null for argument user");
+            } else if (loginId == null) {
+                log.debug("Recieved null for argument loginId");
+                BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "Recieved null for argument loginId", ErrorSeverity.INFO);
+                throw new PortalAPIException("Recieved null for argument loginId");
+            }
+
+            UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
+
+            if (user.getLoginId() != null && !user.getLoginId().equals(loginId)) {
+                log.debug("loginId and user loginId not equal");
+                BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "loginId and user loginId not equal", ErrorSeverity.INFO);
+                throw new PortalAPIException("loginId not equals to the user loginId field");
+            } else if (user.getLoginId() == null) {
+                user.setLoginId(loginId);
+            }
+
+            Either<User, String> asdcUser = EcompUserConverter.convertEcompUserToUser(user);
+            if (asdcUser.isRight()) {
+                log.debug("Failed to convert user");
+                BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "Failed to convert user", ErrorSeverity.INFO);
+                throw new PortalAPIException(asdcUser.right().value());
+            } else if (asdcUser.left().value() == null) {
+                log.debug("NULL pointer returned from user converter");
+                BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "NULL pointer returned from user converter", ErrorSeverity.INFO);
+                throw new PortalAPIException("Failed to edit user");
+            }
+
+            Either<User, ResponseFormat> updateUserCredentialsResponse = userBusinessLogic.updateUserCredentials(asdcUser.left().value());
+
+            if (updateUserCredentialsResponse.isRight()) {
+                log.debug("Failed to updateUserCredentials");
+                BeEcompErrorManager.getInstance().logInvalidInputError("EditUser", "Failed to updateUserCredentials", ErrorSeverity.ERROR);
+                throw new PortalAPIException("Failed to edit user" + updateUserCredentialsResponse.right().value());
+            }
+        } catch (Exception e) {
+            log.debug("Failed to updateUserCredentials");
+            throw new PortalAPIException("Failed to edit user", e);
+        }
+
+    }
+
+    @Override
+    public EcompUser getUser(String loginId) throws PortalAPIException {
+        log.debug("Start handle request of ECOMP getUser");
+
+        try {
+
+            if (loginId == null) {
+                log.debug("Recieved null for argument loginId");
+                BeEcompErrorManager.getInstance().logInvalidInputError("GetUser", "Recieved null for argument loginId", ErrorSeverity.INFO);
+                throw new PortalAPIException("Recieved null for argument loginId");
+            }
+
+            UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
+
+            Either<User, ActionStatus> getUserResponse = userBusinessLogic.getUser(loginId, false);
+
+            if (getUserResponse.isRight()) {
+                log.debug("Failed to get User");
+                BeEcompErrorManager.getInstance().logInvalidInputError("GetUser", "Failed to get User", ErrorSeverity.INFO);
+                throw new PortalAPIException("Failed to get User" + getUserResponse.right());
+            } else {
+                if (getUserResponse.left().value() != null) {
+                    Either<EcompUser, String> ecompUser = EcompUserConverter.convertUserToEcompUser(getUserResponse.left().value());
+                    if (ecompUser.isLeft() && ecompUser.left().value() != null) {
+                        return ecompUser.left().value();
+                    } else {
+                        log.debug("Failed to get User");
+                        BeEcompErrorManager.getInstance().logInvalidInputError("GetUser", "Failed to get User", ErrorSeverity.INFO);
+                        throw new PortalAPIException(ecompUser.right().value());
+                    }
+                } else {
+                    log.debug("Failed to get User");
+                    BeEcompErrorManager.getInstance().logInvalidInputError("GetUser", "Failed to get User", ErrorSeverity.INFO);
+                    throw new PortalAPIException("Failed to get User" + getUserResponse.right());
+                }
+            }
+        } catch (Exception e) {
+            log.debug("Failed to get User");
+            throw new PortalAPIException("Failed to get User", e);
+        }
+    }
+
+    @Override
+    public List<EcompUser> getUsers() throws PortalAPIException {
+        log.debug("Start handle request of ECOMP getUsers");
+
+        try {
+            UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
+
+            final String modifierAttId = "jh0003";
+
+            Either<List<User>, ResponseFormat> getUsersResponse = userBusinessLogic.getUsersList(modifierAttId, null, null);
+
+            if (getUsersResponse.isRight()) {
+                log.debug("Failed to get Users");
+                BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to get users", ErrorSeverity.INFO);
+                throw new PortalAPIException("Failed to get Users" + getUsersResponse.right());
+            } else {
+                if (getUsersResponse.left().value() != null) {
+                    List<EcompUser> ecompUserList = new LinkedList<>();
+                    for (User user : getUsersResponse.left().value()) {
+                        Either<EcompUser, String> ecompUser = EcompUserConverter.convertUserToEcompUser(user);
+                        if (ecompUser.isRight()) {
+                            log.debug("Failed to convert User {}", user);
+                            BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to convert User" + user.toString(), ErrorSeverity.WARNING);
+                            continue;
+                        } else if (ecompUser.left().value() == null) {
+                            log.debug("Failed to convert User {}", user);
+                            BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to convert User" + user.toString(), ErrorSeverity.WARNING);
+                            continue;
+                        }
+                        ecompUserList.add(ecompUser.left().value());
+                    }
+                    return ecompUserList;
+                } else {
+                    log.debug("Failed to get users");
+                    BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to get users", ErrorSeverity.INFO);
+                    throw new PortalAPIException("Failed to get Users" + getUsersResponse.right());
+                }
+            }
+        } catch (Exception e) {
+            log.debug("Failed to get users");
+            BeEcompErrorManager.getInstance().logInvalidInputError("GetUsers", "Failed to get users", ErrorSeverity.INFO);
+            throw new PortalAPIException("Failed to get Users", e);
+        }
+    }
+
+    @Override
+    public List<EcompRole> getAvailableRoles() throws PortalAPIException {
+        log.debug("Start handle request of ECOMP getAvailableRoles");
+        try {
+            List<EcompRole> ecompRolesList = new LinkedList<>();
+            for (Role role : Role.values()) {
+                EcompRole ecompRole = new EcompRole();
+                ecompRole.setId(new Long(role.ordinal()));
+                ecompRole.setName(role.name());
+                ecompRolesList.add(ecompRole);
+            }
+
+            if (ecompRolesList.isEmpty()) {
+                throw new PortalAPIException();
+            }
+
+            return ecompRolesList;
+        } catch (Exception e) {
+            log.debug("Failed to fetch roles");
+            BeEcompErrorManager.getInstance().logInvalidInputError("GetAvailableRoles", "Failed to fetch roles", ErrorSeverity.INFO);
+            throw new PortalAPIException("Roles fetching failed", e);
+        }
+
+    }
+
+    /**
+     * The user role updated through this method only
+     */
+    @Override
+    public void pushUserRole(String loginId, List<EcompRole> roles) throws PortalAPIException {
+        log.debug("Start handle request of ECOMP pushUserRole");
+
+        final String modifierAttId = "jh0003";
+        User modifier = new User();
+        modifier.setUserId(modifierAttId);
+        log.debug("modifier id is {}", modifierAttId);
+
+        UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
+
+        String updatedRole = null;
+
+        if (roles == null) {
+            throw new PortalAPIException("Error: Recieved null for roles");
+        } else if (roles.iterator().hasNext()) {
+            EcompRole ecompRole = roles.iterator().next();
+            updatedRole = EcompRoleConverter.convertEcompRoleToRole(ecompRole);
+            log.debug("pushing role: {} to user: {}", updatedRole, loginId);
+            Either<User, ResponseFormat> updateUserRoleResponse = userBusinessLogic.updateUserRole(modifier, loginId, updatedRole);
+            if (updateUserRoleResponse.isRight()) {
+                log.debug("Error: Failed to update role");
+                BeEcompErrorManager.getInstance().logInvalidInputError("PushUserRole", "Failed to update role", ErrorSeverity.INFO);
+                throw new PortalAPIException("Failed to update role" + updateUserRoleResponse.right().value().toString());
+            }
+        } else {
+            log.debug("Error: No roles in List");
+            BeEcompErrorManager.getInstance().logInvalidInputError("PushUserRole", "Failed to fetch roles", ErrorSeverity.INFO);
+            //in this cases we want to deactivate the user
+            Either<User, ResponseFormat> deActivateUserResponse = userBusinessLogic.deActivateUser(modifier, loginId);
+            if (deActivateUserResponse.isRight()) {
+                log.debug("Error: Failed to deactivate user {}",loginId);
+                BeEcompErrorManager.getInstance().logInvalidInputError("PushUserRole", "Failed to deactivate user", ErrorSeverity.INFO);
+                throw new PortalAPIException(deActivateUserResponse.right().value().getFormattedMessage());
+            }
+        }
+    }
+
+    @Override
+    public List<EcompRole> getUserRoles(String loginId) throws PortalAPIException {
+        try {
+            log.debug("Start handle request of ECOMP getUserRoles");
+
+            UserBusinessLogic userBusinessLogic = getUserBusinessLogic();
+
+            Either<User, ActionStatus> getUserResponse = userBusinessLogic.getUser(loginId, false);
+
+            if (getUserResponse.isRight()) {
+                log.debug("Error: Failed to get Roles");
+                BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to get Roles", ErrorSeverity.INFO);
+                throw new PortalAPIException("Failed to get Roles" + getUserResponse.right());
+            } else {
+                if (getUserResponse.left().value() != null) {
+                    Either<EcompUser, String> ecompUser = EcompUserConverter.convertUserToEcompUser(getUserResponse.left().value());
+                    if (ecompUser.isRight()) {
+                        log.debug("Error: Failed to convert Roles");
+                        BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to convert Roles", ErrorSeverity.ERROR);
+                        throw new PortalAPIException(ecompUser.right().value());
+                    } else if (ecompUser.left().value() == null) {
+                        log.debug("Error: Failed to convert Roles");
+                        BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to convert Roles", ErrorSeverity.ERROR);
+                        throw new PortalAPIException();
+                    }
+
+                    return new LinkedList<>(ecompUser.left().value().getRoles());
+                } else {
+                    log.debug("Error: Failed to get Roles");
+                    BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to get Roles", ErrorSeverity.ERROR);
+                    throw new PortalAPIException("Failed to get Roles" + getUserResponse.right());
+                }
+            }
+        } catch (Exception e) {
+            log.debug("Error: Failed to get Roles");
+            BeEcompErrorManager.getInstance().logInvalidInputError("GetUserRoles", "Failed to get Roles", ErrorSeverity.INFO);
+            throw new PortalAPIException("Failed to get Roles", e);
+        }
+    }
+
+    @Override
+    public boolean isAppAuthenticated(HttpServletRequest request) throws PortalAPIException {
+        // TODO Validation should be changed completely
+        final String USERNAME = request.getHeader("username");
+        final String PASSWORD = request.getHeader("password");
+
+        if (USERNAME != null && PASSWORD != null) {
+            if (!USERNAME.equals("") && !PASSWORD.equals("")) {
+                log.debug("User authenticated - Username: ,Password: {}", USERNAME, PASSWORD);
+                return true;
+            }
+        }
+
+        log.debug("User authentication failed");
+        return false;
+    }
+
+    private UserBusinessLogic getUserBusinessLogic() {
+        ApplicationContext ctx = ContextLoader.getCurrentWebApplicationContext();
+        UserBusinessLogic userBusinessLogic = (UserBusinessLogic) ctx.getBean("userBusinessLogic");
+        return userBusinessLogic;
+    }
+
+    /**
      * Gets and returns the userId for the logged-in user based on the request.
      * If any error occurs, the method should throw PortalApiException with an
      * appropriate message. The FW library will catch the exception and send an
@@ -399,8 +394,8 @@ public class EcompIntImpl implements IPortalRestAPIService {
      * @throws PortalAPIException
      *             If an unexpected error occurs while processing the request.
      */
-       @Override
-       public String getUserId(HttpServletRequest request) throws PortalAPIException {
-               return request.getHeader(Constants.USER_ID_HEADER);
-       }
+    @Override
+    public String getUserId(HttpServletRequest request) throws PortalAPIException {
+        return request.getHeader(Constants.USER_ID_HEADER);
+    }
 }