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