[Catalyst] Authentication::Store::DBIC => Can't call method "search" in uthentication::Store::DBIC::User ???
Yuval Kogman
nothingmuch at woobling.org
Sun Apr 23 13:30:48 CEST 2006
On Sun, Apr 23, 2006 at 03:06:37 +0200, T. H. Lin wrote:
> It seems
> __PACKAGE__->config->{authentication}{dbic} = {
> user_class => 'DBIC::User',
> user_field => 'name',
> password_field => 'pass',
> password_type => 'hashed',
> password_hash_type => 'SHA-256',
> };
> must be defined in MyApp.pm(and before __PACKAGE__->setup !!)
>
> but....
> I have 2 tables for two different type of account,
> (for some reason, I make 2 tables, do not use role method)
>
> MyApp/C/basic_account.pm
> MyApp/C/advanced_account.pm
>
> I would like to define different user_class in basic_account.pm and
> advanced_account.pm.
>
>is it possible?
I agree with what John said, but there is support for this.
If you can't use role based access control
(Catalyst::Plugin::Authorization::Roles) then you can use the
non-easy interface into the authentication stores:
Initialize your own Catalyst::Plugin::Authentication::DBIC::Backend
(read the source code to see how this is done - each store may
require a different initialization sequence), register it, and then
create another, and register it by another name:
register_autho_stores(
basic => $backend,
advanced => $backend,
);
Note that at this stage there is no store by the name of 'default' -
this means you have to use user objects. Instead of
$c->login( "user", "password" ); # two string
You need to say
my $user = $c->get_auth_store("basic")->get_user($username);
$c->login( $user, $password );
and all the session integration will continue to work normally from
here, mapping to the right store.
You might want to put a multiplexing store in 'default', one that
will first try one store and then the other.
--
Yuval Kogman <nothingmuch at woobling.org>
http://nothingmuch.woobling.org 0xEBD27418
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 191 bytes
Desc: not available
Url : http://lists.rawmode.org/pipermail/catalyst/attachments/20060423/cdae70c1/attachment.pgp
More information about the Catalyst
mailing list