silverstripe-framework/docs/en/changelogs/2.4.2.md

159 lines
13 KiB
Markdown
Raw Normal View History

# 2.4.2 (2010-09-22)
* Fixed a security issue where pages in draft mode might be visible to unauthenticated users
* Fixed a security issue where users with access to admin/security (but limited privileges) can take over a known administrator account by changing its password
* Allow Apache webserver to customized error pages in HTML, rather than Apache default styling
* Testing harness improvements: More verbose testing output, fixed coverage report generation
* Fixed installer logic for SQLite database drivers
* All unit tests pass on Windows OS/SQL Server
* Over 100 other improvements and bugfixes
## Changelogs
### Features and Enhancements
* [110757] added the ability to toggle the use draft site setting
* [110467] #5977 Added optional argument to !ClassInfo::getValidSubClasses() and removed harcoded !SiteTree
* [110211] disable basic auth by default, tests run on the assumption it is disabled.
* [109104] Added -v / --verbose option to dev/tests/*, to make it output every single test name before it starts that test.
* [109101] Session::set_cookie_path() and Session::set_cookie_domain() are now possible. This is useful for sharing cookies across all subdomains, for example.
* [108942] make !RestfulService support PUT method.
* [108663] ErrorDocument in default .htaccess so Apache serves default 404 and 500 server error pages
* [108644] #3828 500 server error page is created by default on dev/build
* [108499] New Member records are populated with the currently set default through i18n::set_locale()
* [108437] Restful service returns cached response on http and curl errors
* [108428] #2856 Limiting of relative URLs for Director::forceSSL() using a map of PCRE regular expressions
* [108418] Added argument to SQLQuery->leftJoin()/innerJoin() (#5802, thanks stojg)
* [108417] Full-text search with double quotes returns too many results. ticket #5733. Thanks ktauber.
### API Changes
* [110856] Member->canEdit() returns false if the editing member has lower permissions than the edited member, for example if a member with CMS_ACCESS_!SecurityAdmin permissions tries to edit an ADMIN (fixes #5651)
* [109156] #5873 !DataObjectSet::shift() now performs a proper shift instead of unshift (wrong). Please use !DataObjectSet::unshift($item) if unshifting was intended!
* [109156] Added !DataObjectSet::pop()
* [109103] Member::set_session_regenerate_id() can now be used to disable Member::session_regenerate_id() which can break setting session cookies across all subdomains of a site
### Bugfixes
* [110944] Fixed column names that were not quoted that broke PostgreSQL
* [110914] Fixed double quotes around column names in Versioned::augmentDatabase()
* [110901] delete orphaned records from versioned tables when updating. #5936
* [110894] Protect !MemberTest from side effects caused by auth_openid and forum modules
* [110889] Respecting field specific locale settings in !DatetimeField and !DateField when validating and saving values (fixes #5931, thanks Tjofras)
* [110859] Disallow addition of members to groups with !MemberTableField->addtogroup() when the editing member doesn't have permissions on the added member
* [110858] Don't suggest members in !SecurityAdmin->autocomplete() that the current user doesn't have rights to edit (fixes #5651)
* [110857] Enforcing canEdit() checks in !ComplexTableField_Popup - making form readonly if the current user can't edit
* [110838] Case insensitive !DateField value navigation (fixes #5990, thanks gw0(
* [110835] Passing $name in !MoneyField->!FieldCurrency() (fixes #5982, thanks andersw)
* [110809] Removing "typography" class from HTMLEditorField container (should just apply to the contained <iframe>) (fixes #5949)
* [110808] Allowing $extraClass on !CheckboxField !FieldHolder (fixes #5939, thanks mobiusnz)
* [110759] ensure that pages can only be requested from staging and live
* [110463] Fixed boundary PHP notice case in !RequiredFields::php() where a field name may not be defined in the $data array when a Form is submitted
* [110439] #5811 Fixed default selection of root node when CMS first opened (no currentPage set in session)
* [110262] fix !TranslatableSearchFormText by supporting fulltext search for MSSQL and using extendedSQL function call that augments queries properly (previously it was using DB::query which does not augment). Added wait to !TranslatableSearchFormText so the test actually passes.
* [110197] MigrateSiteTreeLinkingTask now takes a direct map when querying the page tracked links instead of looping through the direct result set. This fixes SQL Server failing when MARS (Multiple Active Result Sets) is disabled
* [110165] Fixed missing "Save" action input label on !ComplexTableField popup form
* [110130] force the test to wait until indexing completes. Do not use stop words ('me')
* [109834] BasicAuthTests fail when Member's unique_identifier_field is anything except the default of Email
* [109714] disable basic auth for the restful controller test
* [109712] makeRelative would return "false" for the root path, empty string is expected - fix that
* [109712] change the check in forceSSL to work on Windows - it sets the $_SERVER['https'] to off, instead of null
* [109591] getItem didn't consider the PostgreSQL SQL syntax. Columns with Capital letters must be quoted. Added quotes to the where clause in getItem. I didn't added quotes to the baseTable because it causes PostgreSQL errors (tables can not be double quoted, just single quoted).
* [109168] $val is now cast as an int to prevent strings always returning true (YES)
* [109155] Validator::requiredField() should check the required field submitted value is an array before check strlen(). Some fields submitted as an array, e.g. !MoneyField
* [109128] Remove () that was breaking coverage report
* [109106] sort order of widgets is now fixed.
* [109102] Themed permissionFailure messages
* [109083] Group::getCMSFields() should use Tab instances with a fixed name instead of translated one, leaving the translation for the tab title instead
* [109082] SiteTree decorated canView() checks not being passed through to !SiteTree::canView()
* [109081] StringField::setNullifyEmpty() should assign the given value boolean, not evaluate whether it's true or not
* [109079] Count() call on a non-object in File::!BackLinkTrackingCount()
* [109063] Fixed File::getAbsoluteURL() absolute generation
* [109062] File::getAbsoluteURL() should return a URL, not a filesystem path
* [108887] CSVBulkLoader import method now no longer requires files to end in '.csv'. Some projects want to import files in CSV format, but not of csv file type.
* [108811] Added specific border case for array form data in !RequiredFields::php()
* [108792] Fixed validation to accept arrays (!FileField case)
* [108633] NumericField javascript does not accept negatives, make use of isNaN built-in javascript function instead of custom regex
* [108515] #5627 Clear session on logout
* [108513] EMAIL_BOUNCEHANDLER_KEY cannot be defined
* [108512] Validator/!RequiredFields should not regard "0" as an empty value
* [108509] SapphireTest::create_temp_db() should restore the SS error handler from the PHPUnit one temporarily in case there's any errors building
* [108492] Undefined variable destURL in Director::forceWWW() (regression from r107094)
* [108436] Checking for existence of $('!SwitchView') (fixes #5282)
* [108432] Database password input in installer should be password, so that the password is obfuscated when input
* [108427] Take note of output format when building Location header for !RestfulServer
* [108422] CurrencyField doesn't accept negative value (#5769, thanks simon_w)
* [108421] Fixed !ContentNegotiator to handle HTML and XHTML base tags properly when converting, regression from r108413
* [108413] #5855 SSViewer::get_base_tag() should produce a properly closed base tag for XHTML (thanks smorris!)
* [108409] #5862 JSON output of JSONDataFormatter now uses quotes for keys to be safer
* [108408] Member_!ProfileForm should fallback to english text for save button if no translation defined for current language
* [108407] #5852 Missing translation for !SecurityAdmin save button causes it to have no text, should default to english "Save"
* [108400] Undefined variable when calling !DataObject::many_many_extraFields() and relation name couldn't be found for the component
* [108399] DataObjects without the Versioned decorator cannot have a "Version" field. ticket #5775. Thanks ajshort
* [108397] Added condition to avoid error creating "!PastMember" cookie on dev/build (ticket #5780) Thanks simon_w
* [108396] Applied/edited paradigmincarnate's patch to quote plaintext email with htmlEmail (#5120)
### Minor changes
* [110847] Documentation
* [110837] Check in !TableListField->!HighlightClasses() (fixes #5993, thanks lx)
* [110836] Avoid using ASP-style tags in SSViewer comments, it confuses PHP with asp_tags=ON (fixes #5976, thanks ezero)
* [110440] Warning about install.php existing for root site tree node as well (!SiteConfig form)
* [110435] German translations for cms javascript (#5921, thanks bartlomiej)
* [110243] added missing closing tag
* [110205] Make dev/build not constantly show a changed index because of whitespace between VersionID and Version in the index spec
* [110200] Removed removeDuplicates() call on linked pages !DataObjectSet in !MigrateSiteTreeLinkingTask which is no longer required, as the duplicate results were fixed in !DataObject directly
* [110190] only call next() in iterator validation on initialisation or after reset NOT if current value is invalid
* [109788] repair installer for sqlite
* [109787] repair installer for sqlite
* [109405] neatly quote identifiers
* [109382] return a fail instead of an error
* [109334] Remove whitespace if Surname field set on Member, but not !FirstName
* [109333] Tests for Member::getName() and Member::setName()
* [109330] trim space off end of firstname if surname is not set. #5925
* [109274] CSSContentParser::__construct() now gives a better error if the content could not be parsed. This will mostly happen if tidy isn't present.
* [109165] phpDoc updates for SS_!LogFileWriter and SS_!LogEmailWriter
* [109156] Unit tests for !DataObjectSet::shift(), !DataObjectSet::unshift() and !DataObjectSet::pop()
* [109152] Doc update for Director::forceSSL()
* [109127] Applied patch from walec51 for <% control %> on empty set (#5579) Also added unit tests by ischommer
* [109105] Fix links etc, and remove www. from SS urls
* [109100] Clear out the test database in between each salad scenario.
* [109066] Added tests for File::getURL() and File::getAbsoluteURL()
* [108961] remove SQL table alias keyword AS
* [108666] Fixed tests not working on the web side as redirection to https would occur
* [108665] Fixed !DirectorTest to restore it's REQUEST_URI state to the original one after each test method is run
* [108640] allow $icon to be overridden on !ErrorPages. PATCH via martljn (#5875).
* [108571] Changed unknown web server text
* [108570] Allow checking for a specific IIS version (parameter to !InstallRequirements::isIIS())
* [108569] Removed double up of similar logic in !InstallRequirements
* [108568] Simplified discovery of webserver during install
* [108561] Removed unncessary isset() check
* [108559] Add some documentation to !LeftAndMain_right.js
* [108546] Removed command line functionality from installer which is no longer used
* [108518] Fixed failing test as session being set before logging out and losing BackURL
* [108500] Fixed failing tests because of locale not being set to the default in !SapphireTest::setUp()
* [108442] Translations in CMSMain_left.ss
* [108441] Making "todo" tab title translatable
* [108435] Fixed Director::forceSSL() breaking unit tests because headers were already sent
* [108434] Reverted r108433
* [108433] DirectorTest should not extend from !FunctionalTest (regression from r108428)
* [108376] Add trailing slash to image tag (thanks to mattclegg)
* [108375] Cross-referencing some documentation
### Other
* [110241] #5870 Block web requests to silverstripe-cache directory via htaccess !RedirectMatch rule or web.config hiddenSegments functionality if using IIS 7.x
* [109177] Revert "MINOR: Applied patch from walec51 for <% control %> on empty set (#5579) Also added unit tests by ischommer"
* [109177] This was not supposed to be pushed out yet.
* [109177]
* [109177] This reverts commit 9c2aafa414948314236674e31fd756797d695139.
* [109163] Revert "BUGFIX: sort order of widgets is now fixed."
* [109163]
* [109163] This reverts commit 1e7781ba2b8ac30333a20d9a1b0bcb9b4ba5b0b0.
* [109099] Added dev/tests/emptydb to clear out test session databases.
* [108417] Using htmlentities($keywords,ENT_NOQUOTES) instead of proposed solution