2 * ================================================================================
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
11 * http://www.apache.org/licenses/LICENSE-2.0
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 * ================================================================================
20 package org.openecomp.portalapp.controller.core;
22 import java.io.PrintWriter;
23 import java.util.HashMap;
26 import javax.servlet.http.HttpServletRequest;
27 import javax.servlet.http.HttpServletResponse;
29 import org.json.JSONObject;
30 import org.openecomp.portalsdk.core.controller.RestrictedBaseController;
31 import org.openecomp.portalsdk.core.domain.Role;
32 import org.openecomp.portalsdk.core.domain.User;
33 import org.openecomp.portalsdk.core.logging.logic.EELFLoggerDelegate;
34 import org.openecomp.portalsdk.core.service.RoleService;
35 import org.openecomp.portalsdk.core.web.support.JsonMessage;
36 import org.openecomp.portalsdk.core.web.support.UserUtils;
37 import org.springframework.beans.factory.annotation.Autowired;
38 import org.springframework.stereotype.Controller;
39 import org.springframework.web.bind.annotation.RequestMapping;
40 import org.springframework.web.bind.annotation.RequestMethod;
41 import org.springframework.web.servlet.ModelAndView;
43 import com.fasterxml.jackson.databind.DeserializationFeature;
44 import com.fasterxml.jackson.databind.JsonNode;
45 import com.fasterxml.jackson.databind.ObjectMapper;
49 public class RoleListController extends RestrictedBaseController {
52 private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RoleListController.class);
56 private String viewName;
58 @RequestMapping(value = {"/role_list" }, method = RequestMethod.GET)
59 public ModelAndView getRoleList(HttpServletRequest request) {
60 Map<String, Object> model = new HashMap<String, Object>();
61 ObjectMapper mapper = new ObjectMapper();
62 User user = UserUtils.getUserSession(request);
66 model.put("availableRoles", mapper.writeValueAsString(service.getAvailableRoles(user.getOrgUserId())));
67 } catch (Exception e) {
68 logger.error(EELFLoggerDelegate.errorLogger, "getRoleList failed", e);
71 return new ModelAndView(getViewName(),model);
74 @RequestMapping(value = {"/get_roles" }, method = RequestMethod.GET)
75 public void getRoles(HttpServletRequest request, HttpServletResponse response) {
76 Map<String, Object> model = new HashMap<String, Object>();
77 ObjectMapper mapper = new ObjectMapper();
78 User user = UserUtils.getUserSession(request);
82 model.put("availableRoles", mapper.writeValueAsString(service.getAvailableRoles(user.getOrgUserId())));
83 JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
84 JSONObject j = new JSONObject(msg);
85 response.getWriter().write(j.toString());
86 } catch (Exception e) {
87 logger.error(EELFLoggerDelegate.errorLogger, "getRoles failed", e);
92 @RequestMapping(value = {"/role_list/toggleRole" }, method = RequestMethod.POST)
93 public ModelAndView toggleRole(HttpServletRequest request,
94 HttpServletResponse response) throws Exception {
95 User user = UserUtils.getUserSession(request);
99 ObjectMapper mapper = new ObjectMapper();
100 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
101 JsonNode root = mapper.readTree(request.getReader());
102 Role role = mapper.readValue(root.get("role").toString(), Role.class);
104 Role domainRole = service.getRole(user.getOrgUserId(),role.getId());
105 //role. toggle active ind
106 boolean active = domainRole.getActive();
107 domainRole.setActive(!active);
109 service.saveRole(user.getOrgUserId(),domainRole);
110 logger.info(EELFLoggerDelegate.auditLogger, "Toggle active status for role " + domainRole.getId());
112 response.setCharacterEncoding("UTF-8");
113 response.setContentType("application / json");
114 request.setCharacterEncoding("UTF-8");
116 PrintWriter out = response.getWriter();
117 String responseString = mapper.writeValueAsString(service.getAvailableRoles(user.getOrgUserId()));
118 JSONObject j = new JSONObject("{availableRoles: "+responseString+"}");
120 out.write(j.toString());
123 } catch (Exception e) {
124 logger.error(EELFLoggerDelegate.errorLogger, "toggleRole failed", e);
125 response.setCharacterEncoding("UTF-8");
126 request.setCharacterEncoding("UTF-8");
127 PrintWriter out = response.getWriter();
128 out.write(e.getMessage());
134 @RequestMapping(value = {"/role_list/removeRole" }, method = RequestMethod.POST)
135 public ModelAndView removeRole(HttpServletRequest request,
136 HttpServletResponse response) throws Exception {
137 User user = UserUtils.getUserSession(request);
141 ObjectMapper mapper = new ObjectMapper();
142 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
143 JsonNode root = mapper.readTree(request.getReader());
144 Role role = mapper.readValue(root.get("role").toString(), Role.class);
146 Role domainRole = service.getRole(user.getOrgUserId(),role.getId());
148 service.deleteDependcyRoleRecord(user.getOrgUserId(),role.getId());
149 service.deleteRole(user.getOrgUserId(),domainRole);
150 logger.info(EELFLoggerDelegate.auditLogger, "Remove role " + domainRole.getId());
152 response.setCharacterEncoding("UTF-8");
153 response.setContentType("application / json");
154 request.setCharacterEncoding("UTF-8");
156 PrintWriter out = response.getWriter();
158 String responseString = mapper.writeValueAsString(service.getAvailableRoles(user.getOrgUserId()));
159 JSONObject j = new JSONObject("{availableRoles: "+responseString+"}");
160 out.write(j.toString());
163 } catch (Exception e) {
164 logger.error(EELFLoggerDelegate.errorLogger, "removeRole failed", e);
165 response.setCharacterEncoding("UTF-8");
166 request.setCharacterEncoding("UTF-8");
167 PrintWriter out = response.getWriter();
168 out.write(e.getMessage());
174 public String getViewName() {
177 public void setViewName(String viewName) {
178 this.viewName = viewName;