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 <[email protected]> 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 <[email protected]> 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:[email protected]]
>> 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