I am trying to understand how I can modify this existing login to
where it will only fire on the admin event handler.
This is the code for the securityRules.xml.cfm when I change the
redirect back to admin.index I get stuck in a loop.
<?xml version="1.0" encoding="ISO-8859-1"?>
<rules>
<!-- any SES event starting with 'admin\', the user must be logged in
with a role of admin, else they get redirected to login -->
<rule>
<whitelist></whitelist>
<securelist>^admin\..*</securelist>
<roles>admin</roles>
<permissions></permissions>
<redirect>general.index</redirect>
</rule>
</rules>
<cfcomponent output="false">
<cfproperty name="userService" inject="model:userService"
scope="instance" />
<cffunction name="login" access="public" output="false"
returntype="void" hint="I perform user login">
<cfargument name="event" required="true" />
<cfset var rc = event.getCollection() />
<cfset var msg = "" />
<cfset var msgtype = "" />
<cfset var loggedin =
instance.userService.login(username=rc.username,password=rc.password) /
<cfif loggedin>
<cfset msg="Welcome " & getAuthUser() & "!" />
<cfset msgtype="info" />
<cfelse>
<cfset msg="Login failed. Please try again" />
<cfset msgtype="warning"/>
</cfif>
<cfset getPlugin("messagebox").setMessage(type=msgtype,message=msg) /
<cfset setNextEvent(event=getSetting("defaultEvent")) />
</cffunction>
<cffunction name="logout" access="public" output="false"
returntype="void" hint="I perform the logout function">
<cfargument name="event" required="true" />
<cfset var rc = event.getCollection() />
<cfset instance.userService.logout() />
<cfset getPlugin("messagebox").setMessage(type="info",message="You
have been logged out") />
<cfset setNextEvent(event=getSetting("defaultEvent")) />
</cffunction>
</cfcomponent>