1 package com.dotmarketing.portlets.folders.action; 2 3 import java.net.URLDecoder ; 4 5 import javax.portlet.PortletConfig; 6 import javax.portlet.RenderRequest; 7 import javax.portlet.RenderResponse; 8 import javax.servlet.jsp.PageContext ; 9 10 import org.apache.struts.action.ActionForm; 11 import org.apache.struts.action.ActionForward; 12 import org.apache.struts.action.ActionMapping; 13 14 import com.dotmarketing.cms.factories.PublicRoleFactory; 15 import com.dotmarketing.factories.InodeFactory; 16 import com.dotmarketing.factories.RoleFactory; 17 import com.dotmarketing.portal.struts.DotPortletAction; 18 import com.dotmarketing.portlets.containers.model.Container; 19 import com.dotmarketing.portlets.folders.model.Folder; 20 import com.dotmarketing.portlets.structure.factories.StructureFactory; 21 import com.dotmarketing.portlets.structure.model.Structure; 22 import com.dotmarketing.util.Config; 23 import com.dotmarketing.util.Logger; 24 import com.dotmarketing.util.UtilMethods; 25 import com.dotmarketing.util.WebKeys; 26 import com.liferay.portal.ejb.RoleLocalManagerUtil; 27 import com.liferay.portal.model.Company; 28 import com.liferay.portal.model.Role; 29 import com.liferay.portal.model.User; 30 import com.liferay.portal.util.Constants; 31 32 38 public class LoadTreeAction extends DotPortletAction { 39 40 public ActionForward render(ActionMapping mapping, ActionForm form, PortletConfig config, RenderRequest req, 41 RenderResponse res) throws Exception { 42 43 Folder folder = null; 44 45 if (UtilMethods.isSet(req.getParameter("inode"))) { 46 folder = (Folder) InodeFactory.getInode(req.getParameter("inode"), Folder.class); 47 req.setAttribute(WebKeys.FOLDER_PARENT, folder); 48 } 49 java.util.List entryList = new java.util.ArrayList (); 50 51 try { 52 User user = _getUser(req); 53 54 if (user != null) { 55 java.util.Locale locale = user.getLocale(); 56 java.util.TimeZone timeZone = user.getTimeZone(); 57 com.liferay.portal.model.Role[] roles = (com.liferay.portal.model.Role[]) RoleFactory 58 .getAllRolesForUser(user.getUserId()).toArray(new com.liferay.portal.model.Role[0]); 59 60 String openNodes = req.getParameter("openNodes"); 61 62 String strContainer = req.getParameter("container"); 63 long structureInode = 0; 64 if (UtilMethods.isSet(strContainer)) { 65 Container container = (Container) InodeFactory.getInode(strContainer, Container.class); 66 if (container.getInode() > 0) { 67 Structure currentStructure = (Structure) InodeFactory.getParentOfClass(container, 68 Structure.class); 69 if (currentStructure.getInode() == 0) 70 currentStructure = StructureFactory.getDefaultStructure(); 71 structureInode = currentStructure.getInode(); 72 } 73 } 74 75 openNodes = URLDecoder.decode(openNodes, "UTF-8"); 76 String view = req.getParameter("view"); 77 try { 78 view = URLDecoder.decode(view, "UTF-8"); 79 } catch (Exception e) { 80 Logger.warn(this, "Couldn't decode view. It might be decoded already", e); 81 } 82 String content = req.getParameter("content"); 83 content = URLDecoder.decode(content, "UTF-8"); 84 85 boolean adminUser = false; 87 try { 88 89 String adminRoleId = ""; 90 91 Role adminRole = PublicRoleFactory.getCMSAdminRole(); 92 adminRoleId = adminRole.getRoleId(); 93 94 Role[] userRoles = roles; 95 for (int i = 0; i < userRoles.length; i++) { 96 Role userRole = (Role) userRoles[i]; 97 if (userRole.getRoleId().equals(adminRoleId)) { 98 adminUser = true; 99 break; 100 } 101 } 102 } catch (Exception e) { 103 Logger.debug(this, "render: exception trying to check admin user privilegies. ", e); 104 } 105 106 Logger.debug(this, "render: adminUser = " + adminUser); 107 108 if ((req.getParameter("contentOnly") != null) && (req.getParameter("contentOnly").equals("true")) 109 && (folder != null)) { 110 111 view = java.net.URLDecoder.decode(view, "UTF-8"); 112 entryList = com.dotmarketing.portlets.folders.factories.FolderFactory.getEntriesTree(folder, 113 openNodes, view, content, structureInode, locale, timeZone, roles, adminUser); 114 } else { 115 entryList = com.dotmarketing.portlets.folders.factories.FolderFactory.getFolderTree(openNodes, 116 view, content, structureInode, locale, timeZone, roles, adminUser); 117 } 118 119 req.setAttribute("cmsAdminUser", String.valueOf(adminUser)); 120 121 } else { 122 return mapping.findForward(Constants.COMMON_ERROR); 123 } 124 } catch (Exception e) { 125 Logger.warn(this, "EXCEPTION" + e.getMessage(), e); 126 } 127 128 req.setAttribute(WebKeys.FOLDER_ENTRY_LIST, entryList); 129 130 try { 131 return mapping.findForward("portlet.ext.folders.load_tree"); 132 } catch (Exception e) { 133 req.setAttribute(PageContext.EXCEPTION, e); 134 return mapping.findForward(Constants.COMMON_ERROR); 135 } 136 137 } 138 139 } | Popular Tags |