| Inherits from:
MachII.framework.EventFilter
|
| I am an event filter that manages security of an application |
| Method Summary |
|---|
|
public
boolean
|
filterEvent(Event event, EventContext eventContext, [struct paramArgs="#structNew()#"])
I am invoked by the Mach II framework.
|
public
boolean filterEvent( Event event, EventContext eventContext, [struct paramArgs="#structNew()#"] )
I am invoked by the Mach II framework.
Parameters:
| Event event |
| EventContext eventContext |
| [struct paramArgs="#structNew()#"] |
Code:
<cffunction name="filterEvent" access="public" returntype="boolean" displayname="filterEvent method" hint="I am invoked by the Mach II framework.">
<cfargument name="event" type="MachII.framework.Event" required="true" displayname="event object" hint="I am the current event object created by the Mach II framework." />
<cfargument name="eventContext" type="MachII.framework.EventContext" required="true" displayname="eventContext object" hint="I am the current event context object created by the Mach II framework." />
<cfargument name="paramArgs" type="struct" required="false" default="#structNew()#" displayname="paramArgs structure" hint="I am the structure containing the parameters specified in the filter invocation in mach-ii.xml." />
<cfscript>
var pm = getAppManager().getPropertyManager();
var uf = pm.getProperty("userfacade");
var invalidEvent = "";
var clearEventQueue = true;
var isLoggedIn = false;
if (uf.hasUser()){
isLoggedIn = uf.getUser().getIsLoggedIn();
}
if ( structKeyExists( arguments.paramArgs, "invalidEvent" ) ) {
invalidEvent = arguments.paramArgs.invalidEvent;
} else {
invalidEvent = getParameter( "invalidEvent", "" );
}
if ( structKeyExists( arguments.paramArgs, "clearEventQueue" ) ) {
clearEventQueue = arguments.paramArgs.clearEventQueue;
} else {
clearEventQueue = getParameter( "clearEventQueue", true );
}
/*
convert to CFTAG syntax due to BD problems
if ( isLoggedIn ) {
return true; // allow processing to continue
} else {
if ( clearEventQueue ) {
arguments.eventContext.clearEventQueue();
}
arguments.eventContext.announceEvent( invalidEvent, arguments.event.getArgs() );
return false; // abort the current event handler
}
*/
</cfscript>
<cfif isLoggedIn >
<cfreturn true />
<cfelse>
<cfif clearEventQueue >
<cfset arguments.eventContext.clearEventQueue() />
</cfif>
<cfset arguments.eventContext.announceEvent( invalidEvent, arguments.event.getArgs() ) />
<cfreturn false />
</cfif>
</cffunction>