Opened 13 years ago

Closed 11 years ago

#10 closed enhancement (fixed)

Support multiple DNS views

Reported by: Kris Deugau Owned by: somebody
Priority: minor Milestone: 1.2
Version: Keywords:
Cc:

Description (last modified by Kris Deugau)

Mainly targetted at tinydns's "%name:allowedip" scope restriction; should be supportable with BIND views and/or split-horizon config

Change History (23)

comment:1 by Kris Deugau, 13 years ago

Milestone: 1.4

comment:2 by Kris Deugau, 12 years ago

Description: modified (diff)
Milestone: 1.41.2

comment:3 by Kris Deugau, 12 years ago

Summary: Support multiple DNS views/clustersSupport multiple DNS views

comment:4 by Kris Deugau, 12 years ago

(In [370]) /trunk

Checkpoint; adding location/view support. See #10.

  • add location to menu
  • add table and link fields to initial tabledef and upgrade SQL
  • add listing subs and list page
  • update permissions list and subpage template with new permissions

comment:5 by Kris Deugau, 12 years ago

(In [372]) /trunk

Checkpoint adding location/view support. See #10.

  • minor location list template tweak
  • extend importer to deal with locations on records, and location definitions
  • extend exporter to handle locations

Also:

  • minor SQL error-log cleanup (boolean types use 'y'/'n' or 'true'/'false'). See #25, sort of
  • Fix handling of CNAME exports for reverse zones; the records look ugly but there's no simple way to autoconvert them to the template types on import
  • Fix lurking buglet in tabledef update; we're using a 4-char field for locations to allow for legacy uses.

comment:6 by Kris Deugau, 12 years ago

(In [374]) /trunk

Checkpoint adding location/view UI bits. See #10.

  • add location add/edit template
  • stub out location add/edit, start filling in add section
  • straighten out use of some of the new location-related permission flags

comment:7 by Kris Deugau, 12 years ago

(In [375]) /trunk

Checkpoint adding locations/views. See #10.

  • Tweak new locations table again with an internal serial for sorting and finding the "highest" previous location
  • Complete "Add location" stub
  • Fill in initial display page for "Edit location"
  • Tweak location add/edit/update template a little, add new comments field to match new field in table
  • Tweak location import so we don't end up with great long space-free fields similar to what can't be avoided with TXT (usually SPF/DomainKeys) records
  • Fill in addLoc() stub
  • Add getLoc()
  • Tweak location export to strip commas and whitespace properly

comment:8 by Kris Deugau, 12 years ago

(In [377]) /trunk

Checkpoint adding locations to UI. See #10.

  • Add location list sort field and order initialization to session setup
  • Fix up a minor copy-paste oversight
  • Fill in location update stubs
  • Add missing logging and code-style bits to addLoc()

comment:9 by Kris Deugau, 12 years ago

(In [380]) /trunk

Fix minor(ish) bug in import of locations; set default_location
on new zones. See #10.

comment:10 by Kris Deugau, 12 years ago

(In [382]) /trunk

Update permission loading with the new fields for locations. See #10.

comment:11 by Kris Deugau, 12 years ago

(In [383]) /trunk

Checkpoint adding location support to UI. See #10.

  • Add location entries to new domain, record list, and record add/edit templates
  • Add UI sub to fill location dropdown on new domain and record add/edit templates
  • Fix thinko in initial setting of location_view permission
  • Handle display properly if user does not have location_view permission
  • Add DB-interfacing subs in DNSDB.pm to get the default location set on a zone, and to return a list of locations suitable for a UI dropdown

comment:12 by Kris Deugau, 12 years ago

(In [384]) /trunk

Fix bugs in new SQL bits in getDomRecs(). See #10.

  • Don't retrieve location on $def, not $rev
  • Use left join to pull in location, so that the presence or absence of a location on a record does not determine if it shows up in the record list

comment:13 by Kris Deugau, 12 years ago

(In [387]) /trunk

Add a new permission record_locchg to separate changing the
location of a record from the abaility to edit a record or
change the location definition. See #10.

comment:14 by Kris Deugau, 12 years ago

(In [388]) /trunk

Extend location view on the record page to either show a dropdown
when adding/editing if the user has record_locchg permission, or
just show the location's short description if not. See #10.
Also add the new permission to the permissions subtemplate.

comment:15 by Kris Deugau, 12 years ago

(In [389]) /trunk

Add location support to addRec() and updateRec().
Extend add/update record UI to make sure the user can only update
the location if they have record_locchg permission, by retrieving
the parent/original location for add/update respectively.
See #10.

comment:16 by Kris Deugau, 12 years ago

(In [390]) /trunk

Extend handling of setting permissions to keep "chained"
permissions straight. Needed mainly for locations; if the user
can manipulate them (add/edit/delete/change-on-record) then they
should be able to view them. See #10.
Also sets self_edit if user_edit is set.

comment:17 by Kris Deugau, 12 years ago

(In [391]) /trunk

Add support for new permissions to addUser()'s permission type check. See #10.

comment:18 by Kris Deugau, 12 years ago

(In [393]) /trunk

Get the correct data for the initial permissions with the new
record_locchg permission. See #10.

comment:19 by Kris Deugau, 12 years ago

(In [395]) /trunk

Fix thinko in recording tabledef update for record location for new DB. See #10.
Remove duplicate primary key definition in new DB.

comment:20 by Kris Deugau, 12 years ago

(In [427]) /trunk

Add location delete template, tweak link for location delete in
location list. See #10.
Normalize delete templates to be closer to identical.
Add revzone delete template to Makefile file list.

comment:21 by Kris Deugau, 12 years ago

(In [428]) /trunk

Polish off the last of the location subs; locations can now be
deleted if there are no more records tagged with that location.
See #10.

comment:22 by Kris Deugau, 12 years ago

(In [516]) /trunk

Tune up location/view handling on zone add. See #10.

Domains and revzones added with a location specified will actually use
that location. Documentation note: Zones specifying a location on
creation will only be visible to that location, because the SOA record
will be created with that location. A zone should be created with no
location set if records must be visible across multiple locations, or
publicly.

comment:23 by Kris Deugau, 11 years ago

Resolution: fixed
Status: newclosed

Haven't triggered any new bugs with locations/views, resolving

Note: See TracTickets for help on using tickets.