1 19 20 package za.org.coefficient.modules.project; 21 22 import org.apache.commons.lang.StringUtils; 23 24 import za.org.coefficient.authentication.Role; 25 import za.org.coefficient.core.CoefficientConfiguration; 26 import za.org.coefficient.core.BaseConfigurationBackedConstants; 27 import za.org.coefficient.interfaces.CoefficientContext; 28 import za.org.coefficient.modules.BaseModule; 29 import za.org.coefficient.util.ejb.VelocityScreenUtil; 30 import za.org.coefficient.util.ejb.SecurityUtil; 31 import za.org.coefficient.modules.configuration.Configuration; 32 import za.org.coefficient.util.common.InvokerFactory; 33 34 import net.sf.hibernate.util.HibernateUtil; 35 36 import java.util.HashMap ; 37 38 52 public class GlobalProjectAdmin extends BaseModule { 53 55 public String getMainMethod() { 56 return "adminProjects"; 57 } 58 59 public String getModuleDescription() { 60 return "This module allows site admins manage which fields are visible for projects"; 61 } 62 63 public String getModuleDisplayName() { 64 return "Global " + StringUtils.capitalise(ProjectConstants.PROJECT_NAME) 65 + " Administration"; 66 } 67 68 public String canExecuteForRole(CoefficientContext ctx, String methodName, 69 Role usersHighestRole) { 70 if (usersHighestRole.getRoleValue() != SecurityUtil.SITE_ADMIN_ROLE_VAL) { 71 return "Only a site administrator can administrate global " 72 + ProjectConstants.PROJECT_NAME + " information"; 73 } else { 74 return null; 75 } 76 } 77 78 public CoefficientContext adminProjects(CoefficientContext ctx) throws Exception { 79 HashMap map = new HashMap (); 80 81 CoefficientConfiguration projectConfiguration = 82 (CoefficientConfiguration)InvokerFactory.getInvoker() 83 .invokeMethodOnModule("Configuration", "getConfiguration", 84 new Object []{"za.org.coefficient.modules.project.ProjectConstants"}); 85 map.put("projectConfiguration", projectConfiguration); 86 java.lang.reflect.Field [] fields = ProjectConstants.class.getFields(); 87 for (int i = 0; i < fields.length; i++) { 88 String name = fields[i].getName(); 89 String value = fields[i].get(null).toString(); 90 map.put(name, value); 91 } 92 map.put("projectContants", new ProjectConstants()); 93 map.put("project_name_cap", 94 StringUtils.capitalise(ProjectConstants.PROJECT_NAME)); 95 96 StringBuffer sb = 97 VelocityScreenUtil.getProcessedScreen("globalProjectAdmin.vm", map); 98 99 ctx.setModuleContent(sb.toString(), getModuleDisplayName()); 101 return ctx; 102 } 103 104 private void transfer(CoefficientConfiguration projectConfiguration, 105 CoefficientContext ctx, String st) { 106 String tmp = ctx.getParameter(st); 107 if ( tmp != null ) { 108 if("on".equals(tmp)) { 109 projectConfiguration.addProperty(st, "true"); 110 } else { 111 projectConfiguration.addProperty(st, tmp); 112 } 113 } else { 114 projectConfiguration.addProperty(st, "false"); 115 } 116 } 117 118 public CoefficientContext save(CoefficientContext ctx) throws Exception { 119 HashMap map = new HashMap (); 120 map.put("project_name", ProjectConstants.PROJECT_NAME); 121 map.put("project_name_cap", 122 StringUtils.capitalise(ProjectConstants.PROJECT_NAME)); 123 Long id = ctx.getParameterAsLong("configId", -1); 124 if (id.longValue() > -1) { 125 CoefficientConfiguration cc = (CoefficientConfiguration) 126 HibernateUtil.load(CoefficientConfiguration.class, id); 127 java.lang.reflect.Field [] fields = ProjectConstants.class.getFields(); 128 for (int i = 0; i < fields.length; i++) { 129 String name = fields[i].getName(); 130 transfer(cc, ctx, name); 131 } 132 133 HibernateUtil.update(cc); 134 try { 135 BaseConfigurationBackedConstants conf = 136 (BaseConfigurationBackedConstants)Class 137 .forName(cc.getForClass()).newInstance(); 138 conf.initFromConfig(cc, "za.org.coefficient.modules.project.ProjectConstants"); 139 } catch(Exception e) { 140 } 142 StringBuffer sb = 143 VelocityScreenUtil.getProcessedScreen("globalProjectAdminSaved.vm", map); 144 145 ctx.setModuleContent(sb.toString(), getModuleDisplayName()); 147 } else { 148 ctx.setError("You must provide a configuration to save"); 149 } 150 return ctx; 151 } 152 } 153 | Popular Tags |