[PORTAL-16 PORTAL-18] Widget ms; staging
[portal.git] / ecomp-portal-BE-common / src / main / java / org / openecomp / portalapp / portal / controller / UserController.java
1 package org.openecomp.portalapp.portal.controller;
2
3 import javax.servlet.http.HttpServletRequest;
4
5 import org.openecomp.portalapp.controller.EPRestrictedBaseController;
6 import org.openecomp.portalapp.portal.domain.EPUser;
7 import org.openecomp.portalapp.portal.ecomp.model.PortalRestResponse;
8 import org.openecomp.portalapp.portal.ecomp.model.PortalRestStatusEnum;
9 import org.openecomp.portalapp.portal.logging.aop.EPAuditLog;
10 import org.openecomp.portalapp.portal.service.UserService;
11 import org.openecomp.portalapp.portal.transport.ProfileDetail;
12 import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
13 import org.openecomp.portalapp.util.EPUserUtils;
14 import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
15 import org.openecomp.portalsdk.core.onboarding.util.CipherUtil;
16 import org.openecomp.portalsdk.core.util.SystemProperties;
17 import org.springframework.beans.factory.annotation.Autowired;
18 import org.springframework.context.annotation.EnableAspectJAutoProxy;
19 import org.springframework.web.bind.annotation.RequestBody;
20 import org.springframework.web.bind.annotation.RequestMapping;
21 import org.springframework.web.bind.annotation.RequestMethod;
22 import org.springframework.web.bind.annotation.RestController;
23
24 @RestController
25 @org.springframework.context.annotation.Configuration
26 @EnableAspectJAutoProxy
27 @EPAuditLog
28 public class UserController extends EPRestrictedBaseController {
29
30         private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(UserController.class);
31
32         @Autowired
33         private UserService userService;
34
35         /**
36          * RESTful service method to get ECOMP Logged in User details.
37          * 
38          * @param request
39          *            HttpServletRequest
40          * 
41          * @return PortalRestResponse of EPUser
42          */
43         @RequestMapping(value = { "/portalApi/loggedinUser" }, method = RequestMethod.GET, produces = "application/json")
44         public PortalRestResponse<ProfileDetail> getLoggedinUser(HttpServletRequest request) {
45                 PortalRestResponse<ProfileDetail> portalRestResponse = null;
46                 try {
47                         EPUser user = EPUserUtils.getUserSession(request);
48                         ProfileDetail profileDetail = new ProfileDetail(user.getFirstName(), user.getLastName(),
49                                         user.getMiddleInitial(), user.getEmail(), user.getLoginId(),  CipherUtil.decrypt(user.getLoginPwd()));
50                         portalRestResponse = new PortalRestResponse<ProfileDetail>(PortalRestStatusEnum.OK, "success",
51                                         profileDetail);
52                         EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/loggedinUser", "result =", profileDetail);
53                 } catch (Exception e) {
54                         portalRestResponse = new PortalRestResponse<ProfileDetail>(PortalRestStatusEnum.ERROR, e.getMessage(),
55                                         null);
56                         logger.error(EELFLoggerDelegate.errorLogger, "getLoggedinUser failed", e);
57                 }
58                 return portalRestResponse;
59         }
60
61         /**
62          * RESTful service method to update ECOMP Logged in User in DB.
63          * 
64          * @param request
65          *            HttpServletRequest
66          * @param profileDetail
67          *            Body with user information
68          * @return PortalRestResponse of String
69          */
70         @RequestMapping(value = {
71                         "/portalApi/modifyLoggedinUser" }, method = RequestMethod.PUT, produces = "application/json")
72         public PortalRestResponse<String> modifyLoggedinUser(HttpServletRequest request,
73                         @RequestBody ProfileDetail profileDetail) {
74                 PortalRestResponse<String> portalRestResponse = null;
75                 try {
76                         String errorMsg = "";
77                         if (profileDetail.getFirstName().equals("") || profileDetail.getLastName().equals("")
78                                         || profileDetail.getEmail().equals("") || profileDetail.getLoginId().equals("")
79                                         || profileDetail.getLoginPassword().equals("")) {
80                                 errorMsg = "Required field(s) is missing";
81                                 portalRestResponse = new PortalRestResponse<String>(PortalRestStatusEnum.ERROR, errorMsg, null);
82                                 logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", errorMsg);
83                         } else {
84                                 EPUser user = EPUserUtils.getUserSession(request);
85                                 user.setFirstName(profileDetail.getFirstName());
86                                 user.setLastName(profileDetail.getLastName());
87                                 user.setEmail(profileDetail.getEmail());
88                                 user.setMiddleInitial(profileDetail.getMiddleName());
89                                 user.setLoginId(profileDetail.getLoginId());
90                                 user.setLoginPwd(CipherUtil.encrypt(profileDetail.getLoginPassword()));
91                                 userService.saveUser(user);
92                                 // Update user info in the session
93                                 request.getSession().setAttribute(SystemProperties.getProperty(SystemProperties.USER_ATTRIBUTE_NAME),
94                                                 user);
95                                 portalRestResponse = new PortalRestResponse<String>(PortalRestStatusEnum.OK, "success", null);
96                                 EcompPortalUtils.logAndSerializeObject(logger, "/portalApi/modifyLoggedinUser", "result =", user);
97                         }
98                 } catch (Exception e) {
99                         portalRestResponse = new PortalRestResponse<String>(PortalRestStatusEnum.ERROR, e.toString(), null);
100                         logger.error(EELFLoggerDelegate.errorLogger, "modifyLoggedinUser failed", e);
101                 }
102                 return portalRestResponse;
103         }
104 }