nevermind - found the solution!

ended up with:

    <cffunction name="checkPermission">
        <cfargument name="path">
            <cfif IsDefined('session.currentUser.permissions.' &
arguments.path)>
                <cfif evaluate('session.currentUser.permissions.' &
arguments.path)>
                 <cfreturn true>
                 <cfelse>
                     <cfreturn false>
                 </cfif>
            <cfelse>
                <cfreturn false>
            </cfif>
    </cffunction>

(Never used evaluate() before, heard it was bad..?)

T


On 14 June 2010 15:29, Tom King <mailingli...@oxalto.co.uk> wrote:

> Cheers Andy -
> That's fine if I want to check the struct exists, but I'm trying to
> directly test against the value of that path (which in this case is a
> boolean)...?
> T
>
>
>
> On 14 June 2010 15:25, Andy Matthews <li...@commadelimited.com> wrote:
>
>>
>> When working with structures nested that deeply you might consider
>> IsDefined
>> instead.
>>
>> <cfif IsDefined('session.currentUser.permissions.' & arguments.path)>
>>
>> It's not a best practice necessarily, but it would prevent a whole bunch
>> of
>> StructKeyExists calls.
>>
>>
>> andy
>>
>>
>> -----Original Message-----
>> From: Tom King [mailto:mailingli...@oxalto.co.uk]
>> Sent: Monday, June 14, 2010 9:20 AM
>> To: cf-talk
>> Subject: Finding the value of a key in a nested structure
>>
>>
>> Ok, my brain is hurting - I know this should be possible, but I can't
>> quite
>> get the syntax.
>>
>> I need to pass a string (a path to a structure which contains a boolean in
>> the session scope) into a function, which then checks the value:
>>
>> i.e
>>
>> <cfif checkPermission("email.send.all")>
>> Show a form or page
>> </cfif>
>>
>> <cffunction name="checkPermission">
>> <cfargument name="path">
>> <cfif session.currentUser.permissions['#arguments.path#']>
>> <cfreturn true>
>> <cfelse>
>> <cfreturn false>
>> </cfif>
>> </cffunction>
>>
>> So in this instance, CF is looking for
>> session.currentUser.permissions['email.send.all'] - i.e a structure key
>> name
>> of 'email.send.all' , rather than
>> "session.currentUser.permissions.email.send.all"
>>
>> Is there an elegant solution to this problem?
>>
>> Ta
>> T
>>
>>
>>
>>
>> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Order the Adobe Coldfusion Anthology now!
http://www.amazon.com/Adobe-Coldfusion-Anthology-Michael-Dinowitz/dp/1430272155/?tag=houseoffusion
Archive: 
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:334531
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/groups/cf-talk/unsubscribe.cfm

Reply via email to