All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opencms.jsp.CmsJspTagUser Maven / Gradle / Ivy

/*
 * This library is part of OpenCms -
 * the Open Source Content Management System
 *
 * Copyright (c) Alkacon Software GmbH & Co. KG (http://www.alkacon.com)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2.1 of the License, or (at your option) any later version.
 *
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * For further information about Alkacon Software GmbH & Co. KG, please see the
 * company website: http://www.alkacon.com
 *
 * For further information about OpenCms, please see the
 * project website: http://www.opencms.org
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package org.opencms.jsp;

import org.opencms.file.CmsObject;
import org.opencms.file.CmsUser;
import org.opencms.flex.CmsFlexController;
import org.opencms.i18n.CmsMessageContainer;
import org.opencms.main.CmsLog;

import java.util.Arrays;
import java.util.Iterator;
import java.util.List;

import javax.servlet.ServletRequest;
import javax.servlet.jsp.tagext.TagSupport;

import org.apache.commons.logging.Log;

/**
 * Provides access to the data of the currently logged in user.

* * @since 6.0.0 */ public class CmsJspTagUser extends TagSupport { /** Serial version UID required for safe serialization. */ private static final long serialVersionUID = 4520173761363738542L; /** The log object for this class. */ private static final Log LOG = CmsLog.getLog(CmsJspTagUser.class); /** Static array of the possible user properties. */ private static final String[] USER_PROPERTIES = { "name", "firstname", "lastname", "email", "street", "zip", "city", "description", "group", "currentgroup", "defaultgroup", "otherstuff", "institution"}; /** Array list for fast lookup. */ private static final List USER_PROPERTIES_LIST = Arrays.asList(USER_PROPERTIES); /** The property name. */ private String m_property; /** * Internal action method.

* * @param property the selected user property * @param req the current request * @return String the value of the selected user property */ public static String userTagAction(String property, ServletRequest req) { CmsFlexController controller = CmsFlexController.getController(req); CmsObject cms = controller.getCmsObject(); CmsUser user = cms.getRequestContext().getCurrentUser(); if (property == null) { property = USER_PROPERTIES[0]; } String result = null; switch (USER_PROPERTIES_LIST.indexOf(property)) { case 0: // name result = user.getName(); break; case 1: // firstname result = user.getFirstname(); break; case 2: // lastname result = user.getLastname(); break; case 3: // email result = user.getEmail(); break; case 4: // street result = user.getAddress(); break; case 5: // zip result = user.getZipcode(); break; case 6: // city result = user.getCity(); break; case 7: // description result = user.getDescription(cms.getRequestContext().getLocale()); break; // following 3 attributes are no longer supported case 8: // group case 9: // currentgroup case 10: // defaultgroup result = ""; break; case 11: // otherstuff Iterator it = user.getAdditionalInfo().keySet().iterator(); CmsMessageContainer msgContainer = Messages.get().container(Messages.GUI_TAG_USER_ADDITIONALINFO_0); result = Messages.getLocalizedMessage(msgContainer, req); while (it.hasNext()) { Object o = it.next(); result += " " + o + "=" + user.getAdditionalInfo((String)o); } break; case 12: // institution result = user.getInstitution(); break; default: msgContainer = Messages.get().container(Messages.GUI_ERR_INVALID_USER_PROP_1, property); result = Messages.getLocalizedMessage(msgContainer, req); } return result; } /** * @see javax.servlet.jsp.tagext.Tag#doStartTag() */ @Override public int doStartTag() throws javax.servlet.jsp.JspException { javax.servlet.ServletRequest req = pageContext.getRequest(); // This will always be true if the page is called through OpenCms if (CmsFlexController.isCmsRequest(req)) { try { String result = userTagAction(m_property, req); // Return value of selected property pageContext.getOut().print(result); } catch (Exception ex) { if (LOG.isErrorEnabled()) { LOG.error(Messages.get().getBundle().key(Messages.ERR_PROCESS_TAG_1, "user"), ex); } throw new javax.servlet.jsp.JspException(ex); } } return SKIP_BODY; } /** * Returns the property name.

* * @return String the property name */ public String getProperty() { return m_property != null ? m_property : ""; } /** * @see javax.servlet.jsp.tagext.Tag#release() */ @Override public void release() { super.release(); m_property = null; } /** * Sets the property name.

* * @param name the property name */ public void setProperty(String name) { if (name != null) { m_property = name.toLowerCase(); } } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy