moved Dancer2::Plugin::Auth::Tiny->extend() into its own package; dev login exempt from requiring username; added 'needs admin' to InfoLib edit route so it features in routes.t tests
extended Dancer2::Plugin::Auth::Tiny to register 'admin' keyword; added access_denied page; amended default capture route to exclude access_denied route; organised routes into lists calling sub-routines in main Routes file to align with the other Routes::* packages
moved App::DBIx dump_query code block into new App::Utils class, and moved the App::DBIx query() & dump_query() methods into new DBIx class, in same file as App::DB
patched App::DBIx dump_query() method to handle INSERT statements; substitutions can be performed directly on $sql inside dump_query() without requiring separate $str variable as the function receives a copy of $sql var not a reference to it
implemented Local::Utils dump_query function, and a package (App::DB::Result) to overload DBIx::Simple::Result, but its functions are not available to App::DBIx, possibly due to Feature::Compat::Class limitations
changed how DPW model handles file upload functions for checking and setting upload directory: * moved duplicate code for checking existance of uploaded file into discrete function * initialised '_upload_dir' value as a param during file check function to avoid requierement for duplication in route and model; put rudimentary date check on sqlite3 db (still permits invalid dates); new test files