Notable changes are:
* Refactored views, utilizing more of Djangos features, resulting in simpler
code.
* URLs are now the same when initially filling out a form and when editing a
submitted form which contained errors.
* Instead of a result page showing the response from the DNS server (which is
now logged using Djangos "logging" functionality) the user is now redirected
back to the record listing of the current zone when the action was successful
or stays on the form page when an error occured. Proper success/error
messages are shown in both cases by utilizing Djangos "messages"
functionality.
The tests checking the DNS resolution aren't reliable as they rely on specific
behavior of the DNS resolution on the local system. As they are reliable it
makes no sense to keep them as they are currently.
This commit adds global authentication to binder to ensure that only valid
users are able to use it. This should enable binder to be used in
environemts where it's webfrontend is reachable for unauthenticated users as
well.
For setups where such a global authentication isn't desired it can be disabled
by simply removing the LoginRequiredMiddleware from the list of active
middlewares.
Fixes three failing tests.
For test_ipinfo_ResolutionFail it fixes the following issues:
* failing when no network is available
* failing when Google changes the ip addresses of the service
* failing when the order of returned ip addresses is different
For test_DeleteRecordInitial_Empty and test_DeleteRecordInitial it fixes a not
existing BindServer object.
When requesting one of binders BIND server specific URLs for a server not
present in binders database currently uncatched exceptions are thrown.
This commit fixes that for all URLs containing the server name, by instead of
throwing an uncatched exception, returning a proper HTTP 404 status code.