KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > dotmarketing > factories > HostFactory


1 package com.dotmarketing.factories;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.Iterator JavaDoc;
5 import java.util.List JavaDoc;
6 import java.util.StringTokenizer JavaDoc;
7
8 import javax.portlet.ActionRequest;
9 import javax.portlet.RenderRequest;
10 import javax.servlet.ServletRequest JavaDoc;
11 import javax.servlet.http.HttpServletRequest JavaDoc;
12 import javax.servlet.http.HttpSession JavaDoc;
13
14 import com.dotmarketing.beans.Host;
15 import com.dotmarketing.beans.Permission;
16 import com.dotmarketing.beans.WebAsset;
17 import com.dotmarketing.cache.HostCache;
18 import com.dotmarketing.cms.factories.PublicRoleFactory;
19 import com.dotmarketing.portlets.folders.model.Folder;
20 import com.dotmarketing.util.Config;
21 import com.dotmarketing.util.UtilMethods;
22 import com.dotmarketing.util.WebKeys;
23 import com.liferay.portal.model.Role;
24 import com.liferay.portal.model.User;
25 import com.liferay.portlet.ActionRequestImpl;
26 import com.liferay.portlet.RenderRequestImpl;
27
28 /**
29  *
30  * @author David
31  */

32 public class HostFactory {
33     
34     public static Host getHost(long hostId) {
35         return (Host) InodeFactory.getInode(hostId, Host.class);
36     }
37     
38     public static Host getHost(String JavaDoc hostId) {
39         return (Host) InodeFactory.getInode(hostId, Host.class);
40     }
41     
42     public static Host getParentHost(WebAsset asset) {
43         if (WebAssetFactory.isAbstractAsset(asset)) {
44             return (Host) InodeFactory.getParentOfClass(asset,
45                     Host.class);
46         }
47         Folder parentFolder = (Folder) InodeFactory.getParentOfClass(asset,
48                 Folder.class);
49         return getParentHost(parentFolder);
50     }
51     
52     public static Host getParentHost(Folder folder) {
53         return HostFactory.getHost(folder.getHostInode());
54     }
55     
56     /**
57      * @param serverName
58      * @return
59      */

60     public static Host getHostByHostName(String JavaDoc hostname) {
61         Host host = (Host) InodeFactory.getInodeOfClassByCondition(Host.class,
62                 "hostname = '" + hostname + "'");
63         return host;
64     }
65     
66     /**
67      * @return
68      */

69     public static Host getDefaultHost() {
70         return (Host) InodeFactory.getInodeOfClassByCondition(Host.class,
71                 "is_default = " + com.dotmarketing.db.DbConnectionFactory.getDBTrue());
72     }
73     
74     @SuppressWarnings JavaDoc("unchecked")
75     public static List JavaDoc<Host> getAllHosts() {
76         return InodeFactory.getInodesOfClass(Host.class, "hostname");
77     }
78     
79     @SuppressWarnings JavaDoc("unchecked")
80     public static List JavaDoc<Host> getAllHostsByUser(User user) {
81         List JavaDoc<Host> hostListFinal = new ArrayList JavaDoc<Host>();
82         List JavaDoc<Host> hostList = InodeFactory.getInodesOfClass(Host.class, "hostname");
83         for(Host host :hostList){
84             if(PermissionFactory.doesUserHavePermission(host, Config.getIntProperty("PERMISSION_READ"),user)){
85                 hostListFinal.add(host);
86             }
87         }
88         return hostListFinal;
89     }
90     
91     /**
92      * @return
93      */

94     public static Host createDefaultHost() {
95         Host host = new Host();
96         host.setDefault(true);
97         host.setHostname("localhost");
98         InodeFactory.saveInode(host);
99         
100         Role cmsAdminRole = PublicRoleFactory.findRoleByName(Config
101                 .getStringProperty("CMS_ADMINISTRATOR_ROLE"));
102         
103         Permission cmsAdminPermission = new Permission();
104         cmsAdminPermission.setRoleId(Long.parseLong(cmsAdminRole.getRoleId()));
105         cmsAdminPermission.setPermission(Config
106                 .getIntProperty("PERMISSION_READ"));
107         cmsAdminPermission.setInode(host.getInode());
108         PermissionFactory.savePermission(cmsAdminPermission);
109         
110         cmsAdminPermission = new Permission();
111         cmsAdminPermission.setRoleId(Long.parseLong(cmsAdminRole.getRoleId()));
112         cmsAdminPermission.setPermission(Config
113                 .getIntProperty("PERMISSION_WRITE"));
114         cmsAdminPermission.setInode(host.getInode());
115         PermissionFactory.savePermission(cmsAdminPermission);
116         
117         cmsAdminPermission = new Permission();
118         cmsAdminPermission.setRoleId(Long.parseLong(cmsAdminRole.getRoleId()));
119         cmsAdminPermission.setPermission(Config
120                 .getIntProperty("PERMISSION_PUBLISH"));
121         cmsAdminPermission.setInode(host.getInode());
122         PermissionFactory.savePermission(cmsAdminPermission);
123         
124         
125         /* give the user the right to view/add folders to the host */
126         Role cmsUserRole = PublicRoleFactory.findRoleByName(Config
127                 .getStringProperty("CMS_USER_ROLE"));
128         
129         
130         Permission cmsUserPermission = new Permission();
131         cmsUserPermission.setRoleId(Long.parseLong(cmsUserRole.getRoleId()));
132         cmsUserPermission.setPermission(Config
133                 .getIntProperty("PERMISSION_READ"));
134         cmsUserPermission.setInode(host.getInode());
135         PermissionFactory.savePermission(cmsUserPermission);
136         
137         cmsUserPermission = new Permission();
138         cmsUserPermission.setRoleId(Long.parseLong(cmsUserRole.getRoleId()));
139         cmsUserPermission.setPermission(Config
140                 .getIntProperty("PERMISSION_WRITE"));
141         cmsUserPermission.setInode(host.getInode());
142         PermissionFactory.savePermission(cmsUserPermission);
143         return host;
144     }
145     
146     /**
147      * @param serverName
148      * @return
149      */

150     public static Host findHostByAliases(String JavaDoc serverName) {
151         List JavaDoc hosts = getAllHosts();
152         Iterator JavaDoc it = hosts.iterator();
153         Host retValue = new Host();
154         boolean found = false;
155         while (it.hasNext() && !found) {
156             Host host = (Host) it.next();
157             String JavaDoc aliases = host.getAliases();
158             if (UtilMethods.isSet(aliases)) {
159                 StringTokenizer JavaDoc tok = new StringTokenizer JavaDoc(aliases, ", \n\r\t");
160                 while (tok.hasMoreTokens()) {
161                     String JavaDoc alias = tok.nextToken();
162                     if (alias.equals(serverName)) {
163                         retValue = host;
164                         found = true;
165                         break;
166                     }
167                 }
168             }
169         }
170         return retValue;
171     }
172     
173     public static Host getCurrentHost(RenderRequest req) {
174         RenderRequestImpl imp = (RenderRequestImpl) req;
175         return HostFactory.getCurrentHost(imp.getHttpServletRequest());
176     }
177     
178     public static Host getCurrentHost(ActionRequest req) {
179         ActionRequestImpl imp = (ActionRequestImpl) req;
180         return HostFactory.getCurrentHost(imp.getHttpServletRequest());
181     }
182     
183     
184     public static Host getCurrentHost(ServletRequest JavaDoc req) {
185         return getCurrentHost(req, false);
186     }
187     
188     public static Host getCurrentHost(ServletRequest JavaDoc req, boolean isEditMode) {
189         Host host = null;
190         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc) req;
191         HttpSession JavaDoc session = request.getSession(false);
192         
193         if (req.getAttribute(WebKeys.CURRENT_HOST) != null) {
194             host = (Host) req.getAttribute(WebKeys.CURRENT_HOST);
195         } else if(isEditMode && session != null && session.getAttribute(WebKeys.CURRENT_HOST) != null){
196             host = (Host) session.getAttribute(WebKeys.CURRENT_HOST);
197         }else {
198             String JavaDoc serverName = req.getServerName();
199             host = HostCache.getFromCache(serverName);
200         }
201         return host;
202     }
203     
204     public static void setHostInRequest(ServletRequest JavaDoc req, Host host) {
205         HttpServletRequest JavaDoc request = (HttpServletRequest JavaDoc) req;
206         request.setAttribute(WebKeys.CURRENT_HOST, host);
207     }
208     
209     public static void setHostInRequest(ActionRequest req, Host host) {
210         ActionRequestImpl imp = (ActionRequestImpl) req;
211         setHostInRequest(imp.getHttpServletRequest(), host);
212     }
213     
214     public static void setHostInRequest(RenderRequest req, Host host) {
215         RenderRequestImpl imp = (RenderRequestImpl) req;
216         setHostInRequest(imp.getHttpServletRequest(), host);
217     }
218     
219     @SuppressWarnings JavaDoc("unchecked")
220     public static boolean hostContains(String JavaDoc name, Host destination) {
221         List JavaDoc<Folder> children = InodeFactory.getChildrenClass(destination,
222                 Folder.class);
223         for (Folder folder : children) {
224             if (folder.getName().equals(name))
225                 return true;
226         }
227         return false;
228     }
229     
230 }
231
Popular Tags