Changeset 911 for branches/secondaryzones/DNSDB.pm
- Timestamp:
- 08/12/25 15:47:28 (31 hours ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/secondaryzones/DNSDB.pm
r908 r911 3170 3170 # - an array of "acceptable" groups 3171 3171 # - a flag for forward/reverse zones 3172 # - a flag for primary/secondary zones 3172 3173 # - Optionally accept a "starts with" and/or "contains" filter argument 3173 3174 # Returns an integer count of the resulting zone list. … … 3196 3197 3197 3198 my $sql; 3198 # Not as compact, and fix-me-twice if the common bits get wrong, but much easier to read 3199 if ($args{revrec} eq 'n') { 3200 $sql = "SELECT count(*) FROM domains". 3199 3200 if ($args{secondary} eq 'y') { 3201 # Secondary zones have less distinction between forward/reverse. 3202 # May need to revisit that once viewing records in the zones. 3203 $sql = "SELECT count(*) FROM secondaryzones". 3204 " WHERE group_id IN ($args{curgroup}".($args{childlist} ? ",$args{childlist}" : '').")". 3205 ($args{startwith} ? " AND zone ~* ?" : ''). 3206 ($args{filter} ? " AND zone ~* ?" : ''); 3207 } else { 3208 if ($args{revrec} eq 'n') { 3209 $sql = "SELECT count(*) FROM domains". 3201 3210 " WHERE group_id IN ($args{curgroup}".($args{childlist} ? ",$args{childlist}" : '').")". 3202 3211 ($args{startwith} ? " AND domain ~* ?" : ''). 3203 3212 ($args{filter} ? " AND domain ~* ?" : ''); 3204 } else {3205 $sql = "SELECT count(*) FROM revzones".3213 } else { 3214 $sql = "SELECT count(*) FROM revzones". 3206 3215 " WHERE group_id IN ($args{curgroup}".($args{childlist} ? ",$args{childlist}" : '').")". 3207 3216 ($args{startwith} ? " AND CAST(revnet AS VARCHAR) ~* ?" : ''); 3208 # if ($self->{showrev_arpa} eq 'zone' || $self->{showrev_arpa} eq 'all') {3209 3217 # Just In Case the UI is using formal .arpa notation, and someone enters something reversed, 3210 3218 # we want to match both the formal and natural zone name 3211 3219 $sql .= ($args{filter} ? " AND (CAST(revnet AS VARCHAR) ~* ? OR CAST(revnet AS VARCHAR) ~* ?)" : ''); 3212 3220 push @filterargs, join('[.]',reverse(split(/\[\.\]/,$args{filter}))) if $args{filter}; 3213 # } else { 3214 # $sql .= ($args{filter} ? " AND CAST(revnet AS VARCHAR) ~* ?" : ''); 3215 # } 3221 } 3216 3222 } 3217 3223 my ($count) = $dbh->selectrow_array($sql, undef, @filterargs); … … 3253 3259 3254 3260 my $sql; 3255 # Not as compact, and fix-me-twice if the common bits get wrong, but much easier to read 3256 if ($args{ revrec} eq 'n') {3257 $args{sortby} = ' domain' if !$args{sortby} || !grep /^$args{sortby}$/, ('domain','group','status');3261 3262 if ($args{secondary} eq 'y') { 3263 $args{sortby} = 'zone' if !$args{sortby} || !grep /^$args{sortby}$/, ('zone','primaryserver','group','status'); 3258 3264 $sql = q(SELECT 3265 secondary_id AS zoneid, 3266 zone, 3267 primaryserver, 3268 status, 3269 groups.group_name AS group, 3270 l.description AS location 3271 FROM secondaryzones 3272 LEFT JOIN locations l ON secondaryzones.default_location=l.location 3273 INNER JOIN groups ON secondaryzones.group_id=groups.group_id ). 3274 "WHERE secondaryzones.group_id IN ($args{curgroup}".($args{childlist} ? ",$args{childlist}" : '').")". 3275 ($args{startwith} ? " AND zone ~* ?" : ''). 3276 ($args{filter} ? " AND zone ~* ?" : ''); 3277 } else { 3278 if ($args{revrec} eq 'n') { 3279 $args{sortby} = 'domain' if !$args{sortby} || !grep /^$args{sortby}$/, ('domain','group','status'); 3280 $sql = q(SELECT 3259 3281 domain_id AS zoneid, 3260 3282 domain AS zone, … … 3268 3290 ($args{startwith} ? " AND domain ~* ?" : ''). 3269 3291 ($args{filter} ? " AND domain ~* ?" : ''); 3270 } else {3292 } else { 3271 3293 ##fixme: arguably startwith here is irrelevant. depends on the UI though. 3272 $args{sortby} = 'revnet' if !$args{sortby} || !grep /^$args{sortby}$/, ('revnet','group','status');3273 $sql = q(SELECT3294 $args{sortby} = 'revnet' if !$args{sortby} || !grep /^$args{sortby}$/, ('revnet','group','status'); 3295 $sql = q(SELECT 3274 3296 rdns_id AS zoneid, 3275 3297 revnet AS zone, … … 3282 3304 " WHERE revzones.group_id IN ($args{curgroup}".($args{childlist} ? ",$args{childlist}" : '').")". 3283 3305 ($args{startwith} ? " AND CAST(revnet AS VARCHAR) ~* ?" : ''); 3284 # if ($self->{showrev_arpa} eq 'zone' || $self->{showrev_arpa} eq 'all') {3285 3306 # Just In Case the UI is using formal .arpa notation, and someone enters something reversed, 3286 3307 # we want to match both the formal and natural zone name 3287 3308 $sql .= ($args{filter} ? " AND (CAST(revnet AS VARCHAR) ~* ? OR CAST(revnet AS VARCHAR) ~* ?)" : ''); 3288 3309 push @filterargs, join('[.]',reverse(split(/\[\.\]/,$args{filter}))) if $args{filter}; 3289 # } else { 3290 # $sql .= ($args{filter} ? " AND CAST(revnet AS VARCHAR) ~* ?" : ''); 3291 # } 3310 } 3292 3311 } 3293 3312 # A common tail.
Note:
See TracChangeset
for help on using the changeset viewer.