Thanks Dan, I'll give it a try first thing in the morning..
Appreciate the help.. Cliff Sent from my iPad On Jul 29, 2010, at 3:57 PM, Dan Skaggs <[email protected]> wrote: > Cliff... > > I think I see what's going on. > > In your controller checkAuthentication() method, if username is 1 and > password is 2, the session.adminLoggedIn is set to true. The > controller code ends there without doing anything else. > > Looking back at your event-handler block for the checkAuthentication > event, there are no views defined to be rendered after the message is > broadcast to the controller so ModelGlue just ends processing because > it thinks it's finished (and it is because that's all it's been told > to do). > > What I'd suggest is capturing the original event name that caused the > redirect to the login form and including that event in a hidden > variable in the form (for example : originalEvent). Then, if the > login is successful, you can redirect them back to the original event > they asked for similar to this: > > <cffunction name="checkAuthentication" access="public" > returntype="void" output="true" hint="???"> > > <cfargument name="event" type="ModelGlue.Core.Event" > required="true"> > > <cfset username=arguments.event.getValue("user") /> > <cfset password=arguments.event.getValue("pass") /> > > <!--- Super Simple test for a username/password pair ---> > <cfif username is "1" and password is "2"> > <cfset session.adminLoggedIn = true /> > <cfset > arguments.event.forward( arguments.event.getValue("originalEvent") ) / >> > <cfelse> > <cfset arguments.event.forward("login") /> > </cfif> > </cffunction> > > That will give you an exit path to an event-handler that displays > something in the case where the login is valid. > > Please let us know if you have any other questions or issues. > > Dan > > > On Jul 28, 7:09 pm, Clifford Moon <[email protected]> wrote: >> Greetings, >> >> I'm new to Model Glue, have been working with it for a month or >> so,have generally been lost but can appreciate it's strengths. We are >> currently trying to setup Authentication by using Event Types. Dan >> Wilson gave me some hints, and directed me to this group for some >> additional help with my problem. Here's a quick run-down that I sent >> to him that explains where I'm trying to go with this, and what is >> happening. If anyone could help me to figure this out, I'd greatly >> appreciate it.. >> >> I've further included my modelglue.xml, controller.cfc and login.cfm >> that I'm using to make this work. >> >> Thanks in Advance, >> >> Clifford Moon >> >> I've setup the secure event type, with it broadcasting the message >> needsAuthenticatedUser, which tests for a session variable being set >> to true. If it's not set to true, I used the event.forward and send >> it to the "login" event handler which dumps the login.cfm form. I've >> set the submit on that form to be checkAuthentication which is another >> event, which broadcasts checkAuthentication which executes >> checkAuthentication inside the controller.cfc. That then tests >> against a temporary username and password "1" and "2" and if they are >> true, I set the session variable to true, otherwise, use the >> event.forward to again send them to the login page. >> >> I know this is partially working because I can do a run through, and >> it's correctly setting the session variable to true as it's supposed >> to, and when I call my "secure" event (security is what I called it), >> it doesn't display the login form, but rather goes ahead and dumps my >> form that I want to make secure. >> >> My quandary is this: When I call my app, passing in the >> "event=security" to use the "secure" event-type, and I authenticate >> correctly, I'm winding back up at my checkAuthentication event (and >> subsequently a blank page), rather than it passing it back to the >> "event=security" and me seeing my form. Somewhere, I'm missing a >> step. >> >> Any help would be greatly appreciated. >> >> Thanks, >> >> Cliff >> >> *************************************************************************** >> ******** >> LOGIN.CFM >> >> <cfset event.copyToScope(variables,"xe_login") /> >> <cfset session.adminLoggedIn = false /> >> <cfset submit = event.linkTo(xe_login) /> >> >> <cfoutput> >> <cfform name="" action="#submit#"> >> <cfinput name="user" type="text"> >> <cfinput name="pass" type="password"> >> <cfinput name="submit" type="submit" value="submit"> >> </cfform> >> </cfoutput> >> >> *************************************************************************** >> ******** >> MODELGLUE.XML >> >> <?xml version="1.0" encoding="UTF-8"?> >> <modelglue> >> >> <config> >> <setting name="dsn" value="tstapx" /> >> </config> >> >> <controllers> >> <controller id="Controller" >> type="developers.cliff.honors.controller.Controller"> >> <!-- >> <message-listener message="message" function="controllerFunction" /> >> --> >> <message-listener message="submitFormData" /> >> <message-listener message="submitStudentFormData" /> >> <message-listener message="submitTransferFormData" /> >> <message-listener message="submitHighSchoolFormData" /> >> <message-listener message="needsAuthenticatedUser" /> >> <message-listener message="checkAuthentication" /> >> </controller> >> </controllers> >> >> <event-types> >> <!-- Sample Event Type: >> You can use before, after or both. >> <event-type name="templatedPage"> >> <before> >> <results> >> <result >> do="SomethingThatShouldRunBefore"/> >> </results> >> </before> >> <after> >> <results> >> <result >> do="SomethingThatShouldRunAfter"/> >> </results> >> </after> >> </event-type> >> --> >> >> <event-type name="templatedPage"> >> <after> >> <views> >> <include name="main" >> template="layout/Master.Layout.cfm" /> >> </views> >> </after> >> </event-type> >> >> <event-type name="secure"> >> <before> >> <broadcasts> >> <message >> name="needsAuthenticatedUser" /> >> </broadcasts> >> </before> >> </event-type> >> </event-types> >> >> <event-handlers> >> >> <event-handler name="default" type="templatedPage"> >> <views> >> <include name="primary" >> template="frmMainStudent.cfm"> >> <value name="xe_receiveformat" >> value="handleStudentFormAction" /> >> </include> >> </views> >> </event-handler> >> >> <event-handler name="transfer" type="templatedPage"> >> <views> >> <include name="primary" >> template="frmMainTransfer.cfm"> >> <value name="xe_receiveformat" >> value="handleTransferFormAction" / >> >> </include> >> </views> >> </event-handler> >> >> <event-handler name="student" type="templatedPage"> >> <views> >> <include name="primary" >> template="frmMainStudent.cfm"> >> <value name="xe_receiveformat" >> value="handleStudentFormAction" /> >> </include> >> </views> >> </event-handler> >> >> <event-handler name="highschool" type="templatedPage"> >> <views> >> <include name="primary" >> template="frmMainHighSchool.cfm"> >> <value name="xe_receiveformat" >> value="handleHighSchoolFormAction" /> >> </include> >> </views> >> </event-handler> >> >> <event-handler name="security" type="secure,templatedPage"> >> <views> >> <include name="primary" >> template="frmMainHighSchool2.cfm"> >> <value name="xe_receiveformat" >> value="handleHighSchoolFormAction" /> >> </include> >> </views> >> </event-handler> >> >> <event-handler name="handleStudentFormAction" type="templatedPage"> >> <broadcasts> >> <message name= "submitStudentFormData" /> >> </broadcasts> >> <views> >> <include name="primary" template="pages/ >> dspDisplayStudentForm.cfm" /> >> </views> >> </event-handler> >> >> <event-handler name="handleTransferFormAction" type="templatedPage"> >> <broadcasts> >> <message name= "submitTransferFormData" /> >> </broadcasts> >> <views> >> <include name="primary" template="pages/ >> dspDisplayTransferForm.cfm" /> >> </views> >> </event-handler> >> >> <event-handler name="handleHighSchoolFormAction" >> type="templatedPage"> >> <broadcasts> >> <message name= "submitHighSchoolFormData" /> >> </broadcasts> >> <views> >> <include name="primary" template="pages/ >> dspDisplayHighSchoolForm.cfm" /> >> </views> >> </event-handler> >> >> <event-handler name="login" type="templatedPage"> >> <views> >> <include name="primary" >> template="pages/login.cfm"> >> <value name="xe_login" >> value="checkAuthentication" /> >> </include> >> </views> >> </event-handler> >> >> <event-handler name="checkAuthentication" type="templatedPage"> >> <broadcasts> >> <message name= "checkAuthentication" /> >> </broadcasts> >> </event-handler> >> >> <!-- >> Sample Event Handler: >> <event-handler name="eventname"> >> <broadcasts> >> <message name="message" /> >> </broadcasts> >> <results> >> <result name="resultName" do="otherEvent" /> >> </results> >> <views> >> <include name="body" template="content.cfm" /> >> </views> >> </event-handler> >> --> >> >> <!-- A homepage for your application. --> >> <event-handler name="page.index"> >> <broadcasts /> >> <results> >> <result do="template.main" /> >> </results> >> <views> >> <include name="body" template="pages/index.cfm" /> >> </views> >> </event-handler> >> >> <!-- An error event to show when an error occurs, much like >> <cferror>. --> >> <event-handler name="page.error"> >> <broadcasts /> >> <results> >> <result do="template.main" /> >> </results> >> <views> >> <include name="body" template="pages/exception.cfm" >> /> >> </views> >> </event-handler> >> >> <!-- A "404" event to show when the requested event isn't defined. -- >> >> <event-handler name="page.missing"> >> <broadcasts /> >> <results> >> <result do="template.main" /> >> </results> >> <views> >> <include name="body" >> template="pages/missingEvent.cfm" /> >> </views> >> </event-handler> >> >> <!-- Private events: can't be accessed through a URL --> >> <event-handler access="private" name="template.main"> >> <views> >> <include name="main" template="templates/main.cfm" /> >> </views> >> </event-handler> >> </event-handlers> >> >> </modelglue> >> >> *************************************************************************** >> ******** >> CONTROLLER.CFC >> >> <cfcomponent output="false" hint="I am a Model-Glue controller." >> extends="ModelGlue.gesture.controller.Controller" beans="FormHandler" >> >> >> >> <cffunction name="init" access="public" output="false" >> hint="Constructor"> >> <cfargument name="framework" /> >> >> <cfset super.init(framework) /> >> >> <cfreturn this /> >> </cffunction> >> >> <cffunction name="submitFormData" access="public" returntype="void" >> output="false" hint="???"> >> <cfargument name="event" type="any" > >> <cfset var fullname = >> arguments.event.getValue("formfullname") /> >> <cfset arguments.event.setValue("User", fullname) /> >> <cfset arguments.event.setValue("myFullName", fullname) /> >> <cfset arguments.event.setValue("UtpaTitle",formUTPATitle) /> >> <cfset arguments.event.setValue("UtpaPhone",formUTPAPhone) /> >> <cfset >> arguments.event.setValue("dsn",getModelGlue().getConfigSetting("dsn")) / >> >> >> >> <cfset da = beans.FormHandler.one() /> >> >> <cfset otr = beans.FormHandler.set('ITESM','') /> >> <cfset qr = beans.FormHandler.get() /> >> >> <cfset arguments.event.setValue("bed",da) /> >> <cfset arguments.event.setValue("qry",qr) /> >> >> </cffunction> >> >> <cffunction name="needsAuthenticatedUser" access="public" >> returntype="void" output="false" hint="???"> >> <cfargument name="event" type="ModelGlue.Core.Event" >> required="true"> >> <cfif not structKeyExists(session, "adminloggedin") OR NOT >> session.adminLoggedIn> >> <cfset arguments.event.forward("login") /> >> <!--- <cfset >> arguments.event.addResult("notAuthenticated")> --- >> >> </cfif> >> </cffunction> >> >> <cffunction name="checkAuthentication" access="public" >> returntype="void" output="true" hint="???"> >> <cfargument name="event" type="ModelGlue.Core.Event" >> required="true"> >> <cfset username=arguments.event.getValue("user") /> >> <cfset password=arguments.event.getValue("pass") /> >> >> <!--- Super Simple test for a username/password pair ---> >> <cfif username is "1" and password is "2"> >> <cfset session.adminLoggedIn = true /> >> <cfelse> >> <cfset arguments.event.forward("login") /> >> </cfif> >> </cffunction> >> >> </cfcomponent> > > -- > Model-Glue Sites: > Home Page: http://www.model-glue.com > Documentation: http://docs.model-glue.com > Bug Tracker: http://bugs.model-glue.com > Blog: http://www.model-glue.com/blog > > You received this message because you are subscribed to the Google > Groups "model-glue" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/model-glue?hl=en -- Model-Glue Sites: Home Page: http://www.model-glue.com Documentation: http://docs.model-glue.com Bug Tracker: http://bugs.model-glue.com Blog: http://www.model-glue.com/blog You received this message because you are subscribed to the Google Groups "model-glue" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/model-glue?hl=en
