From: Jay Kuri Date: Thu, 22 Nov 2007 00:14:33 +0000 (+0000) Subject: Changing module naming from Catalyst::Plugin::Authentication to X-Git-Tag: v0.10009_01~35 X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=39ce54e8c0d40cf7fd266546f99522a94278a2d2;hp=ead7a26a894d36338abb53c4ff2f1f76984f7340;p=catagits%2FCatalyst-Plugin-Authentication.git Changing module naming from Catalyst::Plugin::Authentication to Catalyst::Authentication. --- diff --git a/lib/Catalyst/Plugin/Authentication/Realm.pm b/lib/Catalyst/Plugin/Authentication/Realm.pm index c88d5e5..b328c66 100644 --- a/lib/Catalyst/Plugin/Authentication/Realm.pm +++ b/lib/Catalyst/Plugin/Authentication/Realm.pm @@ -21,7 +21,7 @@ sub new { # use the Null store as a default if( ! exists $config->{store}{class} ) { - $config->{store}{class} = '+Catalyst::Plugin::Authentication::Store::Null'; + $config->{store}{class} = '+Catalyst::Authentication::Store::Null'; $app->log->debug( qq(No Store specified for realm "$realmname", using the Null store.) ); } my $storeclass = $config->{'store'}{'class'}; @@ -29,28 +29,50 @@ sub new { ## follow catalyst class naming - a + prefix means a fully qualified class, otherwise it's ## taken to mean C::P::A::Store::(specifiedclass) if ($storeclass !~ /^\+(.*)$/ ) { - $storeclass = "Catalyst::Plugin::Authentication::Store::${storeclass}"; + $storeclass = "Catalyst::Authentication::Store::${storeclass}"; } else { $storeclass = $1; } # a little niceness - since most systems seem to use the password credential class, # if no credential class is specified we use password. - $config->{credential}{class} ||= '+Catalyst::Plugin::Authentication::Credential::Password'; + $config->{credential}{class} ||= '+Catalyst::Authentication::Credential::Password'; my $credentialclass = $config->{'credential'}{'class'}; ## follow catalyst class naming - a + prefix means a fully qualified class, otherwise it's - ## taken to mean C::P::A::Credential::(specifiedclass) + ## taken to mean C::A::Credential::(specifiedclass) if ($credentialclass !~ /^\+(.*)$/ ) { - $credentialclass = "Catalyst::Plugin::Authentication::Credential::${credentialclass}"; + $credentialclass = "Catalyst::Authentication::Credential::${credentialclass}"; } else { $credentialclass = $1; } - # if we made it here - we have what we need to load the classes; - Catalyst::Utils::ensure_class_loaded( $credentialclass ); - Catalyst::Utils::ensure_class_loaded( $storeclass ); + # if we made it here - we have what we need to load the classes + + ### BACKWARDS COMPATIBILITY - DEPRECATION WARNING: + ### we must eval the ensure_class_loaded - because we might need to try the old-style + ### ::Plugin:: module naming if the standard method fails. + + eval { + Catalyst::Utils::ensure_class_loaded( $credentialclass ); + }; + + if ($@) { + $app->log->warn( qq(Credential class "$credentialclass" not found, trying deprecated ::Plugin:: style naming. ) ); + $credentialclass =~ s/Catalyst::Authentication/Catalyst::Plugin::Authentication/; + Catalyst::Utils::ensure_class_loaded( $credentialclass ); + } + + eval { + Catalyst::Utils::ensure_class_loaded( $storeclass ); + }; + + if ($@) { + $app->log->warn( qq(Store class "$storeclass" not found, trying deprecated ::Plugin:: style naming. ) ); + $storeclass =~ s/Catalyst::Authentication/Catalyst::Plugin::Authentication/; + Catalyst::Utils::ensure_class_loaded( $storeclass ); + } # BACKWARDS COMPATIBILITY - if the store class does not define find_user, we define it in terms # of get_user and add it to the class. this is because the auth routines use find_user,