I have two classes that make this a bit easier:

   * 'User' class handles permissions e.g. is_superuser or is_publisher

   * SearchQuery class handles the dynamic where clauses etc.

so a little code snippet looks like this:

        my $query = new SearchQuery( 'select * from view_JobList_Quick',
$self->param('pageno'));

        # Filter viewable jobs unless superuser
        $query->addFilter('PublisherID', $self->user->info->{PublisherID}) if
$self->user->is_publisher;
        $query->addFilter('PrintCenterID', $self->user->info->{CompanyID}) if
$self->user->is_printer;

        my $rows = $query->DoSearch($self->dbh);


I guess my 'user roles' haven't changed that often but I find this
pretty easy to manage.


mike

#####  CGI::Application community mailing list  ################
##                                                            ##
##  To unsubscribe, or change your message delivery options,  ##
##  visit:  http://www.erlbaum.net/mailman/listinfo/cgiapp    ##
##                                                            ##
##  Web archive:   http://www.erlbaum.net/pipermail/cgiapp/   ##
##  Wiki:          http://cgiapp.erlbaum.net/                 ##
##                                                            ##
################################################################

Reply via email to