Jim,

I actually came across your site a little after I sent the message and it
looks like you are going in the direction I was thinking.  I will take a
look.

Thanks.
 

-----Original Message-----
From: Jim Davis [mailto:[EMAIL PROTECTED] 
Sent: Thursday, October 05, 2006 3:50 AM
To: CF-Talk
Subject: RE: Object Oriented Role Base Security

> On 10/5/06, Denny Valliant <[EMAIL PROTECTED]> wrote:
> > Heh.  The silver bullet!
> >
> > If you find it, holler, I too would be interested...
> >
> > Other than that, you can try checking out the (sheesh, I'm bad 
> > today) the MG list, as a nice discussion of this has been going down 
> > for a few days.  It's more geared for MG than just anything though 
> > (although MG seems to be (sorta) a concept, so thus applicable 
> > elsewhere, if one grokked it well enough), so that might not really 
> > be that great of a resource for you.
> >
> > Hrm... I don't know of anthing that blew my socks off conceptually...
> > or I'm forgetting it.
> >
> > I would for sure take a look at depressedpress.com (Jim has shared 
> > some really nice stuff, and has some modular whatnot going on).  
> > Yeah, Props Jim, and thanks for sharing!

I've actually got an example of an OO-based security at depressedpress as
part of the DPLibraries (look at the bottom for the security system):

http://www.depressedpress.com/Content/Development/ColdFusion/DPLibraries

Unfortunately I've never actually gotten around to documenting the system...
but all of the components are fully documented (self-documenting actually).

The basic idea of the system is that it can be instantiated (either in the
server or the application scope) very easily and "bolted on" to system very
quickly.

The system represents users as three objects: Credentials (system
information like passwords or usernames), Entitlements (information about
what a user is allowed to do) and Profiles (personal information about the
user - phone numbers, addresses, etc).

Each of these objects is abstracted - you can extend them or replace them
completely easily.

I really love to use it - very simple.  To check an entitlement you could do
this (assuming that the security system was instantiated in the application
scope and that Session.Key is the unique ID of the session):

Application.DPSecurity.isEntitled(Session.Key, "Administrator");

The above would return a Boolean.

To see if somebody is logged in you would do:

Application.DPSecurity.isAuthentication(Session.Key)

If the user was logged in then an "Authentication" object is linked to the
ID.  If you wanted to get information out of the profile you could do:

Application.DPSecurity.getAuthentication(Session.Key).getProfile()

The system is pretty damn performant - access to persistent information is
done through various "Mediator" objects which intelligently cache
information for speed.

This is only the "guts" of the system - essentially an API.  There's really
no interface to it.  It makes building a full security system easier by
providing essential services.

All that said the system is also somewhat old now - it was written with CFMX
6 in mind.

Still - if anybody is interested I've got a sample site showing how it's set
up and used.  I'd be happy to zip it up and send it to anybody that wants
it.

Jim Davis




~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Introducing the Fusion Authority Quarterly Update. 80 pages of hard-hitting,
up-to-date ColdFusion information by your peers, delivered to your door four 
times a year.
http://www.fusionauthority.com/quarterly

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:255660
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4

Reply via email to