1Revision history for CGI-Ex. 2 32.50 2020-07-07 22:03:55-06:00 America/Denver 4 5 * Allow for optionally using multi_param if the object supports it 6 72.49 2020-03-05 10:42:23-07:00 America/Denver 8 * Switch to Dist::Zilla for building dist (this release is thanks to Charles McGarvey) 9 * Fix CI config to work with dzil 10 * Add HttpOnly, SameSite support to CGI::Ex::Auth 11 * Document the CGI::Ex::Auth cookie_* properties 12 132.48 2018-12-06 14 * Fix app constants on modern perls. 15 162.47 2018-08-16 17 * Replace mechanism for setting cookies via meta tags with JavaScript equivalent (thanks to Garth Hill, Dillan Hildebrand, Alfredo Cabrera, Matt Swensen) 18 * Test added for the replacement JavaScript mechanism of setting cookies 19 202.46 2018-07-24 21 * Skip replace validation types in CGI::Ex::Validate when the corresponding form key's value is undef (thanks to Matt Devey) 22 * Test added for CGI::Ex::Validate skipping replace validation when form key's value is undef (thanks to Charles McGarvey) 23 * Removed copyright years as they weren't necessary 24 252.45 2017-07-23 26 * Lost commits from 2.43 have been restored in this version 27 * Allow HTML5 input types to be filled 28 * Fix bug that prevents bounce_on_logout from deleting the auth cookie 29 * Silence warning about CGI::param in list context 30 * Fix tests on perl 5.26.0 (thanks to Petr Písař) 31 * Smarter feature detection for JSON module (thanks to Petr Písař) 32 * Declare perl version required 33 * Add CGI.pm to pre-reqs 34 * Upgrade Makefile.PL 35 * No longer indexing 'samples' directory 36 * Updated the copyright year to 2017 37 382.44 2015-10-07 39 * Restoring the version number in several modules 40 * Updated the copyright year to 2015 41 422.43 2015-10-01 43 * Fixing POD errors 44 * Restoring the README that got lost in 2.42 45 462.42 2014-12-10 47 * Adding protection to location bounces to stop potential XSS vulnerabilities 48 492.41 2014-06-12 50 * Restoring a tab character in Makefile.PL so that make can run again 51 522.40 2012-12-17 53 * Validation fixes for regex based keys 54 * Allow for HTML5 types 55 * Make sure that default values always stringify 56 * App find_hook now returns a list 57 582.38 2012-03-02 59 * No functional changes, just fixes for newer versions of perl that have changed the way that "is" works. 60 612.37 2012-02-09 62 * (Validate) Make match_2 work in the javascript layer (as shown in perldoc) 63 * (Validate) Add int, uint, and num types with range checking on int and uint 64 * (Validate) Allow for custom => sub { my ($k, $v) = @_; die "Always fail\n" } to pass the result of the failure via the value of die. 65 * (Validate) Allow for custom_js:function (args) { throw "Always fail ("+args.value+")" } which passes the error message of the test as the fail message 66 * (Validate) Allow for type, enum, and equals to short circuit (don't run match, compare, length, or custom checks if type fails) 67 * (App) Fix the test suite to not require installation of CGI 68 * (App) Add CGI::Ex::App::Constants module supporting constants as a source of documentation 69 * (App) Allow for access to constants via use CGI::Ex::App qw(:App); or use MyApp qw(:App); 70 712.36 2010-06-10 72 * (Auth) Make delete_cookie always delete, even for session Apps. 73 742.35 2010-05-24 75 * (Auth) More robust cookie reading and writing and deleting. 76 * Workaround CGI::Cookie->parse weird empty cookie implementation. 77 * (Auth) Allow cookie_domain to be modified more gracefully. 78 * (Auth) Consider case with multiple cookies for the same name. 79 802.34 2010-04-23 81 * (Auth) Don't attempted to decode base64 armor unless use_base64 82 832.33 2010-04-01 84 * (Auth) Allow for custom form user vs valid cookie check 85 862.32 2010-02-25 87 * (Validate) Allow for default to be an arrayref 88 892.31 2010-02-24 90 * (Auth) allow for secure flag via cookie_secure 91 * Allow validate.js to use change and blur on individual elements 92 * Allow validate.js to not strip trailing whitespace on change 93 * (Validate) Allow more items in local parts 94 * (Ex) Make sure make_form doesn't die on non-arrayref keys 95 962.27 2008-09-15 97 * (App) Fix morph history during errors or other direct morph calls 98 * (App) Allow for step=foo/bar to look for file foo/bar.html 99 * (App) Allow for step=foo/bar to use internal name of foo__bar 100 * (App) Allow for step=foo/bar to morph to package App::Foo::Bar 101 * (Validate) Added the set_all_hook and clear_all_hook in validate.js 102 * (Validate) Streamline validate 103 * (Validate) Added generate_form to Validate 104 * (App) Added hooks in App to generate_form 105 * (Validate) Allow for "error" parameter in validation that is the general error message 106 * (Auth) Allow passing filename in Auth login_header, login_form, login_script and login_footer 107 * (Auth) Allow verify_token to be easily overridable 108 * (Auth) Allow passing cookie_domain, cookie_path, cookie_no_expires (force session cookie) in Auth for much more granular control 109 * (Auth) Allow for passing user without password to verify user matches a previously set cookie 110 * (App) Remove allow_nested_morph since allow_morph is more than capable of filling this role 111 * (App) Allow step name to be "jumped" to even if not in the path 112 * (App) Make jump unmorph if in the middle of lineage, deprecates some early morph cases. 113 * (Auth) Don't blank out form user field on failure (fixed bug in Auth login_hash_common) 114 * (App) Cleanup run_hook_as 115 * (App) Allow path_info_map to have second argument be a code ref that is passed form and matches 116 * (Validate) validate.js updates to make in sync more with Validate.pm (such as fields and order are synonymous) 117 * (Validate) Make validation names prettier by default 118 1192.26 2008-07-21 120 * (App) Error handling bug again (accept refs in $@ again) 121 1222.25 2008-07-08 123 * (Validate) Fix bugs in was_valid checking of Validate 124 * (JSONDump) Quote more keys in JSONDump 125 * (App) Allow for passing a coderef instead of the step name to run_hook 126 * (App) Handle fatal errors more gracefully 127 * (App) Make morph and unmorph calls be hooks 128 * (App) Allow allow_morph to return 2 (which requires a morph) 129 * (App) Add run_hook_as functionality 130 1312.24 2008-02-26 132 * Allow for smith.name 133 * Simplify some code in App. 134 * Allow for post_navigate to get called even in case of error. 135 * Added morph_base to App 136 * Added validate_when_data hook. 137 * Added samples/app/app1 which is a path based application 138 1392.23 2007-12-20 140 * Add the onevent load option - make sure validate_if figures into dependencies 141 * Add was_valid, had_error, and was_checked validation options 142 * Add vif_disable option. 143 * Pass more information to clear/set hooks using named args 144 1452.22 2007-12-14 146 * Allow for no errors with a username of "0" 147 * Run hash_form hook before others so dump_history shows it in order of use 148 * Fix Validate error with passing in the field name 149 * Simplify and modernize validate.js 150 * Add onevent: change, blur and submit types. 151 * Add hooks and better overriding to valiate.js 152 * Cleanup Validate.pm pod 153 * Be sure Conf json read requires JSON 154 1552.21 2007-10-18 156 * Add logout_hook to Auth 157 * Remove key_payload 158 * Only accept payload from cram styles 159 * Added disable_simple_cram to enforce protecting server generated payloads 160 1612.20 2007-10-08 162 * Added success_hook and failure_hook to Auth (not documented) 163 * Fix precedence issue in conf reading in App (thanks to Krassimir Berov) 164 * Fix bug in validate.js with LOCAL_PART matching (thanks to Thomas den Braber) 165 * Add support for clear_on_error to validate.js (thanks to Thomas den Braber) 166 1672.19 2007-10-05 168 * Make verify_token more granualar in Auth 169 * Added parse_token method and/or property 170 * Added verify_password method and/or property 171 * Added verify_payload method and/or property 172 * Fix filename based conf reading in App 173 * Added check_valid_auth, handle_success, handle_failure 174 key_loggedout, bounce_on_logout to Auth. 175 1762.18 2007-07-24 177 * Merry Pioneer Day - http://en.wikipedia.org/wiki/Pioneer_Day_(Utah) 178 * Allow for check_valid_auth in App 179 * Allow for set_cookie, delete_cookie, location_bounce to be overridden in Auth 180 * Add get_valid_auth to the history 181 * Massive refactor of CGI::Ex::App 182 * Rename conf_ext to ext_conf to be similar to ext_print and ext_val 183 * Add undocumented conf_die_on_fail (which defaults to true) 184 * Fix bug in handle_error 185 * Allow empty hashrefs passed to Validate - (broken in 2.17) 186 * Add tests to help with Devel::Cover coverage. 187 1882.17 2007-06-26 189 * Add load_conf and conf* methods to App to allow for easier external configuration 190 * Add more documentation 191 * Allow print_content_type('text/html', 'utf-8') 192 * Allow App to pass mimetime and charset to print_out. 193 * Update path methods. 194 1952.16 2007-06-21 196 * Add default __error step which is called by default handle_error method. 197 * Default base_dir_abs to '.' 198 1992.15 2007-06-20 200 * Fix some warning issues with the Recipe sample in App 201 * Cleanup require_auth interface in App (you will want to 202 double check if you have overwritten require_auth in your 203 application to make sure your implementation is still compatible) 204 * Require latest Template::Alloy 205 2062.14 2007-06-12 207 * Moved CGI::Ex::Template to Template::Alloy 208 * Template::Alloy is now required as a dependency 209 * Update some portions of App POD. 210 2112.13 2007-05-21 212 * Added full support for HTML::Template and HTML::Template::Expr. 213 * Added missing HTML::Template::Expr vmethods. 214 * Added support for using Text vmethods as top level items. 215 * Added SYNTAX configuration item. 216 * Added V2EQUALS configuration item. 217 * Broke Extra and HTE out to its own area. 218 * Added many more tests. 219 * Allow QR_PRIVATE to be false. 220 221 2222.12 2007-05-11 223 * Add STAT_TTL 224 * Add NEGATIVE_STAT_TTL 225 * Add WRAPPER configuation 226 * Add ERROR and ERRORS configuration 227 * Cleanup handling of PRE_PROCESS and POST_PROCESS 228 * Add more tests for the file operations 229 * Cleanup some potential argument issues on cached USE and THROW 230 2312.11 2007-05-07 232 * Add more samples to App synopsis. 233 * Add VIEW directive support to Template. 234 * Update data storage to more easily support TT2 parsers. 235 * Add regex support in Template. 236 * Add CONFIG directive in Template. 237 * Better error reporting. 238 * Allow parser to parse all TT2 tests in TT2 test suite. 239 * Add V2PIPE configuration to provide backward support for TT2 non-inline pipes. 240 * Add vmethod url. 241 * Cleanup argument parsing to be more compatible with TT2. 242 2432.10 2007-04-27 244 * Allow for fully regex grammar based engine. 245 * Move to generic operator parse tree. All constructs are now only arrayrefs. 246 This should allow for easy porting to other languages. 247 * Allow for nested tags [% "[% 2 %]" | eval %]. 248 * Added back in references in Template - but fast and simple. 249 * Allow for regex based TAGS. 250 * Allow for "unquoted" in TAGS. 251 * Catch parsing bug in "1 - + 2" in Template. 252 * Fix minor bug in Template qw() construct. 253 * Re-added ANYCASE support. 254 * Added V1DOLLAR support. 255 * Remove GROUP support from CGI::Ex::Validate. 256 * Allow for crypted passwords to work in Auth. 257 2582.09 2007-04-05 259 * Add more documentation about file paths 260 * Allow for base_dir_abs to return a single value, or an arrayref of values, or 261 a coderef that returns a single value or arrayref. 262 * Allow CGI::Ex send_status to work on mod_perl2. 263 * Add tests to cover all virtual methods in CGI::Ex::Template. 264 * Bring all virtual methods into line with TT2.18 265 2662.08 2007-03-02 267 * Allow for digits passed to %*s patterns in format, and fmt or CGI::Ex::Template 268 * Fix bug in validate.js to allow for non-existant fields (with replace) 269 * Warn clean in Validate.pm for non-existant field (with replace) 270 * Fix bug in validate.js with trim_control_chars - was broken entirely 271 * Add no_tag_splitting flag to JSONDump 272 * Allow for more types of numbers to be quoted in JSONDump 273 * Add path_info_map_base method to CGI::Ex::App 274 * Add path_info_map hook to CGI::Ex::App 275 * Updated and added much documentation to CGI::Ex::App 276 2772.07 2007-01-30 278 * Add clear_app method which flushes items pertaining to navigation. 279 * Allow for CGI::Ex::Template PLUGIN_BASE to be a scalar OR an arrayref. 280 * Add sort keys to DUMP directive 281 * Add trim_control_chars as a validate directive 282 * Allow for . in the QR_PRIVATE of Template 283 * Add dump_parse_expr to CGI::Ex::Template 284 * Fix JSONDump to handle more number cases 285 * Fix JSONDump to output more IE friendly JS 286 * Allow fill to work only with form elements with attributes 287 2882.06 2006-07-21 289 * Allow for JSONDump to swap --> to --"+"> 290 * Fix memory issue in App with closures 291 * Remove weak_copy routine from Template (memory issue) 292 2932.05 2006-07-19 294 * Allow for CGI::Ex to be compatible with Mandrake and Fedora mod_perl 2, as well as debian mod_perl2 295 and older mod_perl1. 296 * Allow for CGI::Ex::Dump to localize the Data::Dumper options to not stomp on anybody elses toes. 297 * Update various perldoc bugs 298 * Fix JSONDump of \t and \r 299 * Change .as to .fmt to coincide with Perl6 (.as is still there - just not documented) 300 3012.04 2006-07-10 302 * Allow for items not in group order to get added to validation correctly in CGI::Ex::Validate. 303 * Add samples/index.cgi 304 * Fix samples/app/cgi_ex_* to actually work. 305 * Added CGI::Ex::JSONDump 306 * Change Validate to use JSONDump instaed of JSON 307 * Various perldoc and other bug fixes. 308 * Removed CGI-Ex.spec - use cpan2rpm or cpan2deb instead. 309 3102.03 2006-06-10 311 * Fix the associativity of operators in Template to match perl 312 * Allow for multiple prefix operators. 313 * Change name of parse_variable to parse_expr 314 * Change name of get_variable to play_expr 315 3162.02 2006-06-08 317 * Fix the yaml tests 318 * Add failed_sleep to Auth 319 * Various pod fixes 320 * Allow for conf_read and write errors to die - we really do need to have those bubble up. 321 * Fix all tests 322 * Allow for validate.js to work with existing onsubmit handlers of forms 323 * Added "as" virtual methods to Template 324 * Added Virtual Objects to Template 325 * Added self modifiers (*= etc) to Template 326 * Added increment and decrement (++ --) to Template 327 * Allow for scientific notation and hexidecimal in Template 328 * Added int, rand and random virtual methods to Template 329 3302.01 2006-05-31 331 * Added App refine_path hook. 332 * Added App destroy method. 333 * Fix CGI::Ex::Template perldoc. 334 3352.00 2006-05-30 336 * Added CGI::Ex::Template and test suites 337 * Allow for CGI::Ex::Template to be fully TT2 syntax compliant 338 * Re-implementation of CGI::Ex::Auth 339 * Allow for step to be automatically untainted during loop in CGI::Ex::App 340 * Fix base_dir_rel to work with "" as the dir in CGI::Ex::App 341 * Bug fixes in CGI::Ex::Fill 342 * Better perldoc in CGI::Ex::Fill 343 * Add named parameter function called fill in CGI::Ex::Fill 344 * DProfd CGI::Ex::Conf for improvements 345 * DProfd CGI::Ex::Validate for improvements 346 * Added conf_read and conf_write methods for Conf 347 * Cleanup of all of the test 348 * Add missing tests 349 * Add Array Prototype fixes from Eamon Daly 350 * Add examples and cleanup to CGI::Ex::App 351 * Cleanup hooks in App (add fill_args and template_args) 352 * Change run_hook syntax in App 353 * Add dump_history with more history information 354 * Integrate CGI::Ex::Auth with App 355 3561.14 2005-02-28 357 * Bug fix in validate (OR's were not working) 358 * Allow for checking for package existence without require in App 359 * Add hash_swap 360 * Add hash_base 361 * Add add_to_ methods for swap, fill, form, common, and errors 362 * Swap the run_hook order of step and hookname 363 * Allow for untaint in CGI::Ex::Validate 364 * Allow for !field in equals of CGI::Ex::Validate 365 * Allow for return of names in CGI::Ex::Validate 366 * Allow CGI::Ex to work better with CGI/mod_perl1/mod_perl2 367 * Fix required => 0 in javascript 368 3691.13 2004-12-02 370 * Show more App perldoc examples 371 * Fix some App path bugs 372 * Add more app hooks 373 * Cleanup app code 374 * Allow for Conf to write to each of the types 375 3761.12 2004-11-10 377 * Show more App perldoc examples 378 * Fix some App path bugs 379 * Change some App method names 380 * Allow for App js_validation 381 * Allow for App validation redirection 382 3831.11 2004-11-08 384 * Let file path dependent tests succeed 385 * Allow for next current and previous steps in App 386 * Couple of warn cleans in App 387 3881.10 2004-11-05 389 * Make CGI::Ex::App->print really work with Template 390 * Fix very large javascript variable swapping bug 391 * Numerous upgrades to App 392 * Fix module access in CGI::Ex 393 * Allow validate to populate what_was_validated array 394 * Allow for App to cleanup crossed references 395 3961.00 2004-04-23 397 * Added set_path method 398 * Added Auth module 399 * Fix validate.js for select-multiple 400 * Fix validate.js for max_values 401 * Add min_in_set and max_in_set types for validate 402 * Add default for validate (sets default value) 403 4040.99 2004-03-22 405 * Allow swap_template to be called with one argument 406 * Added extended examples in t/samples/cgi_ex_* 407 * Remove dependency on CGI::Util (doesn't exists on some perls) 408 * A few fixes on App 409 * Added set_form 410 * Updated tests 411 4120.98 2004-03-19 413 * Multiple fixes in Fill module 414 * Updates on perldocs (thanks to Simon Bellwood for bug reports) 415 * Addition of Dump (debug) module 416 * Addition of Die module 417 * Addition of App module 418 4190.97 2004-03-05 420 * Allow for custom_js type 421 * Fix unshift, shift, and push in ie 5.0 422 * Fix type CC in validate.js 423 * Allow for duplicate field definitions 424 4250.96 2003-11-26 426 * Fix for pos not resetting in CGI::Ex::Fill 427 * Fix for general items set in self not being passed to generate_js 428 * Workaround for yaml_load.js |- not properly trimming whitespace 429 4300.94 2003-11-26 431 * Javascript functionality is in. 432 4330.0 2003-11-01 434 * Version 0.0 checked in 435