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.logging.logic.EELFLoggerDelegate;
33 import org.openecomp.portalsdk.core.service.RoleService;
34 import org.openecomp.portalsdk.core.web.support.JsonMessage;
35 import org.springframework.beans.factory.annotation.Autowired;
36 import org.springframework.stereotype.Controller;
37 import org.springframework.web.bind.annotation.RequestMapping;
38 import org.springframework.web.bind.annotation.RequestMethod;
39 import org.springframework.web.servlet.ModelAndView;
41 import com.fasterxml.jackson.databind.DeserializationFeature;
42 import com.fasterxml.jackson.databind.JsonNode;
43 import com.fasterxml.jackson.databind.ObjectMapper;
47 public class RoleListController extends RestrictedBaseController {
49 private EELFLoggerDelegate logger = EELFLoggerDelegate.getLogger(RoleListController.class);
53 private String viewName;
55 @RequestMapping(value = {"/role_list" }, method = RequestMethod.GET)
56 public ModelAndView getRoleList(HttpServletRequest request) {
57 Map<String, Object> model = new HashMap<String, Object>();
58 ObjectMapper mapper = new ObjectMapper();
61 model.put("availableRoles", mapper.writeValueAsString(service.getAvailableRoles()));
62 } catch (Exception e) {
63 logger.error(EELFLoggerDelegate.errorLogger, "getRoleList failed", e);
66 return new ModelAndView(getViewName(),model);
69 @RequestMapping(value = {"/get_roles" }, method = RequestMethod.GET)
70 public void getRoles(HttpServletRequest request, HttpServletResponse response) {
71 Map<String, Object> model = new HashMap<String, Object>();
72 ObjectMapper mapper = new ObjectMapper();
75 model.put("availableRoles", mapper.writeValueAsString(service.getAvailableRoles()));
76 JsonMessage msg = new JsonMessage(mapper.writeValueAsString(model));
77 JSONObject j = new JSONObject(msg);
78 response.getWriter().write(j.toString());
79 } catch (Exception e) {
80 logger.error(EELFLoggerDelegate.errorLogger, "getRoles failed", e);
85 @RequestMapping(value = {"/role_list/toggleRole" }, method = RequestMethod.POST)
86 public ModelAndView toggleRole(HttpServletRequest request,
87 HttpServletResponse response) throws Exception {
90 ObjectMapper mapper = new ObjectMapper();
91 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
92 JsonNode root = mapper.readTree(request.getReader());
93 Role role = mapper.readValue(root.get("role").toString(), Role.class);
95 Role domainRole = service.getRole(role.getId());
96 //role. toggle active ind
97 boolean active = domainRole.getActive();
98 domainRole.setActive(!active);
100 service.saveRole(domainRole);
101 logger.info(EELFLoggerDelegate.auditLogger, "Toggle active status for role " + domainRole.getId());
103 response.setCharacterEncoding("UTF-8");
104 response.setContentType("application / json");
105 request.setCharacterEncoding("UTF-8");
107 PrintWriter out = response.getWriter();
108 String responseString = mapper.writeValueAsString(service.getAvailableRoles());
109 JSONObject j = new JSONObject("{availableRoles: "+responseString+"}");
111 out.write(j.toString());
114 } catch (Exception e) {
115 logger.error(EELFLoggerDelegate.errorLogger, "toggleRole failed", e);
116 response.setCharacterEncoding("UTF-8");
117 request.setCharacterEncoding("UTF-8");
118 PrintWriter out = response.getWriter();
119 out.write(e.getMessage());
125 @RequestMapping(value = {"/role_list/removeRole" }, method = RequestMethod.POST)
126 public ModelAndView removeRole(HttpServletRequest request,
127 HttpServletResponse response) throws Exception {
131 ObjectMapper mapper = new ObjectMapper();
132 mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
133 JsonNode root = mapper.readTree(request.getReader());
134 Role role = mapper.readValue(root.get("role").toString(), Role.class);
136 Role domainRole = service.getRole(role.getId());
138 service.deleteDependcyRoleRecord(role.getId());
139 service.deleteRole(domainRole);
140 logger.info(EELFLoggerDelegate.auditLogger, "Remove role " + domainRole.getId());
142 response.setCharacterEncoding("UTF-8");
143 response.setContentType("application / json");
144 request.setCharacterEncoding("UTF-8");
146 PrintWriter out = response.getWriter();
148 String responseString = mapper.writeValueAsString(service.getAvailableRoles());
149 JSONObject j = new JSONObject("{availableRoles: "+responseString+"}");
150 out.write(j.toString());
153 } catch (Exception e) {
154 logger.error(EELFLoggerDelegate.errorLogger, "removeRole failed", e);
155 response.setCharacterEncoding("UTF-8");
156 request.setCharacterEncoding("UTF-8");
157 PrintWriter out = response.getWriter();
158 out.write(e.getMessage());
164 public String getViewName() {
167 public void setViewName(String viewName) {
168 this.viewName = viewName;