Correct [log type=error|debug] final newline behavior
[interchange.git] / code / UI_Tag / list_databases.coretag
1 # Copyright 2002-2007 Interchange Development Group and others
2
3 # This program is free software; you can redistribute it and/or modify
4 # it under the terms of the GNU General Public License as published by
5 # the Free Software Foundation; either version 2 of the License, or
6 # (at your option) any later version.  See the LICENSE file for details.
7
8 # $Id: list_databases.coretag,v 1.5 2007-03-30 23:40:54 pajamian Exp $
9
10 UserTag list-databases Order   nohide extended
11 UserTag list-databases Version $Revision: 1.5 $
12 UserTag list-databases routine <<EOR
13 sub {
14         my $nohide = shift;
15         my $extended = shift || '';
16         $extended = "=$extended" if $extended;
17         my @dbs;
18         my $d = $Vend::Cfg->{Database};
19         @dbs = sort keys %$d;
20
21         GENDBLIST: {
22                 last GENDBLIST if $nohide;
23                 my @outdb;
24                 my $record =  ui_acl_enabled();
25                 last GENDBLIST if $record and $record->{super};
26                 undef $record
27                         unless ref($record)
28                                    and $record->{yes_tables} || $record->{no_tables};
29
30                 for(@dbs) {
31                         if($record) {
32                                 next if $record->{no_tables}
33                                         and ui_check_acl($_, $record->{no_tables});
34                                 my $check = "$_$extended";
35                                 next if $record->{yes_tables}
36                                         and ! ui_check_acl($check, $record->{yes_tables});
37                         }
38                         push @outdb, $_;
39                 }
40
41                 @dbs = $nohide ? (@dbs) : (@outdb);
42         }
43
44         return @dbs if wantarray;
45         my $string = join " ", grep /\S/, @dbs;
46         return $string;
47 }
48 EOR