1 37 package org.jahia.blogs.actions; 38 39 import org.jahia.blogs.model.BlogInfo; 40 41 import org.jahia.data.containers.JahiaContainerList; 42 43 import org.jahia.data.fields.LoadFlags; 44 45 import org.jahia.services.usermanager.JahiaUser; 46 47 import org.jahia.services.pages.JahiaPage; 48 import org.jahia.services.pages.ContentPage; 49 import org.jahia.services.pages.JahiaPageDefinition; 50 import org.jahia.services.pages.JahiaPageBaseService; 51 52 import org.jahia.exceptions.JahiaException; 53 54 import java.util.Enumeration ; 55 import java.util.Vector ; 56 import java.util.Hashtable ; 57 58 import org.apache.log4j.Logger; 59 60 66 public class GetUserBlogsAction extends AbstractAction { 67 68 static Logger log = Logger.getLogger(GetUserBlogsAction.class); 70 71 72 public GetUserBlogsAction(String appKey, String userName, String password) { 73 super.appKey = appKey; 74 super.userName = userName; 75 super.password = password; 76 } 77 78 84 public Object execute() throws JahiaException { 85 86 super.init(); 88 89 final JahiaUser user = super.checkLogin(); 91 92 final JahiaPageDefinition pageDef = 94 servicesRegistry.getJahiaPageTemplateService() 95 .lookupPageTemplateByName("Blog", jParams.getSiteID()); 96 final Vector blogPagesId = 97 JahiaPageBaseService.getInstance().getPageIDsWithTemplate( 98 pageDef.getID()); 99 100 Enumeration blogPagesIdEnum = blogPagesId.elements(); 101 Vector result = new Vector (); 102 103 while (blogPagesIdEnum.hasMoreElements()) { 105 int blogPageId = ((Integer )blogPagesIdEnum.nextElement()).intValue(); 106 107 ContentPage blogContentPage = super.changePage(blogPageId); 108 109 int deleteVersionID = blogContentPage.getDeleteVersionID(); 110 111 if ((deleteVersionID != -1)) continue; 113 114 JahiaPage blogPage = 115 blogContentPage.getPage(jParams.getEntryLoadRequest(), 116 jParams.getOperationMode(), user); 117 if (blogPage != null) { 118 log.debug("Found blog ["+ blogPageId + "]: " + 119 blogPage.getTitle()); 120 121 final String containerListName = super.containerNames.getValue( 123 BlogDefinitionNames.BLOG_POSTS_LIST_NAME); 124 final int containerListID = containerService.getContainerListID( 125 containerListName, blogPageId); 126 127 boolean ok = false; 131 JahiaContainerList entryList = null; 132 if (containerListID == -1) { 133 log.debug("entryList does not exist"); 134 ok = blogPage.checkWriteAccess(user); 135 136 } else { 137 entryList = containerService. 138 loadContainerList(containerListID, LoadFlags.ALL, 139 jParams); 140 } 141 142 if ((entryList != null && entryList.checkWriteAccess(user)) || 145 ok) { 146 log.debug("User: "+user.getUsername()+" has write "+ 147 "access to blog: "+blogPage.getTitle()+ "(" + 148 blogPage.getID() + ")"); 149 150 Hashtable blogInfo = new Hashtable (3); 151 152 blogInfo.put(BlogInfo.BLOG_URL, super.getPageURL(blogPage)); 153 blogInfo.put(BlogInfo.BLOG_ID, Integer.toString( 154 blogPage.getID())); 155 blogInfo.put(BlogInfo.BLOG_NAME, blogPage.getTitle()); 156 157 result.add(blogInfo); 158 } 159 } 160 } 161 162 log.debug("Returning Blog info of "+result.size()+" blogs"); 163 return result; 164 } 165 } 166 | Popular Tags |