[Catalyst] Is there any way to change the catalyst model
parameters at the runtime ?
Daniel Westermann-Clark
dwc at pobox.com
Mon Aug 27 14:38:06 GMT 2007
On 2007-08-27 15:15:59 +0530, Sandip Patel wrote:
> Actually i am using "Catalyst::Model::LDAP" model, where you have to
> define your ldap configurations (like host, base, dn, password etc)
> into LDAP model and that configuration will be static for all the
> transactions. For all Relational databases, this type of model will
> be ok but for ldap it should bind with the username and password
> which has been provided by the loged in user.
You can accomplish this using version 0.15 of Catalyst::Model::LDAP.
The basic structure goes something like this:
1. In MyApp::Model::LDAP, override ACCEPT_CONTEXT to store the
username and password from the request.
2. In MyApp::LDAP::Connection, override bind to use the username and
password from step 1.
If your LDAP server expects just a simple DN and password pair, you
might not even need MyApp::LDAP::Connection. For example:
package MyApp::Model::LDAP;
use Class::C3;
sub ACCEPT_CONTEXT {
my $self = shift;
my $c = $_[0];
$self{dn} = $c->req->param('username');
$self{password} = $c->req->param('password');
$self->next::method(@_);
}
For more information on customizing the bind process, please see:
http://search.cpan.org/~danieltwc/Catalyst-Model-LDAP-0.15/lib/Catalyst/Model/LDAP/Connection.pm#OVERRIDING_METHODS
--
Daniel Westermann-Clark
More information about the Catalyst
mailing list