On Mon, 17 Dec 2007 20:09:23 -0800 Michael Higgins <[EMAIL PROTECTED]> wrote:
> On Mon, 17 Dec 2007 20:47:20 -0700 > Jay K <[EMAIL PROTECTED]> wrote: > > > Hi Michael, > > > > Unfortunately the Tutorial is a bit out of date. > > > > Please look at this: > > > > http://search.cpan.org/~jayk/Catalyst-Plugin-Authentication/lib/Catalyst/Plugin/Authentication.pm > > > > and this: > > > > http://search.cpan.org/~jayk/Catalyst-Authentication-Store-DBIx-Class/lib/Catalyst/Authentication/Store/DBIx/Class.pm > > > > and your issues should be cleared up. > > > > Jay > > Thanks, Jay! > > Cheers, > So, the question I'd left off with was, basically, what's up with if ( $c->check_user_roles( 'editor' ) ) { # do editor stuff } I have a feeling that, since my roles are in a separate table, like '1' is user, '2' is admin -- again, from that out of date tutorial -- that this isn't going to work as expected, somehow. from /Catalyst/Authentication/Store/DBIx/Class.pm "If your role information is stored in the same table as the rest of your user information"... Mine is not. Then, it reads about role_field, "This is the name of the field in the role table that contains the string identifying the role". I think that string for me is, like '1', because that is the role_id. But, it looks like this should retrieve the id then return the name of the role for matching... right? +---------+-----------+ | role_id | role_name | +---------+-----------+ | 1 | user | | 2 | admin | | 3 | guest | +---------+-----------+ Maybe I need a different accessor, IDK. What I do know is it 'just worked' and that's why I used Catalyst. Now, I'm wholly out of my depth. I've continued now for another hour or so. It sure does seem like this isn't going to work. Do I need to change my data tables in order to use this now? role_field => 'role_id', ... gives me: SELECT me.user_id, me.username, me.password, me.email_address, me.first_name, me.last_name, me.bill2 FROM users me WHERE ( user_id = ? ): '1' Great, found the 'admin'. SELECT me.role_id FROM user_roles me WHERE ( me.user_id = ? ): '1' Caught exception in BanTrace::Controller::Shipments->list "Missing roles: admin at $c->log->debug($c->assert_user_roles('admin')); [debug] Role granted: 2 [debug] 1 [debug] Role denied: admin Whereas: role_field => 'role_name', Gives me nothing at all. Never tries to check if I've got a role. ACL rules are in effect as well?? What do I need to do to back out of the basic tutorial setup, and get this working again? I have to think that this information would only be helpful to others, no? Or am I the only one who based an application on the tutorial? '-) Do I go about redefining my 'roles' as '1', '2', '3'?? Or do I have to change my database configuration? Or, am I barking up the wrong tree? Cheers, -- |\ /| | | ~ ~ | \/ | |---| `|` ? | |ichael | |iggins \^ / michael.higgins[at]evolone[dot]org _______________________________________________ List: [email protected] Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/[EMAIL PROTECTED]/ Dev site: http://dev.catalyst.perl.org/
