nexus site path corrected
[portal.git] / ecomp-portal-BE / src / main / java / org / openecomp / portalapp / portal / controller / PortalAdminController.java
1 /*-
2  * ================================================================================
3  * eCOMP Portal
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ================================================================================
19  */
20 package org.openecomp.portalapp.portal.controller;
21
22 import java.util.List;
23
24 import javax.servlet.http.HttpServletRequest;
25 import javax.servlet.http.HttpServletResponse;
26
27 import org.openecomp.portalapp.controller.EPRestrictedBaseController;
28 import org.openecomp.portalapp.portal.domain.EPUser;
29 import org.openecomp.portalapp.portal.logging.aop.EPAuditLog;
30 import org.openecomp.portalapp.portal.service.AdminRolesService;
31 import org.openecomp.portalapp.portal.service.PortalAdminService;
32 import org.openecomp.portalapp.portal.transport.FieldsValidator;
33 import org.openecomp.portalapp.portal.transport.PortalAdmin;
34 import org.openecomp.portalapp.portal.utils.EcompPortalUtils;
35 import org.openecomp.portalapp.util.EPUserUtils;
36 import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
37 import org.springframework.beans.factory.annotation.Autowired;
38 import org.springframework.context.annotation.EnableAspectJAutoProxy;
39 import org.springframework.web.bind.annotation.PathVariable;
40 import org.springframework.web.bind.annotation.RequestBody;
41 import org.springframework.web.bind.annotation.RequestMapping;
42 import org.springframework.web.bind.annotation.RequestMethod;
43 import org.springframework.web.bind.annotation.RestController;
44
45 @RestController
46 @org.springframework.context.annotation.Configuration
47 @EnableAspectJAutoProxy
48 @EPAuditLog
49 public class PortalAdminController extends EPRestrictedBaseController {
50         @Autowired
51         PortalAdminService portalAdminService;
52         @Autowired
53         AdminRolesService adminRolesService;
54
55         EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(PortalAdminController.class);
56
57         @RequestMapping(value = { "/portalApi/portalAdmins" }, method = RequestMethod.GET, produces = "application/json")
58         public List<PortalAdmin> getPortalAdmins(HttpServletRequest request, HttpServletResponse response) {
59                 EPUser user = EPUserUtils.getUserSession(request);
60                 List<PortalAdmin> portalAdmins = null;
61                 if (user == null) {
62                         logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.getPortalAdmins, null user");
63                         EcompPortalUtils.setBadPermissions(user, response, "getPortalAdmins");
64                 } else if (!adminRolesService.isSuperAdmin(user)) {
65                         logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.getPortalAdmins, bad permissions");
66                         EcompPortalUtils.setBadPermissions(user, response, "createPortalAdmin");
67                 } else {
68                         // return the list of portal admins
69                         portalAdmins = portalAdminService.getPortalAdmins();
70                         logger.debug(EELFLoggerDelegate.debugLogger, "portalAdmins: called getPortalAdmins()");
71                         EcompPortalUtils.logAndSerializeObject("/portalApi/getPortalAdmins", "result =", portalAdmins);
72                 }
73
74                 return portalAdmins;
75         }
76
77         /**
78          * RESTful service method to create a new portal admin. Requirement: you
79          * must be the Ecomp portal super admin user.
80          */
81
82         @RequestMapping(value = { "/portalApi/portalAdmin" }, method = RequestMethod.POST)
83         public FieldsValidator createPortalAdmin(HttpServletRequest request, @RequestBody String userid,
84                         HttpServletResponse response) {
85                 EPUser user = EPUserUtils.getUserSession(request);
86                 FieldsValidator fieldsValidator = null;
87                 if (user == null) {
88                         logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.createPortalAdmin, null user");
89                         EcompPortalUtils.setBadPermissions(user, response, "createPortalAdmin");
90                 } else if (!adminRolesService.isSuperAdmin(user)) {
91                         logger.debug(EELFLoggerDelegate.debugLogger, "PortalAdminController.createPortalAdmin bad permissions");
92                         EcompPortalUtils.setBadPermissions(user, response, "createPortalAdmin");
93                 } else {
94                         fieldsValidator = portalAdminService.createPortalAdmin(userid);
95                         response.setStatus(fieldsValidator.httpStatusCode.intValue());
96                 }
97                 EcompPortalUtils.logAndSerializeObject("/portalAdmin", "POST result =", response.getStatus());
98
99                 return fieldsValidator;
100         }
101
102         @RequestMapping(value = { "/portalApi/portalAdmin/{orgUserId}" }, method = RequestMethod.DELETE)
103         public FieldsValidator deletePortalAdmin(HttpServletRequest request, @PathVariable("orgUserId") Long orgUserId,
104                         HttpServletResponse response) {
105                 EPUser user = EPUserUtils.getUserSession(request);
106                 FieldsValidator fieldsValidator = null;
107                 if (!adminRolesService.isSuperAdmin(user)) {
108                         EcompPortalUtils.setBadPermissions(user, response, "deletePortalAdmin");
109                 } else {
110                         fieldsValidator = portalAdminService.deletePortalAdmin(orgUserId);
111                         response.setStatus(fieldsValidator.httpStatusCode.intValue());
112                 }
113                 EcompPortalUtils.logAndSerializeObject("/portalAdmin", "DELETE result =", response.getStatus());
114
115                 return fieldsValidator;
116         }
117 }