24/04/2020 by Dominique Fournier
FEATURES ADDED
* Add DNSSec Support (Disabled by default on existing zones, can be set to
automatic if needed). The administrator must create the keys and activate
them with :
rndc loadkeys DOMAIN.TLD IN VIEWNAME
* Record : check if the double quotes are even, and if the parenthesis are
balanced. Otherwise, Bind could not reload the zone
CORRECTED BUGS:
* Bind : Zone export zone start by SOA and the zone @ records, even if the SOA
was added later. Otherwise, Bind cry about missing $TTL
* The Debian package for SSH in PHP has changed its name to "php-ssh2"
* Remove multiple records : do not update DNS each entry, but at the end
* Delete Zone : if there is an alert, don't let the wait image and restore
the standard message to enable a second try
* When the zone is disabled, do not try to reload it after removing a record,
or there is an alert sent
Need Database Update ! Do a backup !
For SQLite :
PRAGMA foreign_keys=off;
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS new_table(
id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
zone VARCHAR(255) NOT NULL,
viewname VARCHAR(255) DEFAULT 'default',
viewclients VARCHAR(255),
dnssec INTEGER,
comment VARCHAR(1024),
opendate DATETIME NOT NULL,
closedate DATETIME,
UNIQUE (zone,viewname));
INSERT INTO new_table(id,zone,viewname,viewclients,comment,opendate,
closedate)
SELECT id,zone,viewname,viewclients,comment,opendate,closedate
FROM dns_zones;
UPDATE new_table SET dnssec='0';
DROP TABLE dns_zones;
ALTER TABLE new_table RENAME TO dns_zones;
COMMIT;
PRAGMA foreign_keys=on;
For MySQL :
BEGIN TRANSACTION;
ALTER TABLE dns_zones ADD COLUMN dnssec INTEGER AFTER viewclients;
UPDATE dns_zones SET dnssec='0';
COMMIT;
21/04/2020 by Dominique Fournier
FEATURES ADDED
* Add CAA Record support (https://support.dnsimple.com/articles/caa-record/)
* Add SSHFP Record support
(https://www.noobunbox.net/serveur/securite/securiser-ssh-avec-sshfp)
CORRECTED BUGS:
* SSH is now done by the SSH2 library integrated in PHP (allow IPv6 support)
* BUG Bind import with long DKIM key
01/03/2019 by Dominique Fournier
* Add long target entry : database update needed if MySQL
table dns_records 255->2048 : target VARCHAR(2048) NOT NULL,
* Allow underscore in source record (Needed for DKIM). Should only be allowed
in SRV and TXT types
* Bug can not reload the zone at fournier38.fr : available in two views
* BUG : Don't allow the same zone to be defined twice with the same clients
(with different viewname)
03/11/2017 by Dominique Fournier
* Update Debian Package to PHP7
* Update the Domframework requirements in index.php
06/09/2016 by Dominique Fournier
* Display the DataTables sort arrows instead of Bootstrap ones
* BUG : Error in calculation in matrix page
* CLI : Allow the CLI to update all the zones in servers
* Force the record ID in edition to be compliant with domframework 0.30
* Authentication error : the error class is now viewerror
08/06/2016 by Dominique Fournier
* Rename error to viewerror to be compatible with PHP7
* Add the multiple add range functionality
* Delete multiple record : missing space in confirmation modal between number
and selections
* If the zone is disabled, do not allow to click on "Activate the zone" when
adding records. Do not allow the automatic "push and active" to activate the
zone. There is an error raised by Bind : not found:
* Display the flag "disabled" on the top of record page if needed
* Create a matrix view of used IP (too found easily a block of IP addresses).
Only in reverse zones
* Update to DataTables 1.10.12
* Add the multiple selection of records by mouse with shift/control
* Delete confirmation : do not remove the window until all the records are
removed
14/04/2016 by Dominique Fournier
* Datatables : when resizing screen from small to big, the Datatables is not
resized and stay small
* Publish the soft on Freshcode <http://freshcode.club/projects/domdns>
* BUG Reverse record creation IPv6 : check the number of elements : don't
create if there is missing part of the IP (which can be a valid IP if the
part is a 0)
* BUG Do not have warning if the view name is not provided to zone list for a
zone
* Add a button to create the reverse of a record if it doesn't exists (with
a select box of RW enabled reverse zones and submit)
There is a fill (when clicking on Add, do not display the filled values,
and clicking on Go, should)
08/03/2016 by Dominique Fournier
* Need Domframework 0.24
* Allow one server to be on views and another to be without view (the command
will be rndc reload zone in view / rndc reload zone) (need modification of
domframework config.php)
* SSH connection : allow another port than 22 (need modification of
domframework config.php)
* Sort zones in bind export
* Delete last record : error warned by the server 'Pas de données fournies
pour créer le fichier de zone'
* exportAll : in case of error with bind, invalid SSH port by example, manage
the error on the modal instead of alert.
* BUG : Disable zone : invalid if all the dates are in the future and the
close date is before the open date (should be enable until the close date is
crossed, then reopened)
07/03/2016 by Dominique Fournier
* Add the cron configuration to web site
* Add the delete wait gif when deleting a records (with automatic, the time
can be long)
* BUG : Manual mode push but nevertheless reload the zone
* BUG : joker (*) forbidden in import zone and in source of record
* ReloadAllZones button : Add 2 more steps in percent calculation : the
creation of zones file and reload
* exportAll : refactory all the JS code
* exportAll : display the errors in the window instead of an alert box
* BUG : Reload all the zones if the server is not in view support
04/03/2016 by Dominique Fournier
* When deleting a zone, add a waiting when clicking on delete confirm button
* Add a comment on "any" keyword for view clients
* Add a "Open now" button to activate a zone in one click
* Add the CRON support to disable zones when the close date has passed
* Hide the seconds in the date display for zones (shorter and not available in
CRON)
* Hide the seconds in the date display for records (shorter and not available
in CRON)
* BUG : If zone add, a right text inbox is visible : shouldn't
* Display on the records list when the record is disabled (Datatables REST)
* Add the disabled state of records when exporting the zone in bind
* BUG : The automatic update of the zones entries was defective since the
default preferences add
* Add the CRON support to disable records when the close date has passed
* `rndc reconfig` when adding/removing/updating a zone instead of `rndc
reload`. The zone will really be enable when the recrds will be reloaded
* `rndc reload <zone> in <view>` instead of `rndc reload` when modifing one
zone
* servers : limit the reload without zone to editrightZone right
* Cron : the update of the zones disabling by cron run 'rndc reconfig' instead
of 'rndc reload'
* Authentication : in case of error in POST, reload in GET with an error
message in session
* Button Manual/Automatic : display directely the right value/color : no more
blinking
* cron : check if the process takes more than 59s and warn the administrator
* cron : reduce the iterations from N² to 2N : much quicker !!
* cron : if there is an error with a server, redo the action next minute
* Add a garbage cleaner to remove older unused entries of cron cache
* cron : don't display "true" if all run well
* The exportAll doesn't create the server named.conf
* rndc reload zone in view : view is the clients NOT the viewname !
26/02/2016 by Dominique Fournier
* phpunit : use assertSame in place of assertEquals
* Create a named.conf.local with the actives zones (if the close date is
defined and is in past, the zone is inactive)
* Update the named.conf.local when adding/modifing/delete a zone
* Add a comment to viewclients fields about the comma separated
* BUG : shortcuts : don't apply the shortcuts in INPUT, SELECT and TEXTAREA
* Add a configuration option to allow/disable views and hide the columns in
Datatables. Export in Bind only the needed ConfLocal.
* Add a flag to display when the zone is disabled.
* Zones return the disabled state when using read
* Add a button to complete the close date automatically in zone details to
disable a zone in one click
* When the config is without view, disable the view input in zone edit
23/02/2016 by Dominique Fournier
* Need Domframework 0.23 !
* JSON decode the error messages
* A bad request method POST provided instead of PUT for zoneAutoActivate
* zoneAutoActivate.js : the Ajax update of the information is not needed
* Check if there is "$datas" in code, check if there is "$informations"
* If there is no zone in the database, have a beautiful error message instead
of a invalid HTML page
* If there is no record in zone, have a beautiful error message
* Import bind: The source is always a @
* Import bind: better support of end of lines
* Add transaction in database when doing a importBind with rollback in case of
error
* When there is an error in importBind, display the wrong line
* When the error page is displayed, add the breadcrumb to go to the main page
* Create a progress bar when exporting all the zones to DNS servers
* importBind : better parsing (except if a field is missing with the error
line)
* Allow the importBind to be an uploaded file
* Records : remove a record should not refresh all the page (just removing the
Datatable line)
* records : change the confirm message with the number of rows to delete
* Module authorization : add the "use $route" to index.php
* Display all the groups of the current user when editing the user page
* Help keys to add/remove/update an entry (like [del] to remove an entry)
* Add the focus on the forms (on the first element if there is no error, on
the field with an error if there is one) [done in domframework 0.23]
* Do a Help page (with shortcuts)
19/02/2016 by Dominique Fournier
* Don't allow the double-clicks to select the word (and clear the clipboard)
* Display the number of errors or the error in the flash or the right error if
it is global (and not field dependent)
* Logs : when delete an entry, display the content of the deleted entry
instead of the key
* Display the right (RO / RW) by zone
* Don't send the RO zones when clicking on refreshAllZones (no error
displayed)
* The refreshAllZones button stay active until all the zones are reloaded
* Remove the Ajax async:false to be without error in console
* Display the default mouse pointer in the datatables
* If the zone is in RO mode, don't allow the buttons "Modify" and "Delete"
zone
* Convert the datatables functions from legacy to new API
* Display a label with Read-Only zones in zone list
* Manage the autoactivation by default user preference.
* Add userprefs management (with language selector, recorded information like
the automatic/manual mode)
* Manage in userprefs the deletion of an recorded parameter
* Userprefs : don't save the state of the autoactivate for a zone if it is in
the same state as the default one
* Reject pages with 403 must log the username and the rejected page
* Do beautiful error page
* Display the name of the application on the authentication page
* Display a warning if the target reverse address doesn't resolve
13/11/2015 by Dominique Fournier
* Update locales
13/11/2015 by Dominique Fournier
* Take a look to unit tests : they are failed !
* BUG : The sorting of destination column if it contains IPv6 address is not
working (direct zones)
* Add a placeholder in fields to help the users to fill the information
* The sorting of first column (source) if IPv6 is not working (reverse zones)
* record : don't save the TTL value if it not defined
* record : Allow the ttl to be empty (use the zone ttl by default)
13/05/2015 by Dominique Fournier
* If a user don't have the RW rights on /, the button to edit the records is
not displayed
* Import a bind file into the records from the Web interface
* Layout : translate the fixed words/sentences in layout.html
* records : after import, do an automatic reload if the user have defined the
preferency
* Allow to remove multiple records in one operation, but not edit them
* authentication : if the user is already authenticated and the URL back is
provided, add a link to the defined URL [corrected in Domframework]
* servers : ratelimit the reload of BIND to 10 for one minute
* record : Limit the TTL value to the allowed range 0 to 2147483647
* Put the timezone in the configuration
* config : add the first meta information to prepare a configuration
interface
* routing : allow Apache to have mod_rewrite activated or not
* Display the zone records in bind format (export)
* CLI : correct the cli to not generate errors when using it
30/04/2015 by Dominique Fournier
* Automatic Updates are now again functionnal
* BUG : CSRF Ticket refused sometimes : favicon problem
* Add an official favicon, and icon (from libreoffice)
29/04/2015 by Dominique Fournier
* Debian packaging correction
29/04/2015 by Dominique Fournier
* JS/CSS : add timestamp to force the browser cache to be updating when the
file is changed
* Add a log for each modification with user name
* Add logs for authentication
* the userprefs have to be saved by user instead of nobody
* Allow deletion with token to remove the use of REST support for HTML pages
* authentication : ratelimit by IP the authentication process
* configuration : if missing entry in an array of the configuration, use the
default value instead of don't defining the entry (corrected in
domframework)
27/01/2015 by Dominique Fournier
**** YOU NEED TO RUN './cli/cli.php install createDB' TO INSTALL THE RIGHTS
**** TABLES
**** AND THEN './cli/cli.php install updateDB' TO INSTALL THE OBJECTS
**** DOMFRAMEWORK Version 0.11 minimum
* Add the right managements (user done, group done, object done, group rights
done, object rights done, using in all the functions : done)
* Allow REST authentication. The login and password must be sent in the HTTP
header. Use this only in HTTPS ! The password is sent non-encrypted !
* Check the authorization for all the controllers (zones : OK, records : OK,
server : OK)
* Add a new zone in the objects of a default group for the user. Push in the
configuration to be easier
* Add right management to authorization module
* Don't display the Modules/Authorizations link if the user is not in the
administrators list
* Layout : display a menu to login when we are the anonymous user
* Display all the members of a group when editing the group page
* Cache the authentication result when the user is authenticated for 3 minutes
* Permit the push all the zones when the zone nmae is '.'
* http://localhost/ProgSVN/domdns/authorization/group/8/user -> remove idgroup
* delete a read-only zone : JS alert with just "error" message instead of the
error coming from the PHP in the JSON
* Refuse to create a new record with zoneid,source,class,rr,target identical
to another
* Rewrite the index page to use custom errors page and a custom renderer
(permit to remove the XXXrest.php and XXXhtml.php pages)
* The underscore is forbidden in source for A,AAAA,NS,MX records and in target
in PTR records
* BUG : if the zone "." is used, it can't be modified because of URL rewriting
in the browser. The "." is converted in "dot"
* Allow DNS entries to be imported if zone is a "dot"
* Allow Zones to not have a SOA. In this case, the exports don't update the
SOA
* Check if the view name can contains special chars (forbidden in Bind conf
files)
* Write more Unit Tests
* Add the button in the navbar of bootstrap to allow the user to disconnect,
in mobile size
08/08/2014 by Dominique Fournier
* Allow to re-push all the displayed zones in automatic and then do the reload
* The sorting of first column (source) in reverse zones is not correct
* When renaming zone or viewname, correct all the associated userpref
* Limit the zone name to lowercase chars
* Add internationalisation (dataTables and in the other parts of the soft)
DomFramework version 0.7 minimum
Selection by Browser default language/Cookie (and auth page when it will be
available)
01/08/2014 by Dominique Fournier
ATTENTION : Prefix support in database : you need to add the line :
"tableprefix" => "", in your configuration (in database section)
ATTENTION : Database update done. Run "./cli/cli.php install createDB" after
installing new version. Actual data are not modified
*** Upgrade Domframework to version 0.6 minimum ***
* Add support to prefix in SQL tables : update configuration file !
* Add SPF RR support (Thanks to Stanislav Filavtev suggestion)
* Modify Bind import to be allow TTL in lines
* Big rewrite of bind Import to be more maintainable
* Start the unit tests of DomDNS
* Add the automatic push/reload of a zone after modification of records
* Fix the width of the Automatic/Manual button
* Add support to double-click on record to edit it
19/07/2014 by Dominique Fournier
* add SRV record support
* add sudo functionnal support
* after create/edit a record in HTML, return to the zone/view list
* Remember the layout of DataTables in cookie
* WebSite : Add CLI/REST page to describe the fonctionnalities
* Display the default pointer on the table of zones
* Display the list of views available with {baseurl}{zone} (breadcrumb records
* Add a double-click on zones to edit records
27/06/2014 by Dominique Fournier
* BUG : Packaging error : bad model file applied
27/06/2014 by Dominique Fournier
* BUG : Create the user in the group bind correctely
* BUG : Remove warning in debian user creation
13/06/2014 by Dominique Fournier
* Allow username to be used by sudo to move the zones or reload DNS server
* Debian package : add /etc/sudoers.d/domdns with chmod 0440
* Debian package : add the domdns user to the system
* Allow to create/modify/delete zone
* Don't allow multiple SOA in insert record
* Ask the confirmation before deleting an entry with a bootstrap modal
* Create the database in CLI if the configuration is done (by adding a
controller "install")
* Add foreign keys in database to remove records associated to a zone
* Debian package : add jquery.min.js because the official Debian package don't
work (number of records don't displayed on the DataTable)
* Add default pointer to zone list
03/06/2014 by Dominique Fournier
* Create Debian package
03/06/2014 by Dominique Fournier
* Go to new dataTables version
* Sort the source column by default
* Use dataTables for zone listing
* BUG : Bind Import don't work for source = @ : try to add an ending dot
* BUG : Bind Import don't work if there is no $ORIGIN in file -> use now the
zone name
* BUG : Bind Import corrupt by adding erroneous zone in targets
28/05/2014 by Dominique Fournier
* Records (forms) : don't stay on POST page (record in session et go back in
GET)
* Check HTML validation on each page
* Ask the confirmation before deleting an entry with a bootstrap modal
* Ask the confirmation before deleting an entry