mirror of
https://github.com/silverstripe/silverstripe-framework
synced 2024-08-28 21:46:10 +02:00
13 KiB
13 KiB
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