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

Reply via email to