001    /**
002     * Copyright (c) 2000-present Liferay, Inc. All rights reserved.
003     *
004     * This library is free software; you can redistribute it and/or modify it under
005     * the terms of the GNU Lesser General Public License as published by the Free
006     * Software Foundation; either version 2.1 of the License, or (at your option)
007     * any later version.
008     *
009     * This library is distributed in the hope that it will be useful, but WITHOUT
010     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
011     * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
012     * details.
013     */
014    
015    package com.liferay.portlet.directory.asset;
016    
017    import com.liferay.portal.kernel.portlet.LiferayPortletRequest;
018    import com.liferay.portal.kernel.portlet.LiferayPortletResponse;
019    import com.liferay.portal.kernel.portlet.PortletProvider;
020    import com.liferay.portal.kernel.portlet.PortletProviderUtil;
021    import com.liferay.portal.model.User;
022    import com.liferay.portal.security.permission.ActionKeys;
023    import com.liferay.portal.security.permission.PermissionChecker;
024    import com.liferay.portal.service.permission.UserPermissionUtil;
025    import com.liferay.portal.theme.ThemeDisplay;
026    import com.liferay.portal.util.WebKeys;
027    import com.liferay.portlet.asset.model.BaseJSPAssetRenderer;
028    
029    import java.util.Locale;
030    
031    import javax.portlet.PortletRequest;
032    import javax.portlet.PortletResponse;
033    import javax.portlet.PortletURL;
034    
035    import javax.servlet.http.HttpServletRequest;
036    import javax.servlet.http.HttpServletResponse;
037    
038    /**
039     * @author Michael C. Han
040     * @author Sergio Gonz??lez
041     */
042    public class UserAssetRenderer extends BaseJSPAssetRenderer<User> {
043    
044            public UserAssetRenderer(User user) {
045                    _user = user;
046            }
047    
048            @Override
049            public User getAssetObject() {
050                    return _user;
051            }
052    
053            @Override
054            public String getClassName() {
055                    return User.class.getName();
056            }
057    
058            @Override
059            public long getClassPK() {
060                    return _user.getPrimaryKey();
061            }
062    
063            @Override
064            public String getDiscussionPath() {
065                    return null;
066            }
067    
068            @Override
069            public long getGroupId() {
070                    return 0;
071            }
072    
073            @Override
074            public String getJspPath(HttpServletRequest request, String template) {
075                    if (template.equals(TEMPLATE_ABSTRACT) ||
076                            template.equals(TEMPLATE_FULL_CONTENT)) {
077    
078                            return "/html/portlet/directory/asset/abstract.jsp";
079                    }
080                    else {
081                            return null;
082                    }
083            }
084    
085            @Override
086            public int getStatus() {
087                    return _user.getStatus();
088            }
089    
090            @Override
091            public String getSummary(
092                    PortletRequest portletRequest, PortletResponse portletResponse) {
093    
094                    return _user.getComments();
095            }
096    
097            @Override
098            public String getTitle(Locale locale) {
099                    return _user.getFullName();
100            }
101    
102            @Override
103            public PortletURL getURLEdit(
104                            LiferayPortletRequest liferayPortletRequest,
105                            LiferayPortletResponse liferayPortletResponse)
106                    throws Exception {
107    
108                    String portletId = PortletProviderUtil.getPortletId(
109                            User.class.getName(), PortletProvider.Action.VIEW);
110    
111                    PortletURL portletURL = liferayPortletResponse.createLiferayPortletURL(
112                            getControlPanelPlid(liferayPortletRequest), portletId,
113                            PortletRequest.RENDER_PHASE);
114    
115                    portletURL.setParameter(
116                            "mvcRenderCommandName", "/users_admin/edit_user");
117                    portletURL.setParameter("p_u_i_d", String.valueOf(_user.getUserId()));
118    
119                    return portletURL;
120            }
121    
122            @Override
123            public String getUrlTitle() {
124                    return _user.getScreenName();
125            }
126    
127            @Override
128            public String getURLViewInContext(
129                    LiferayPortletRequest liferayPortletRequest,
130                    LiferayPortletResponse liferayPortletResponse,
131                    String noSuchEntryRedirect) {
132    
133                    ThemeDisplay themeDisplay =
134                            (ThemeDisplay)liferayPortletRequest.getAttribute(
135                                    WebKeys.THEME_DISPLAY);
136    
137                    try {
138                            return _user.getDisplayURL(themeDisplay);
139                    }
140                    catch (Exception e) {
141                    }
142    
143                    return noSuchEntryRedirect;
144            }
145    
146            @Override
147            public long getUserId() {
148                    return _user.getUserId();
149            }
150    
151            @Override
152            public String getUserName() {
153                    return _user.getFullName();
154            }
155    
156            @Override
157            public String getUuid() {
158                    return _user.getUuid();
159            }
160    
161            @Override
162            public boolean hasEditPermission(PermissionChecker permissionChecker) {
163                    return UserPermissionUtil.contains(
164                            permissionChecker, _user.getUserId(), ActionKeys.UPDATE);
165            }
166    
167            @Override
168            public boolean hasViewPermission(PermissionChecker permissionChecker) {
169                    return UserPermissionUtil.contains(
170                            permissionChecker, _user.getUserId(), ActionKeys.VIEW);
171            }
172    
173            @Override
174            public boolean include(
175                            HttpServletRequest request, HttpServletResponse response,
176                            String template)
177                    throws Exception {
178    
179                    request.setAttribute(WebKeys.USER, _user);
180    
181                    return super.include(request, response, template);
182            }
183    
184            @Override
185            public boolean isPrintable() {
186                    return false;
187            }
188    
189            @Override
190            protected String getIconPath(ThemeDisplay themeDisplay) {
191                    return themeDisplay.getPathThemeImages() + "/common/user_icon.png";
192            }
193    
194            private final User _user;
195    
196    }