1 20 21 package com.methodhead.transfer; 22 23 import org.apache.struts.action.ActionForward; 24 import org.apache.struts.action.DynaActionForm; 25 import org.apache.struts.action.ActionForm; 26 import org.apache.struts.action.ActionMapping; 27 import org.apache.commons.lang.StringUtils; 28 import java.util.Iterator ; 29 import java.util.List ; 30 import java.util.ArrayList ; 31 import javax.servlet.http.HttpServletRequest ; 32 import javax.servlet.http.HttpServletResponse ; 33 import com.methodhead.sitecontext.SiteContextPolicy; 34 import com.methodhead.sitecontext.SiteContext; 35 import com.methodhead.persistable.Persistable; 36 import com.methodhead.util.StrutsUtil; 37 import com.methodhead.util.OperationContext; 38 import com.methodhead.reg.User; 39 import com.methodhead.reg.RegPolicy; 40 import com.methodhead.aikp.IntKey; 41 import com.methodhead.aikp.AutoIntKeyPersistable; 42 import com.methodhead.auth.AuthUser; 43 import com.methodhead.auth.AuthUtil; 44 import com.methodhead.event.Event; 45 46 50 public class SiteContextAction 51 extends 52 com.methodhead.shim.SiteContextAction { 53 54 56 58 60 62 66 public ActionForward doDelete( 67 OperationContext op, 68 Object policy ) { 69 70 String msg = 74 ( ( SiteContextPolicy )policy ).isSiteContextDeleteAuthorized( op ); 75 if ( msg != null ) { 76 StrutsUtil.addMessage( op.request, msg, null, null, null ); 77 return op.mapping.findForward( "accessDenied" ); 78 } 79 80 SiteContext siteContext = ( SiteContext )createPersistable( op ); 84 siteContext.load( new IntKey( op.form.get( "id" ) ) ); 85 86 User user = new User(); 87 List users = user.loadAllForSiteContext( siteContext ); 88 89 for ( Iterator iter = users.iterator(); iter.hasNext(); ) { 90 User u = ( User )iter.next(); 91 92 throw new RuntimeException ( "FIX THIS" ); 93 104 } 105 106 ActionForward forward = super.doDelete( op, policy ); 110 111 return forward; 112 } 113 114 118 public ActionForward doInitExtension( 119 OperationContext op, 120 TransferPolicy policy ) { 121 122 String msg = policy.isInitExtensionAuthorized( op ); 126 if ( msg != null ) { 127 StrutsUtil.addMessage( op.request, msg, null, null, null ); 128 return op.mapping.findForward( "accessDenied" ); 129 } 130 131 SiteContext siteContext = new SiteContext(); 135 siteContext.load( new IntKey( op.form.get( "id" ) ) ); 136 137 SiteExtension siteExtension = policy.newSiteExtension(); 141 Extension extension = 142 siteExtension.instantiateExtension( 143 ( String )op.form.get( "classname" ) ); 144 145 extension.init( siteContext ); 149 150 siteExtension.setString( 154 "class_name", ( String )op.form.get( "classname" ) ); 155 siteExtension.setInt( "sitecontext_id", siteContext.getInt( "id" ) ); 156 siteExtension.setBoolean( "enabled", true ); 157 siteExtension.saveNew(); 158 159 Event.log( 163 SiteContext.getDefaultContext(), 164 op.user.getLogin(), 165 "sitecontext", 166 "Initialized extension \"" + extension.getName() + 167 "\" for site \"" + siteContext + "\"." ); 168 169 return new ActionForward( 173 "/siteContext.do?action=edit&id=" + siteContext.getInt( "id" ) ); 174 } 175 176 180 public ActionForward doDestroyExtension( 181 OperationContext op, 182 TransferPolicy policy ) { 183 184 String msg = policy.isDestroyExtensionAuthorized( op ); 188 if ( msg != null ) { 189 StrutsUtil.addMessage( op.request, msg, null, null, null ); 190 return op.mapping.findForward( "accessDenied" ); 191 } 192 193 if ( StringUtils.isNotBlank( ( String )op.form.get( "cancel" ) ) ) { 197 return new ActionForward( 198 "/siteContext.do?action=edit&id=" + op.form.get( "id" ) ); 199 } 200 201 SiteExtension siteExtension = policy.newSiteExtension(); 205 Extension extension = 206 siteExtension.instantiateExtension( 207 ( String )op.form.get( "classname" ) ); 208 209 if ( StringUtils.isBlank( ( String )op.form.get( "confirm" ) ) ) { 213 StrutsUtil.addMessage( 214 op.request, 215 "transfer.confirmDestroyExtension", 216 extension.getName(), 217 null, 218 null ); 219 220 return op.mapping.findForward( "confirm" ); 221 } 222 223 SiteContext siteContext = new SiteContext(); 227 siteContext.load( new IntKey( op.form.get( "id" ) ) ); 228 229 extension.destroy( siteContext ); 233 234 siteExtension.deleteAll( 238 "sitecontext_id=" + siteContext.getInt( "id" ) + " AND class_name=" + 239 Persistable.getSqlLiteral( ( String )op.form.get( "classname" ) ) ); 240 241 Event.log( 245 SiteContext.getDefaultContext(), 246 op.user.getLogin(), 247 "sitecontext", 248 "Destroyed extension \"" + extension.getName() + 249 "\" for site \"" + siteContext + "\"." ); 250 251 return new ActionForward( 255 "/siteContext.do?action=edit&id=" + siteContext.getInt( "id" ) ); 256 } 257 258 262 public ActionForward doDisableExtension( 263 OperationContext op, 264 TransferPolicy policy ) { 265 266 String msg = policy.isDisableExtensionAuthorized( op ); 270 if ( msg != null ) { 271 StrutsUtil.addMessage( op.request, msg, null, null, null ); 272 return op.mapping.findForward( "accessDenied" ); 273 } 274 275 SiteContext siteContext = new SiteContext(); 279 siteContext.load( new IntKey( op.form.get( "id" ) ) ); 280 281 SiteExtension siteExtension = policy.newSiteExtension(); 285 siteExtension.load( 286 siteContext, ( String )op.form.get( "classname" ) ); 287 siteExtension.setBoolean( "enabled", false ); 288 siteExtension.save(); 289 290 Extension extension = 294 siteExtension.instantiateExtension( 295 siteExtension.getString( "class_name" ) ); 296 297 Event.log( 298 SiteContext.getDefaultContext(), 299 op.user.getLogin(), 300 "sitecontext", 301 "Disabled extension \"" + extension.getName() + 302 "\" for site \"" + siteContext + "\"." ); 303 304 return new ActionForward( 308 "/siteContext.do?action=edit&id=" + siteContext.getInt( "id" ) ); 309 } 310 311 315 public ActionForward doEnableExtension( 316 OperationContext op, 317 TransferPolicy policy ) { 318 319 String msg = policy.isEnableExtensionAuthorized( op ); 323 if ( msg != null ) { 324 StrutsUtil.addMessage( op.request, msg, null, null, null ); 325 return op.mapping.findForward( "accessDenied" ); 326 } 327 328 SiteContext siteContext = new SiteContext(); 332 siteContext.load( new IntKey( op.form.get( "id" ) ) ); 333 334 SiteExtension siteExtension = policy.newSiteExtension(); 338 siteExtension.load( 339 siteContext, ( String )op.form.get( "classname" ) ); 340 siteExtension.setBoolean( "enabled", true ); 341 siteExtension.save(); 342 343 Extension extension = 347 siteExtension.instantiateExtension( 348 siteExtension.getString( "class_name" ) ); 349 350 Event.log( 351 SiteContext.getDefaultContext(), 352 op.user.getLogin(), 353 "sitecontext", 354 "Enabled extension \"" + extension.getName() + 355 "\" for site \"" + siteContext + "\"." ); 356 357 return new ActionForward( 361 "/siteContext.do?action=edit&id=" + siteContext.getInt( "id" ) ); 362 } 363 364 367 public ActionForward doExecute( 368 ActionMapping mapping, 369 ActionForm form, 370 HttpServletRequest request, 371 HttpServletResponse response ) { 372 373 DynaActionForm dynaForm = ( DynaActionForm )form; 377 TransferPolicy policy = 378 ( TransferPolicy )StrutsUtil.getPolicy( mapping ); 379 AuthUser user = AuthUtil.getUser( request ); 380 381 OperationContext op = 382 new OperationContext( mapping, dynaForm, request, response, user ); 383 384 if ( mapping.getPath().equals( "/initExtension" ) ) { 388 return doInitExtension( op, policy ); 389 } 390 391 if ( mapping.getPath().equals( "/destroyExtension" ) ) { 392 return doDestroyExtension( op, policy ); 393 } 394 395 if ( mapping.getPath().equals( "/disableExtension" ) ) { 396 return doDisableExtension( op, policy ); 397 } 398 399 if ( mapping.getPath().equals( "/enableExtension" ) ) { 400 return doEnableExtension( op, policy ); 401 } 402 403 return super.doExecute( mapping, form, request, response ); 404 } 405 406 408 } 410 | Popular Tags |