Hello,

I'm very new to Catalyst, so at the moment I am playing around with some things. I think I've got a very basic question: I'm not sure how to pull out more complicated queries from the controller by providing subroutines/accessors.



I created a LDAP-Model and sourced out the connection-parameters to myapp.config

<Model::Person>
    base   ou=TSM,ou=ABC,o=fffff,c=de
    password   extremlysecret
<start_tls_options>
        verify   none
</start_tls_options>
    port   1111
    start_tls   0
    dn   cn=readproxytsm,ou=services,o=ffff,c=de
    host   ldaps://ldapauth.ffff.de
</Model::Person>


Then I tested it by a controller query, which works very well:

    # Then, in your controller
    my $mesg = $c->model('Person')->search('(uid=lu21rue)');
    my @entries = $mesg->entries;
    $c->stash({
               template => 'books/person.tt',
               person_uri => $entries[0]->uid,
               person => $entries[0],
    });





But I don't wanna pollute my controllers, so I wanted to source out complicated queries in special classes which should provide accessors. So I extended the Model-class to use an adaptor:



package ldap::Model::Person;

use strict;
use warnings;
use base qw/Catalyst::Model::LDAP/;
use parent 'Catalyst::Model::Adaptor';


__PACKAGE__->config(
        class => 'ldap::Model::Person::Utils',
        args => {}
);


package ldap::Model::Person::Utils;

use Moose;
use namespace::clean -except => 'meta';
extends 'Catalyst::Model::LDAP';


sub getPerson {
    my ($self, $person) = @_;

        my $mesg = $self->search('(uid='.$person.')');
        my @entries = $mesg->entries;

        return @entries;
}


__PACKAGE__->meta->make_immutable;



But that's defnitly the wrong way, 'cause $c->model('Person') from the controller returns a Catalyst::Model::LDAP::Connection reference. What's the right way to pull out these queries from the controller and store them in their own classes?

Thank u in advnace :-D



_______________________________________________
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/

Reply via email to