001/**
002 * Copyright 2005-2018 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.rice.kns.util;
017
018import org.apache.struts.Globals;
019import org.kuali.rice.kim.api.identity.Person;
020import org.kuali.rice.krad.UserSession;
021import org.kuali.rice.krad.exception.KualiExceptionIncident;
022import org.kuali.rice.krad.util.KRADConstants;
023
024import javax.servlet.http.HttpServletRequest;
025import java.util.HashMap;
026import java.util.Map;
027
028/**
029 * Utility methods for use with the incident report functionality.
030 *
031 * @author Kuali Rice Team (rice.collab@kuali.org)
032 *
033 * @deprecated Only used in KNS classes, use KRAD.
034 */
035@Deprecated
036public final class IncidentReportUtils {
037
038        /**
039     * Key to define the attribute stores exception properties such as
040     * user email, user name, component name, etc.
041     * <p>Value is exceptionProperties
042     */
043    public static final String EXCEPTION_PROPERTIES="exceptionProperties";
044    
045        private IncidentReportUtils() {
046                throw new UnsupportedOperationException("do not call");
047        }
048
049        public static Map<String, String> populateRequestForIncidentReport(Exception exception,
050                        String documentId, String componentName, HttpServletRequest request) {
051
052                // Create properties of form and user for additional information
053                // to be displayed or passing through JSP
054                Map<String, String> properties = new HashMap<String, String>();
055                properties.put(KualiExceptionIncident.DOCUMENT_ID, documentId);
056                String userEmail = "";
057                String userName = "";
058                String uuid = "";
059                // No specific forward for the caught exception, use default logic
060                // Get user information
061                UserSession userSession = (UserSession) request.getSession()
062                                .getAttribute(KRADConstants.USER_SESSION_KEY);
063                Person sessionUser = null;
064                if (userSession != null) {
065                        sessionUser = userSession.getPerson();
066                }
067                if (sessionUser != null) {
068                        userEmail = sessionUser.getEmailAddressUnmasked();
069                        userName = sessionUser.getName();
070                        uuid = sessionUser.getPrincipalName();
071                }
072                properties.put(KualiExceptionIncident.USER_EMAIL, userEmail);
073                properties.put(KualiExceptionIncident.USER_NAME, userName);
074                properties.put(KualiExceptionIncident.UUID, uuid);
075                properties.put(KualiExceptionIncident.COMPONENT_NAME, componentName);
076
077                // Reset the exception so the forward action can read it
078                request.setAttribute(Globals.EXCEPTION_KEY, exception);
079                // Set exception current information
080                request.setAttribute(EXCEPTION_PROPERTIES, properties);
081
082                return properties;
083
084        }
085}