4 use base 'DevHelp::Report';
7 my ($class, $req_or_cfg) = @_;
10 if ($req_or_cfg->isa('BSE::Cfg')) {
14 $cfg = $req_or_cfg->cfg;
18 my $work = $class->SUPER::new($cfg, 'reports');
19 $req and $work->{req} = $req;
28 my %entries = $self->SUPER::list_reports;
30 for my $key (keys %entries) {
31 $self->report_accessible($key) or push @delete, $key;
33 delete @entries{@delete};
41 sub report_accessible {
42 my ($self, $report) = @_;
44 $self->{req} or return;
46 my $rights = $self->report_entry($report, 'bse_rights');
47 defined $rights or $rights = '';
49 $rights eq '' and return 1; # no controls
50 for my $set (split /\|/, $rights) {
51 grep $self->{req}->user_can($_, -1), split /[,;]/, $set