1ChangeLog 2========= 3 43.2.2 (2017-02-14) 5------------------ 6 7* #943: Fix CardDAV XML reporting bug, which was affecting several CardDAV 8 clients. Bug was introduced in 3.2.1. 9* The zip release ships with [sabre/vobject 4.1.2][vobj], 10 [sabre/http 4.2.2][http], [sabre/event 3.0.0][evnt], 11 [sabre/uri 1.2.0][uri] and [sabre/xml 1.5.0][xml]. 12 13 143.2.1 (2017-01-28) 15------------------ 16 17* #877: Fix for syncing large calendars when using the Sqlite PDO backend. 18 (@theseer). 19* #889 Added support for filtering vCard properties in the addressbook-query 20 REPORT (@DeepDiver1975). 21* The zip release ships with [sabre/vobject 4.1.2][vobj], 22 [sabre/http 4.2.2][http], [sabre/event 3.0.0][evnt], 23 [sabre/uri 1.2.0][uri] and [sabre/xml 1.5.0][xml]. 24 25 263.2.0 (2016-06-27) 27------------------ 28 29* The default ACL rules allow an unauthenticated user to read information 30 about nodes that don't have their own ACL defined. This was a security 31 problem. 32* The zip release ships with [sabre/vobject 4.1.0][vobj], 33 [sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt], 34 [sabre/uri 1.1.0][uri] and [sabre/xml 1.4.2][xml]. 35 36 373.2.0-beta1 (2016-05-20) 38------------------------ 39 40* #833: Calendars throw exceptions when the sharing plugin is not enabled. 41* #834: Return vCards exactly as they were stored if we don't need to convert 42 in between versions. 43* The zip release ships with [sabre/vobject 4.1.0][vobj], 44 [sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt], 45 [sabre/uri 1.1.0][uri] and [sabre/xml 1.4.1][xml]. 46 47 483.2.0-alpha1 (2016-05-09) 49------------------------- 50 51* Database changes for CalDAV. If you are using the CalDAV PDO backends, you 52 must migrate. Run `./bin/migrateto32.php` for more info. 53* Support for WebDAV Resource Sharing, an upcoming standard. 54* Added support for sharing in the CalDAV PDO backend! Users can now invite 55 others to their calendar and give them read/read-write access! 56* #397: Support for PSR-3. You can now log exceptions with your favourite 57 psr3-compatible logging tool. 58* #825: Actual proper, tested support for PostgreSQL. We require version 9.5. 59* Removed database migration script for sabre/dav 1.7. To update from that 60 version you now first need to update to sabre/dav 3.1. 61* Removed deprecated function: `Sabre\DAV\Auth\Plugin::getCurrentUser()`. 62* #774: Fixes for getting free disk space on Windows. 63* #803: Major changes in the sharing API. If you were using an old sabre/dav 64 sharing api, head to the website for more detailed migration notes. 65* #657: Support for optional auth using `{DAV:}unauthorized` and `{DAV:}all` 66 privileges. This allows you to assign a privilege to a resource, allowing 67 non-authenticated users to access it. For instance, this could allow you 68 to create a public read-only collection. 69* #812 #814: ICS/VCF exporter now includes a more useful filename in its 70 `Content-Disposition` header. (@Xenopathic). 71* #801: BC break: If you were using the `Href` object before, it's behavior 72 now changed a bit, and `LocalHref` was added to replace the old, default 73 behavior of `Href`. See the migration doc for more info. 74* Removed `Sabre\DAVACL\Plugin::$allowAccessToNodesWithoutACL` setting. 75 Instead, you can provide a set of default ACL rules with 76 `Sabre\DAVACL\Plugin::setDefaultAcl()`. 77* Introduced `Sabre\DAVACL\ACLTrait` which contains a default implementation 78 of `Sabre\DAV\IACL` with some sane defaults. We're using this trait all over 79 the place now, reducing the amount of boilerplate. 80* Plugins can now control the "Supported Privilege Set". 81* Added Sharing, ICSExport and VCFExport plugins to `groupwareserver.php` 82 example. 83* The `{DAV:}all` privilege is now no longer abstract, so it can be assigned 84 directly. We're using the `{DAV:}all` privilege now in a lot of cases where 85 we before assigned both `{DAV:}read` and `{DAV:}write`. 86* Resources that are not collections no longer support the `{DAV:}bind` and 87 `{DAV:}unbind` privileges. 88* Corrected the CalDAV-scheduling related privileges. 89* Doing an `UNLOCK` no longer requires the `{DAV:}write-content` privilege. 90* Added a new `getPrincipalByUri` plugin event. Allowing plugins to request 91 quickly where a principal lives on a server. 92* Renamed `phpunit.xml` to `phpunit.xml.dist` to make local modifications easy. 93* Functionality from `IShareableCalendar` is merged into `ISharedCalendar`. 94* #751: Fixed XML responses from failing `MKCOL` requests. 95* #600: Support for `principal-match` ACL `REPORT`. 96* #599: Support for `acl-principal-prop-set` ACL `REPORT`. 97* #798: Added an index on `firstoccurence` field in MySQL CalDAV backend. This 98 should speed up common calendar-query requests. 99* #759: DAV\Client is now able to actually correctly resolve relative urls. 100* #671: We are no longer checking the `read-free-busy` privilege on individual 101 calendars during freebusy operations in the scheduling plugin. Instead, we 102 check the `schedule-query-freebusy` privilege on the target users' inbox, 103 which validates access for the entire account, per the spec. 104* The zip release ships with [sabre/vobject 4.1.0][vobj], 105 [sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt], 106 [sabre/uri 1.1.0][uri] and [sabre/xml 1.4.1][xml]. 107 108 1093.1.5 (????-??-??) 110------------------ 111 112* Fixed: Creating a new calendar on some MySQL configurations caused an error. 113* #889 Added support for filtering vCard properties in the addressbook-query 114 REPORT (@DeepDiver1975). 115 116 117 1183.1.4 (2016-05-28) 119------------------ 120 121* #834: Backport from `master`: Return vCards exactly as they were stored if 122 we don't need to convert in between versions. This should speed up many 123 large addressbook syncs sometimes up to 50%. 124* The zip release ships with [sabre/vobject 4.1.0][vobj], 125 [sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt], 126 [sabre/uri 1.1.0][uri] and [sabre/xml 1.4.2][xml]. 127 128 1293.1.3 (2016-04-06) 130------------------ 131 132* Set minimum libxml version to 2.7.0 in `composer.json`. 133* #805: It wasn't possible to create calendars that hold events, journals and 134 todos using MySQL, because the `components` column was 1 byte too small. 135* The zip release ships with [sabre/vobject 4.1.0][vobj], 136 [sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt], 137 [sabre/uri 1.1.0][uri] and [sabre/xml 1.4.1][xml]. 138 139 1403.1.2 (2016-03-12) 141------------------ 142 143* #784: Sync logs for address books were not correctly cleaned up after 144 deleting them. 145* #787: Cannot use non-seekable stream-wrappers with range requests. 146* Faster XML parsing and generating due to sabre/xml update. 147* #793: The Sqlite schema is now more strict and more similar to the MySQL 148 schema. This solves a problem within Baikal. 149* The zip release ships with [sabre/vobject 4.0.3][vobj], 150 [sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt], 151 [sabre/uri 1.1.0][uri] and [sabre/xml 1.4.1][xml]. 152 153 1543.1.1 (2016-01-25) 155------------------ 156 157* #755: The brower plugin and some operations would break when scheduling and 158 delegation would both be enabled. 159* #757: A bunch of unittest improvements (@jakobsack). 160* The zip release ships with [sabre/vobject 4.0.2][vobj], 161 [sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt], 162 [sabre/uri 1.0.1][uri] and [sabre/xml 1.3.0][xml]. 163 164 1653.1.0 (2016-01-06) 166------------------ 167 168* Better error message when the browser plugin is not enabled. 169* Added a super minimal server example. 170* #730: Switched all mysql tables to `utf8mb4` character set, allowing you to 171 use emoji in some tables where you couldn't before. 172* #710: Provide an Auth backend that acts as a helper for people implementing 173 OAuth2 Bearer token. (@fkooman). 174* #729: Not all calls to `Sabre\DAV\Tree::getChildren()` were properly cached. 175* #727: Added another workaround to make CalDAV work for Windows 10 clients. 176* #742: Fixes to make sure that vobject 4 is correctly supported. 177* #726: Better error reporting in `Client::propPatch`. We're now throwing 178 exceptions. 179* #608: When a HTTP error is triggered during `Client:propFind`, we're now 180 throwing `Sabre\HTTP\ClientHttpException` instead of `Sabre\DAV\Exception`. 181 This new exception contains a LOT more information about the problem. 182* #721: Events are now handled in the correct order for `COPY` requests. 183 Before this subtle bugs could appear that could cause data-loss. 184* #747: Now throwing exceptions and setting the HTTP status to 500 in subtle 185 cases where no other plugin set a correct HTTP status. 186* #686: Corrected PDO principal backend's findByURI for email addresses that 187 don't match the exact capitalization. 188* #512: The client now has it's own `User-Agent`. 189* #720: Some browser improvements. 190* The zip release ships with [sabre/vobject 4.0.1][vobj], 191 [sabre/http 4.2.1][http], [sabre/event 3.0.0][evnt], 192 [sabre/uri 1.0.1][uri] and [sabre/xml 1.3.0][xml]. 193 194 1953.1.0-alpha2 (2015-09-05) 196------------------------- 197 198* Massive calendars and addressbooks should see a big drop in peak memory 199 usage. 200* Fixed a privilege bug in the availability system. 201* #697: Added a "tableName" member to the PropertyStorage PDO backend. (@Frzk). 202* #699: PostgreSQL fix for the Locks PDO backend. (@TCKnet) 203* Removed the `simplefsserver.php` example file. It's not simple enough. 204* #703: PropPatch in client is not correctly encoded. 205* #709: Throw exception when running into empty 206 `supported-calendar-component-set`. 207* #711: Don't trigger deserializers for empty elements in `{DAV:}prop`. This 208 fixes issues when using sabre/dav as a client. 209* The zip release ships with [sabre/vobject 4.0.0-alpha2][vobj], 210 [sabre/http 4.1.0][http], [sabre/event 2.0.2][evnt], 211 [sabre/uri 1.0.1][uri] and [sabre/xml 1.2.0][xml]. 212 213 2143.1.0-alpha1 (2015-07-19) 215------------------------- 216 217* Now requires PHP 5.5 218* Upgraded to vobject 4, which is a lot faster. 219* Support for PHP 7. 220* #690: Support for `calendar-availability`, draft 05. 221 [reference][calendar-availability]. 222* #691: Workaround for broken Windows Phone client. 223* The zip release ships with [sabre/vobject 4.0.0-alpha1][vobj], 224 [sabre/http 4.0.0][http], [sabre/event 2.0.2][evnt], 225 [sabre/uri 1.0.1][uri] and [sabre/xml 1.1.0][xml]. 226 227 2283.0.10 (2016-??-??) 229------------------ 230 231* #889 Added support for filtering vCard properties in the addressbook-query 232 REPORT (@DeepDiver1975). 233 234 2353.0.9 (2016-04-06) 236------------------ 237 238* Set minimum libxml version to 2.7.0 in `composer.json`. 239* #727: Added another workaround to make CalDAV work for Windows 10 clients. 240* #805: It wasn't possible to create calendars that hold events, journals and 241 todos using MySQL, because the `components` column was 1 byte too small. 242* The zip release ships with [sabre/vobject 3.5.1][vobj], 243 [sabre/http 4.2.1][http], [sabre/event 2.0.2][evnt], 244 [sabre/uri 1.1.0][uri] and [sabre/xml 1.4.1][xml]. 245 246 2473.0.8 (2016-03-12) 248------------------ 249 250* #784: Sync logs for address books were not correctly cleaned up after 251 deleting them. 252* #787: Cannot use non-seekable stream-wrappers with range requests. 253* Faster XML parsing and generating due to sabre/xml update. 254* The zip release ships with [sabre/vobject 3.5.0][vobj], 255 [sabre/http 4.2.1][http], [sabre/event 2.0.2][evnt], 256 [sabre/uri 1.1.0][uri] and [sabre/xml 1.4.1][xml]. 257 258 2593.0.7 (2016-01-12) 260------------------ 261 262* #752: PHP 7 support for 3.0 branch. (@DeepDiver1975) 263* The zip release ships with [sabre/vobject 3.5.0][vobj], 264 [sabre/http 4.2.1][http], [sabre/event 2.0.2][evnt], 265 [sabre/uri 1.0.1][uri] and [sabre/xml 1.3.0][xml]. 266 267 2683.0.6 (2016-01-04) 269------------------ 270 271* #730: Switched all mysql tables to `utf8mb4` character set, allowing you to 272 use emoji in some tables where you couldn't before. 273* #729: Not all calls to `Sabre\DAV\Tree::getChildren()` were properly cached. 274* #734: Return `418 I'm a Teapot` when generating a multistatus response that 275 has resources with no returned properties. 276* #740: Bugs in `migrate20.php` script. 277* The zip release ships with [sabre/vobject 3.4.8][vobj], 278 [sabre/http 4.1.0][http], [sabre/event 2.0.2][evnt], 279 [sabre/uri 1.0.1][uri] and [sabre/xml 1.3.0][xml]. 280 281 2823.0.5 (2015-09-15) 283------------------ 284 285* #704: Fixed broken uri encoding in multistatus responses. This affected 286 at least CyberDuck, but probably also others. 287* The zip release ships with [sabre/vobject 3.4.7][vobj], 288* The zip release ships with [sabre/vobject 3.4.7][vobj], 289 [sabre/http 4.1.0][http], [sabre/event 2.0.2][evnt], 290 [sabre/uri 1.0.1][uri] and [sabre/xml 1.2.0][xml]. 291 292 2933.0.4 (2015-09-06) 294------------------ 295 296* #703: PropPatch in client is not correctly encoded. 297* #709: Throw exception when running into empty 298 `supported-calendar-component-set`. 299* #711: Don't trigger deserializers for empty elements in `{DAV:}prop`. This 300 fixes issues when using sabre/dav as a client. 301* #705: A `MOVE` request that gets prevented from deleting the source resource 302 will still remove the target resource. Now all events are triggered before 303 any destructive operations. 304* The zip release ships with [sabre/vobject 3.4.7][vobj], 305 [sabre/http 4.1.0][http], [sabre/event 2.0.2][evnt], 306 [sabre/uri 1.0.1][uri] and [sabre/xml 1.2.0][xml]. 307 308 3093.0.3 (2015-08-06) 310------------------ 311 312* #700: Digest Auth fails on `HEAD` requests. 313* Fixed example files to no longer use now-deprecated realm argument. 314* The zip release ships with [sabre/vobject 3.4.6][vobj], 315 [sabre/http 4.0.0][http], [sabre/event 2.0.2][evnt], 316 [sabre/uri 1.0.1][uri] and [sabre/xml 1.1.0][xml]. 317 318 3193.0.2 (2015-07-21) 320------------------ 321 322* #657: Migration script would break when coming a cross an iCalendar object 323 with no UID. 324* #691: Workaround for broken Windows Phone client. 325* Fixed a whole bunch of incorrect php docblocks. 326* The zip release ships with [sabre/vobject 3.4.5][vobj], 327 [sabre/http 4.0.0][http], [sabre/event 2.0.2][evnt], 328 [sabre/uri 1.0.1][uri] and [sabre/xml 1.1.0][xml]. 329 330 3313.0.1 (2015-07-02) 332------------------ 333 334* #674: Postgres sql file fixes. (@davesouthey) 335* #677: Resources with the name '0' would not get retrieved when using 336 `Depth: infinity` in a `PROPFIND` request. 337* #680: Fix 'autoprefixing' of dead `{DAV:}href` properties. 338* #675: NTLM support in DAV\Client. (@k42b3) 339* The zip release ships with [sabre/vobject 3.4.5][vobj], 340 [sabre/http 4.0.0][http], [sabre/event 2.0.2][evnt], 341 [sabre/uri 1.0.1][uri] and [sabre/xml 1.1.0][xml]. 342 343 3443.0.0 (2015-06-02) 345------------------ 346 347* No changes since last beta. 348* The zip release ships with [sabre/vobject 3.4.5][vobj], 349 [sabre/http 4.0.0][http], [sabre/event 2.0.2][evnt], 350 [sabre/uri 1.0.1][uri] and [sabre/xml 1.0.0][xml]. 351 352 3533.0.0-beta3 (2015-05-29) 354------------------------ 355 356* Fixed deserializing href properties with no value. 357* Fixed deserializing `{DAV:}propstat` without a `{DAV:}prop`. 358* #668: More information about vcf-export-plugin in browser plugin. 359* #669: Add export button to browser plugin for address books. (@mgee) 360* #670: multiget report hrefs were not decoded. 361* The zip release ships with [sabre/vobject 3.4.4][vobj], 362 [sabre/http 4.0.0][http], [sabre/event 2.0.2][evnt], 363 [sabre/uri 1.0.1][uri] and [sabre/xml 1.0.0][xml]. 364 365 3663.0.0-beta2 (2015-05-27) 367------------------------ 368 369* A node's properties should not overwrite properties that were already set. 370* Some uris were not correctly encoded in notifications. 371* The zip release ships with [sabre/vobject 3.4.4][vobj], 372 [sabre/http 4.0.0][http], [sabre/event 2.0.2][evnt], 373 [sabre/uri 1.0.1][uri] and [sabre/xml 1.0.0][xml]. 374 375 3763.0.0-beta1 (2015-05-25) 377------------------------ 378 379* `migrate22.php` is now called `migrate30.php`. 380* Using php-cs-fixer for automated coding standards enforcement and fixing. 381* #660: principals could break html output. 382* #662: Fixed several bugs in the `share` request parser. 383* #665: Fix a bug in serialization of complex properties in the proppatch 384 request in the client. 385* #666: expand-property report did not correctly prepend the base uri when 386 generating uris, this caused delegation to break. 387* #659: Don't throw errors when when etag-related checks are done on 388 collections. 389* Fully supporting the updated `Prefer` header syntax, as defined in 390 [rfc7240][rfc7240]. 391* The zip release ships with [sabre/vobject 3.4.3][vobj], 392 [sabre/http 4.0.0][http], [sabre/event 2.0.2][evnt], 393 [sabre/uri 1.0.1][uri] and [sabre/xml 1.0.0][xml]. 394 395 3963.0.0-alpha1 (2015-05-19) 397------------------------- 398 399* It's now possible to get all property information from files using the 400 browser plugin. 401* Browser plugin will now show a 'calendar export' button when the 402 ics-export plugin is enabled. 403* Some nodes that by default showed the current time as their last 404 modification time, now no longer has a last modification time. 405* CardDAV namespace was missing from default namespaceMap. 406* #646: Properties can now control their own HTML output in the browser plugin. 407* #646: Nicer HTML output for the `{DAV:}acl` property. 408* Browser plugin no longer shows a few properties that take up a lot of space, 409 but are likely not really interesting for most users. 410* #654: Added a collection, `Sabre\DAVACL\FS\HomeCollection` for automatically 411 creating a private home collection per-user. 412* Changed all MySQL columns from `VARCHAR` to `VARBINARY` where possible. 413* Improved older migration scripts a bit to allow easier testing. 414* The zip release ships with [sabre/vobject 3.4.3][vobj], 415 [sabre/http 4.0.0-alpha3][http], [sabre/event 2.0.2][evnt], 416 [sabre/uri 1.0.1][uri] and [sabre/xml 0.4.3][xml]. 417 418 4192.2.0-alpha4 (2015-04-13) 420------------------------- 421 422* Complete rewrite of the XML system. We now use our own [sabre/xml][xml], 423 which has a much smarter XML Reader and Writer. 424* BC Break: It's no longer possible to instantiate the Locks plugin without 425 a locks backend. I'm not sure why this ever made sense. 426* Simplified the Locking system and fixed a bug related to if tokens checking 427 locks unrelated to the current request. 428* `FSExt` Directory and File no longer do custom property storage. This 429 functionality is already covered pretty well by the `PropertyStorage` plugin, 430 so please switch. 431* Renamed `Sabre\CardDAV\UserAddressBooks` to `Sabre\CardDAV\AddressBookHome` 432 to be more consistent with `CalendarHome` as well as the CardDAV 433 specification. 434* `Sabre\DAV\IExtendedCollection` now receives a `Sabre\DAV\MkCol` object as 435 its second argument, and no longer receives seperate properties and 436 resourcetype arguments. 437* `MKCOL` now integrates better with propertystorage plugins. 438* #623: Remove need of temporary files when working with Range requests. 439 (@dratini0) 440* The zip release ships with [sabre/vobject 3.4.2][vobj], 441 [sabre/http 4.0.0-alpha1][http], [sabre/event 2.0.1][evnt], 442 [sabre/uri 1.0.0][uri] and [sabre/xml 0.4.3][xml]. 443 444 4452.2.0-alpha3 (2015-02-25) 446------------------------- 447 448* Contains all the changes introduced between 2.1.2 and 2.1.3. 449* The zip release ships with [sabre/vobject 3.4.2][vobj], 450 [sabre/http 4.0.0-alpha1][http], [sabre/event 2.0.1][evnt] and 451 [sabre/uri 1.0.0][uri]. 452 453 4542.2.0-alpha2 (2015-01-09) 455------------------------- 456 457* Renamed `Sabre\DAV\Auth\Backend\BackendInterface::requireAuth` to 458 `challenge`, which is a more correct and better sounding name. 459* The zip release ships with [sabre/vobject 3.3.5][vobj], 460 [sabre/http 3.0.4][http], [sabre/event 2.0.1][evnt]. 461 462 4632.2.0-alpha1 (2014-12-10) 464------------------------- 465 466* The browser plugin now has a new page with information about your sabredav 467 server, and shows information about every plugin that's loaded in the 468 system. 469* #191: The Authentication system can now support multiple authentication 470 backends. 471* Removed: all `$tableName` arguments from every PDO backend. This was already 472 deprecated, but has now been fully removed. All of these have been replaced 473 with public properties. 474* Deleted several classes that were already deprecated much earlier: 475 * `Sabre\CalDAV\CalendarRootNode` 476 * `Sabre\CalDAV\UserCalendars` 477 * `Sabre\DAV\Exception\FileNotFound` 478 * `Sabre\DAV\Locks\Backend\FS` 479 * `Sabre\DAV\PartialUpdate\IFile` 480 * `Sabre\DAV\URLUtil` 481* Removed: `Sabre\DAV\Client::addTrustedCertificates` and 482 `Sabre\DAV\Client::setVerifyPeer`. 483* Removed: `Sabre\DAV\Plugin::getPlugin()` can now no longer return plugins 484 based on its class name. 485* Removed: `Sabre\DAVACL\Plugin::getPrincipalByEmail()`. 486* #560: GuessContentType plugin will now set content-type to 487 `application/octet-stream` if a better content-type could not be determined. 488* #568: Added a `componentType` argument to `ICSExportPlugin`, allowing you to 489 specifically fetch `VEVENT`, `VTODO` or `VJOURNAL`. 490* #582: Authentication backend interface changed to be stateless. If you 491 implemented your own authentication backend, make sure you upgrade your class 492 to the latest API! 493* #582: `Sabre\DAV\Auth\Plugin::getCurrentUser()` is now deprecated. Use 494 `Sabre\DAV\Auth\Plugin::getCurrentPrincipal()` instead. 495* #193: Fix `Sabre\DAV\FSExt\Directory::getQuotaInfo()` on windows. 496 497 4982.1.11 (2016-10-06) 499------------------- 500 501* #805: It wasn't possible to create calendars that hold events, journals and 502 todos using MySQL, because the `components` column was 1 byte too small. 503* The zip release ships with [sabre/vobject 3.5.3][vobj], 504 [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 505 506 5072.1.10 (2016-03-10) 508------------------- 509 510* #784: Sync logs for address books were not correctly cleaned up after 511 deleting them. 512* The zip release ships with [sabre/vobject 3.5.0][vobj], 513 [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 514 515 5162.1.9 (2016-01-25) 517------------------ 518 519* #674: PHP7 support (@DeepDiver1975). 520* The zip release ships with [sabre/vobject 3.5.0][vobj], 521 [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 522 523 5242.1.8 (2016-01-04) 525------------------ 526 527* #729: Fixed a caching problem in the Tree object. 528* #740: Bugs in `migrate20.php` script. 529* The zip release ships with [sabre/vobject 3.4.8][vobj], 530 [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 531 532 5332.1.7 (2015-09-05) 534------------------ 535 536* #705: A `MOVE` request that gets prevented from deleting the source resource 537 will still remove the target resource. Now all events are triggered before 538 any destructive operations. 539* The zip release ships with [sabre/vobject 3.4.7][vobj], 540 [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 541 542 5432.1.6 (2015-07-21) 544------------------ 545 546* #657: Migration script would break when coming a cross an iCalendar object 547 with no UID. 548* #691: Workaround for broken Windows Phone client. 549* The zip release ships with [sabre/vobject 3.4.5][vobj], 550 [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 551 552 5532.1.5 (2015-07-11) 554------------------ 555 556* #677: Resources with the name '0' would not get retrieved when using 557 `Depth: infinity` in a `PROPFIND` request. 558* The zip release ships with [sabre/vobject 3.4.5][vobj], 559 [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 560 561 5622.1.4 (2015-05-25) 563------------------ 564 565* #651: Double-encoded path in the browser plugin. Should fix a few broken 566 links in some setups. 567* #650: Correctly cleaning up change info after deleting calendars (@ErrOrnAmE). 568* #658: Updating `schedule-calendar-default-URL` does not work well, so we're 569 disabling it until there's a better fix. 570* The zip release ships with [sabre/vobject 3.4.3][vobj], 571 [sabre/http 3.0.5][http], and [sabre/event 2.0.2][evnt]. 572 573 5742.1.3 (2015-02-25) 575------------------ 576 577* #586: `SCHEDULE-STATUS` should not contain a reason-phrase. 578* #539: Fixed a bug related to scheduling in shared calendars. 579* #595: Support for calendar-timezone in iCalendar exports. 580* #581: findByUri would send empty prefixes to the principal backend (@soydeedo) 581* #611: Escaping a bit more HTML output in the browser plugin. (@LukasReschke) 582* #610: Don't allow discovery of arbitrary files using `..` in the browser 583 plugin (@LukasReschke). 584* Browser plugin now shows quota properties. 585* #612: PropertyStorage didn't delete properties from nodes when a node's 586 parents get deleted. 587* #581: Fixed problems related to finding attendee information during 588 scheduling. 589* The zip release ships with [sabre/vobject 3.4.2][vobj], 590 [sabre/http 3.0.4][http], and [sabre/event 2.0.1][evnt]. 591 592 5932.1.2 (2014-12-10) 594------------------ 595 596* #566: Another issue related to the migration script, which would cause 597 scheduling to not work well for events that were already added before the 598 migration. 599* #567: Doing freebusy requests on accounts that had 0 calendars would throw 600 a `E_NOTICE`. 601* #572: `HEAD` requests trigger a PHP warning. 602* #579: Browser plugin can throw exception for a few resourcetypes that didn't 603 have an icon defined. 604* The zip release ships with [sabre/vobject 3.3.4][vobj], 605 [sabre/http 3.0.4][http], and [sabre/event 2.0.1][evnt]. 606 607 6082.1.1 (2014-11-22) 609------------------ 610 611* #561: IMip Plugin didn't strip mailto: from email addresses. 612* #566: Migration process had 2 problems related to adding the `uid` field 613 to the `calendarobjects` table. 614* The zip release ships with [sabre/vobject 3.3.4][vobj], 615 [sabre/http 3.0.2][http], and [sabre/event 2.0.1][evnt]. 616 617 6182.1.0 (2014-11-19) 619------------------ 620 621* #541: CalDAV PDO backend didn't respect overridden PDO table names. 622* #550: Scheduling invites are no longer delivered into shared calendars. 623* #554: `calendar-multiget` `REPORT` did not work on inbox items. 624* #555: The `calendar-timezone` property is now respected for floating times 625 and all-day events in the `calendar-query`, `calendar-multiget` and 626 `free-busy-query` REPORTs. 627* #555: The `calendar-timezone` property is also respected for scheduling 628 free-busy requests. 629* #547: CalDAV system too aggressively 'corrects' incoming iCalendar data, and 630 as a result doesn't return an etag for common cases. 631* The zip release ships with [sabre/vobject 3.3.4][vobj], 632 [sabre/http 3.0.2][http], and [sabre/event 2.0.1][evnt]. 633 634 6352.1.0-alpha2 (2014-10-23) 636------------------------- 637 638* Added: calendar-user-address-set to default principal search properties 639 list. This should fix iOS attendee autocomplete support. 640* Changed: Moved all 'notifications' functionality from `Sabre\CalDAV\Plugin` 641 to a new plugin: `Sabre\CalDAV\Notifications\Plugin`. If you want to use 642 notifications-related functionality, just add this plugin. 643* Changed: Accessing the caldav inbox, outbox or notification collection no 644 longer triggers getCalendarsForUser() on backends. 645* #533: New invites are no longer delivered to taks-only calendars. 646* #538: Added `calendarObjectChange` event. 647* Scheduling speedups. 648* #539: added `afterResponse` event. (@joserobleda) 649* Deprecated: All the "tableName" constructor arguments for all the PDO 650 backends are now deprecated. They still work, but will be removed in the 651 next major sabredav version. Every argument that is now deprecated can now 652 be accessed as a public property on the respective backends. 653* #529: Added getCalendarObjectByUID to PDO backend, speeding up scheduling 654 operations on large calendars. 655* The zip release ships with [sabre/vobject 3.3.3][vobj], 656 [sabre/http 3.0.2][http], and [sabre/event 2.0.1][evnt]. 657 658 6592.1.0-alpha1 (2014-09-23) 660------------------------- 661 662* Added: Support for [rfc6638][rfc6638], also known as CalDAV Scheduling. 663* Added: Automatically converting between vCard 3, 4 and jCard using the 664 `Accept:` header, in CardDAV reports, and automatically converting from 665 jCard to vCard upon `PUT`. It's important to note that your backends _may_ 666 now receive both vCard 3.0 and 4.0. 667* Added: #444. Collections can now opt-in to support high-speed `MOVE`. 668* Changed: PropertyStorage backends now have a `move` method. 669* Added: `beforeMove`, and `afterMove` events. 670* Changed: A few database changes for the CalDAV PDO backend. Make sure you 671 run `bin/migrate21.php` to upgrade your database schema. 672* Changed: CalDAV backends have a new method: `getCalendarObjectByUID`. This 673 method MUST be implemented by all backends, but the `AbstractBackend` has a 674 simple default implementation for this. 675* Changed: `Sabre\CalDAV\UserCalendars` has been renamed to 676 `Sabre\CalDAV\CalendarHome`. 677* Changed: `Sabre\CalDAV\CalendarRootNode` has been renamed to 678 `Sabre\CalDAV\CalendarRoot`. 679* Changed: The IMipHandler has been completely removed. With CalDAV scheduling 680 support, it is no longer needed. It's functionality has been replaced by 681 `Sabre\CalDAV\Schedule\IMipPlugin`, which can now send emails for clients 682 other than iCal. 683* Removed: `Sabre\DAV\ObjectTree` and `Sabre\DAV\Tree\FileSystem`. All this 684 functionality has been merged into `Sabre\DAV\Tree`. 685* Changed: PrincipalBackend now has a findByUri method. 686* Changed: `PrincipalBackend::searchPrincipals` has a new optional `test` 687 argument. 688* Added: Support for the `{http://calendarserver.org/ns/}email-address-set` 689 property. 690* #460: PropertyStorage must move properties during `MOVE` requests. 691* Changed: Restructured the zip distribution to be a little bit more lean 692 and consistent. 693* #524: Full support for the `test="anyof"` attribute in principal-search 694 `REPORT`. 695* #472: Always returning lock tokens in the lockdiscovery property. 696* Directory entries in the Browser plugin are sorted by type and name. 697 (@aklomp) 698* #486: It's now possible to return additional properties when an 'allprop' 699 PROPFIND request is being done. (@aklomp) 700* Changed: Now return HTTP errors when an addressbook-query REPORT is done 701 on a uri that's not a vcard. This should help with debugging this common 702 mistake. 703* Changed: `PUT` requests with a `Content-Range` header now emit a 400 status 704 instead of 501, as per RFC7231. 705* Added: Browser plugin can now display the contents of the 706 `{DAV:}supported-privilege-set` property. 707* Added: Now reporting `CALDAV:max-resource-size`, but we're not actively 708 restricting it yet. 709* Changed: CalDAV plugin is now responsible for reporting 710 `CALDAV:supported-collation-set` and `CALDAV:supported-calendar-data` 711 properties. 712* Added: Now reporting `CARDDAV:max-resource-size`, but we're not actively 713 restricting it yet. 714* Added: Support for `CARDDAV:supported-collation-set`. 715* Changed: CardDAV plugin is now responsible for reporting 716 `CARDDAV:supported-address-data`. This functionality has been removed from 717 the CardDAV PDO backend. 718* When a REPORT is not supported, we now emit HTTP error 415, instead of 403. 719* #348: `HEAD` requests now work wherever `GET` also works. 720* Changed: Lower priority for the iMip plugins `schedule` event listener. 721* Added: #523 Custom CalDAV backends can now mark any calendar as read-only. 722* The zip release ships with [sabre/vobject 3.3.3][vobj], 723 [sabre/http 3.0.0][http], and [sabre/event 2.0.0][evnt]. 724 725 7262.0.9 (2015-09-04) 727------------------ 728 729* #705: A `MOVE` request that gets prevented from deleting the source resource 730 will still remove the target resource. Now all events are triggered before 731 any destructive operations. 732* The zip release ships with [sabre/vobject 3.4.6][vobj], 733 [sabre/http 2.0.4][http], and [sabre/event 1.0.1][evnt]. 734 735 736 7372.0.8 (2015-07-11) 738------------------ 739 740* #677: Resources with the name '0' would not get retrieved when using 741 `Depth: infinity` in a `PROPFIND` request. 742* The zip release ships with [sabre/vobject 3.3.5][vobj], 743 [sabre/http 2.0.4][http], and [sabre/event 1.0.1][evnt]. 744 745 7462.0.7 (2015-05-25) 747------------------ 748 749* #650: Correctly cleaning up change info after deleting calendars (@ErrOrnAmE). 750* The zip release ships with [sabre/vobject 3.3.4][vobj], 751 [sabre/http 2.0.4][http], and [sabre/event 1.0.1][evnt]. 752 753 7542.0.6 (2014-12-10) 755------------------ 756 757* Added `Sabre\CalDAV\CalendarRoot` as an alias for 758 `Sabre\CalDAV\CalendarRootNode`. The latter is going to be deprecated in 2.1, 759 so this makes it slightly easier to write code that works in both branches. 760* #497: Making sure we're initializing the sync-token field with a value after 761 migration. 762* The zip release ships with [sabre/vobject 3.3.4][vobj], 763 [sabre/http 2.0.4][http], and [sabre/event 1.0.1][evnt]. 764 765 7662.0.5 (2014-10-14) 767------------------ 768 769* #514: CalDAV PDO backend didn't work when overriding the 'calendar changes' 770 database table name. 771* #515: 304 status code was not being sent when checking preconditions. 772* The zip release ships with [sabre/vobject 3.3.3][vobj], 773 [sabre/http 2.0.4][http], and [sabre/event 1.0.1][evnt]. 774 775 7762.0.4 (2014-08-27) 777------------------ 778 779* #483: typo in calendars creation for PostgreSQL. 780* #487: Locks are now automatically removed after a node has been deleted. 781* #496: Improve CalDAV and CardDAV sync when there is no webdav-sync support. 782* Added: Automatically mapping internal sync-tokens to getctag. 783* The zip release ships with [sabre/vobject 3.3.1][vobj], 784 [sabre/http 2.0.4][http], and [sabre/event 1.0.1][evnt]. 785 786 7872.0.3 (2014-07-14) 788------------------ 789 790* #474: Fixed PropertyStorage `pathFilter()`. 791* #476: CSP policy incorrect, causing stylesheets to not load in the browser 792 plugin. 793* #475: Href properties in the browser plugin sometimes included a backslash. 794* #478: `TooMuchMatches` exception never worked. This was fixed, and we also 795 took this opportunity to rename it to `TooManyMatches`. 796* The zip release ships with [sabre/vobject 3.2.4][vobj], 797 [sabre/http 2.0.4][http], and [sabre/event 1.0.1][evnt]. 798 799 8002.0.2 (2014-06-12) 801------------------ 802 803* #470: Fixed compatibility with PHP < 5.4.14. 804* #467: Fixed a problem in `examples/calendarserver.php`. 805* #466: All the postgresql sample files have been updated. 806* Fixed: An error would be thrown if a client did a propfind on a node the 807 user didn't have access to. 808* Removed: Old and broken example code from the `examples/` directory. 809* The zip release ships with [sabre/vobject 3.2.3][vobj], 810 [sabre/http 2.0.3][http], and [sabre/event 1.0.1][evnt]. 811 812 8132.0.1 (2014-05-28) 814------------------ 815 816* #459: PROPFIND requests on Files with no Depth header would return a fatal 817 error. 818* #464: A PROPFIND allprops request should not return properties with status 819 404. 820* The zip release ships with [sabre/vobject 3.2.2][vobj], 821 [sabre/http 2.0.3][http], and [sabre/event 1.0.0][evnt]. 822 823 8242.0.0 (2014-05-22) 825------------------ 826 827* The zip release ships with [sabre/vobject 3.2.2][vobj], 828 [sabre/http 2.0.3][http], and [sabre/event 1.0.0][evnt]. 829* Fixed: #456: Issue in sqlite migration script. 830* Updated: MySQL database schema optimized by using more efficient column types. 831* Cleaned up browser design. 832 833 8342.0.0-beta1 (2014-05-15) 835------------------------- 836 837* The zip release ships with [sabre/vobject 3.2.2][vobj], 838 [sabre/http 2.0.3][http], and [sabre/event 1.0.0][evnt]. 839* BC Break: Property updating and fetching got refactored. Read the [migration 840 document][mi20] for more information. This allows for creation of a generic 841 property storage, and other property-related functionality that was not 842 possible before. 843* BC Break: Removed `propertyUpdate`, `beforeGetProperties` and 844 `afterGetProperties` events. 845* Fixed: #413: Memory optimizations for the CardDAV PDO backend. 846* Updated: Brand new browser plugin with more debugging features and a design 847 that is slightly less painful. 848* Added: Support for the `{DAV:}supported-method-set` property server-wide. 849* Making it easier for implementors to override how the CardDAV addressbook 850 home is located. 851* Fixed: Issue #422 Preconditions were not being set on PUT on non-existent 852 files. Not really a chance for data-loss, but incorrect nevertheless. 853* Fixed: Issue #428: Etag check with `If:` fails if the target is a collection. 854* Fixed: Issues #430, #431, #433: Locks plugin didn't not properly release 855 filesystem based locks. 856* Fixed: #443. Support for creating new calendar subscriptions for OS X 10.9.2 857 and up. 858* Removed: `Sabre\DAV\Server::NODE_*` constants. 859* Moved all precondition checking into a central place, instead of having to 860 think about it on a per-method basis. 861* jCal transformation for calendar-query REPORT now works again. 862* Switched to PSR-4 863* Fixed: #175. Returning ETag header upon a failed `If-Match` or 864 `If-None-Match` check. 865* Removed: `lib/Sabre/autoload.php`. Use `vendor/autoload.php` instead. 866* Removed: all the rfc documentation from the sabre/dav source. This made the 867 package needlessly larger. 868* Updated: Issue #439. Lots of updates in PATCH support. The 869 Sabre_DAV_PartialUpdate_IFile interface is now deprecated and will be 870 removed in a future version. 871* Added: `Sabre\DAV\Exception\LengthRequired`. 872 8731.9.0-alpha2 (2014-01-14) 874------------------------- 875 876* The zip release ships with sabre/vobject 3.1.3, sabre/http 2.0.1, and 877 sabre/event 1.0.0. 878* Added: Browser can now inspect any node, if ?sabreaction=browser is appended. 879* Fixed: Issue #178. Support for multiple items in the Timeout header. 880* Fixed: Issue #382. Stricter checking if calendar-query is allowed to run. 881* Added: Depth: Infinity support for PROPFIND request. Thanks Thomas Müller and 882 Markus Goetz. 883 884 8851.9.0-alpha1 (2013-11-07) 886------------------------- 887 888* The zip release ships with sabre/vobject 3.1.3, sabre/http 2.0.0alpha5, and 889 sabre/event 1.0.0. 890* BC Break: The CardDAV and CalDAV BackendInterface each have a new method: 891 getMultipleCards and getMultipleCalendarObjects. The Abstract and PDO backends 892 have default implementations, but if you implement that interface directly, 893 this method is now required. 894* BC Break: XML property classes now receive an extra argument in their 895 unserialize method ($propertyMap). This allows for recursively parsing 896 properties, if needed. 897* BC Break: Now using sabre/event for event emitting/subscription. For plugin 898 authors this means Server::subscribeEvent is now Server::on, and 899 Server::broadcastEvent is now Server::emit. 900* BC Break: Almost all core functionality moved into a CorePlugin. 901* BC Break: Most events triggered by the server got an overhaul. 902* Changed: Sabre\HTTP now moved into a dedicated sabre/http package. 903* Added: Support for WebDAV-sync (rfc6578). 904* Added: Support for caldav-subscriptions, which is an easy way for caldav 905 clients to manage a list of subscriptions on the server. 906* Added: Support for emitting and receiving jCal instead of iCalendar for 907 CalDAV. 908* Added: BasicCallback authenticaton backend, for creating simple authentication 909 systems without having to define any classes. 910* Added: A $transactionType property on the server class. This can be used for 911 logging and performance measuring purposes. 912* Fixed: If event handlers modify the request body from a PUT request, an ETag 913 is no longer sent back. 914* Added: Sabre\DAV\IMultiGet to optimize requests that retrieve information 915 about lists of resources. 916* Added: MultiGet support to default CalDAV and CardDAV backends, speeding up 917 the multiget and sync reports quite a bit! 918* Added: ICSExportPlugin can now generate jCal, filter on time-ranges and expand 919 recurrences. 920* Fixed: Read-only access to calendars still allows the sharee to modify basic 921 calendar properties, such as the displayname and color. 922* Changed: The default supportedPrivilegeSet has changed. Most privileges are no 923 longer marked as abstract. 924* Changed: More elegant ACL management for CalendarObject and Card nodes. 925* Added: Browser plugin now marks a carddav directory as type Directory, and a 926 shared calendar as 'Shared'. 927* Added: When debugExceptions is turned on, all previous exceptions are also 928 traversed. 929* Removed: Got rid of the Version classes for CalDAV, CardDAV, HTTP, and DAVACL. 930 Now that there's no separate packages anymore, this makes a bit more sense. 931* Added: Generalized the multistatus response parser a bit more, for better 932 re-use. 933* Added: Sabre\DAV\Client now has support for complex properties for PROPPATCH. 934 (Issue #299). 935* Added: Sabre\DAV\Client has support for gzip and deflate encoding. 936* Added: Sabre\DAV\Client now has support for sending objects as streams. 937* Added: Deserializer for {DAV:}current-user-privilege-set. 938* Added: Addressbooks or backends can now specify custom acl rules when creating 939 cards. 940* Added: The ability for plugins to validate custom tokens in If: headers. 941* Changed: Completely refactored the Lock plugin to deal with the new If: header 942 system. 943* Added: Checking preconditions for MOVE, COPY, DELETE and PROPPATCH methods. 944* Added: has() method on DAV\Property\SupportedReportSet. 945* Added: If header now gets checked (with ETag) all the time. Before the dealing 946 with the If-header was a responsibility of the Locking plugin. 947* Fixed: Outbox access for delegates. 948* Added: Issue 333: It's now possible to override the calendar-home in the 949 CalDAV plugin. 950* Added: A negotiateContentType to HTTP\Request. A convenience method. 951* Fixed: Issue 349: Denying copying or moving a resource into it's own subtree. 952* Fixed: SabreDAV catches every exception again. 953* Added: Issue #358, adding a component=vevent parameter to the content-types 954 for calendar objects, if the caldav backend provides this info. 955 956 9571.8.12-stable (2015-01-21) 958-------------------------- 959 960* The zip release ships with sabre/vobject 2.1.7. 961* #568: Support empty usernames and passwords in basic auth. 962 963 9641.8.11 (2014-12-10) 965------------------- 966 967* The zip release ships with sabre/vobject 2.1.6. 968* Updated: MySQL database schema optimized by using more efficient column types. 969* #516: The DAV client will now only redirect to HTTP and HTTPS urls. 970 971 9721.8.10 (2014-05-15) 973------------------- 974 975* The zip release ships with sabre/vobject 2.1.4. 976* includes changes from version 1.7.12. 977 978 9791.8.9 (2014-02-26) 980------------------ 981 982* The zip release ships with sabre/vobject 2.1.3. 983* includes changes from version 1.7.11. 984 985 9861.8.8 (2014-02-09) 987------------------ 988 989* includes changes from version 1.7.10. 990* The zip release ships with sabre/vobject 2.1.3. 991 9921.8.7 (2013-10-02) 993------------------ 994 995* the zip release ships with sabre/vobject 2.1.3. 996* includes changes from version 1.7.9. 997 998 9991.8.6 (2013-06-18) 1000------------------ 1001 1002* The zip release ships with sabre/vobject 2.1.0. 1003* Includes changes from version 1.7.8. 1004 1005 10061.8.5 (2013-04-11) 1007------------------ 1008 1009* The zip release ships with sabre/vobject 2.0.7. 1010* Includes changes from version 1.7.7. 1011 1012 10131.8.4 (2013-04-08) 1014------------------ 1015 1016* The zip release ships with sabre/vobject 2.0.7. 1017* Includes changes from version 1.7.6. 1018 1019 10201.8.3 (2013-03-01) 1021------------------ 1022 1023* The zip release ships with sabre/vobject 2.0.6. 1024* Includes changes from version 1.7.5. 1025* Fixed: organizer email-address for shared calendars is now prefixed with 1026 mailto:, as it should. 1027 1028 10291.8.2 (2013-01-19) 1030------------------ 1031 1032* The zip release ships with sabre/vobject 2.0.5. 1033* Includes changes from version 1.7.4. 1034 1035 10361.8.1 (2012-12-01) 1037------------------ 1038 1039* The zip release ships with sabre/vobject 2.0.5. 1040* Includes changes from version 1.7.3. 1041* Fixed: Typo in 1.7 migration script caused it to fail. 1042 1043 10441.8.0 (2012-11-08) 1045------------------ 1046 1047* The zip release ships with sabre/vobject 2.0.5. 1048* BC Break: Moved the entire codebase to PHP namespaces. 1049* BC Break: Every backend package (CalDAV, CardDAV, Auth, Locks, Principals) now 1050 has consistent naming conventions. There's a BackendInterface, and an 1051 AbstractBackend class. 1052* BC Break: Changed a bunch of constructor signatures in the CalDAV package, to 1053 reduce dependencies on the ACL package. 1054* BC Break: Sabre_CalDAV_ISharedCalendar now also has a getShares method, so 1055 sharees can figure out who is also on a shared calendar. 1056* Added: Sabre_DAVACL_IPrincipalCollection interface, to advertise support for 1057 principal-property-search on any node. 1058* Added: Simple console script to fire up a fileserver in the current directory 1059 using PHP 5.4's built-in webserver. 1060* Added: Sharee's can now also read out the list of invites for a shared 1061 calendar. 1062* Added: The Proxy principal classes now both implement an interface, for 1063 greater flexibility. 1064 1065 10661.7.13 (2014-07-28) 1067------------------- 1068 1069* The zip release ships with sabre/vobject 2.1.4. 1070* Changed: Removed phing and went with a custom build script for now. 1071 1072 10731.7.12 (2014-05-15) 1074------------------- 1075 1076* The zip release ships with sabre/vobject 2.1.4. 1077* Updated: Issue #439. Lots of updates in PATCH support. The 1078 Sabre_DAV_PartialUpdate_IFile interface is now deprecated and will be removed 1079 in a future version. 1080* Fixed: Restoring old setting after changing libxml_disable_entity_loader. 1081* Fixed: Issue #422: Preconditions were not being set on PUT on non-existent 1082 files. Not really a chance for data-loss, but incorrect nevertheless. 1083* Fixed: Issue #427: Now checking preconditions on DELETE requests. 1084* Fixed: Issue #428: Etag check with If: fails if the target is a collection. 1085* Fixed: Issue #393: PATCH request with missing end-range was handled 1086 incorrectly. 1087* Added: Sabre_DAV_Exception_LengthRequired to omit 411 errors. 1088 1089 10901.7.11 (2014-02-26) 1091------------------- 1092 1093* The zip release ships with sabre/vobject 2.1.3. 1094* Fixed: Issue #407: large downloads failed. 1095* Fixed: Issue #414: XXE security problem on older PHP versions. 1096 1097 10981.7.10 (2014-02-09) 1099------------------- 1100 1101* Fixed: Issue #374: Don't urlescape colon (:) when it's not required. 1102* Fixed: Potential security vulnerability in the http client. 1103 1104 11051.7.9 (2013-10-02) 1106------------------ 1107 1108* The zip release ships with sabre/vobject 2.1.3. 1109* Fixed: Issue #365. Incorrect output when principal urls have spaces in them. 1110* Added: Issue #367: Automatically adding a UID to vcards that don't have them. 1111 1112 11131.7.8 (2013-06-17) 1114------------------ 1115 1116* The zip release ships with sabre/vobject 2.1.0. 1117* Changed: Sabre\DAV\Client::verifyPeer is now a protected property (instead of 1118 private). 1119* Fixed: Text was incorrectly escaped in the Href and HrefList properties, 1120 disallowing urls with ampersands (&) in them. 1121* Added: deserializer for Sabre\DAVACL\Property\CurrentUserPrivilegeSet. 1122* Fixed: Issue 335: Client only deserializes properties with status 200. 1123* Fixed: Issue 341: Escaping xml in 423 Locked error responses. 1124* Added: Issue 339: beforeGetPropertiesForPath event. 1125 1126 11271.7.7 (2013-04-11) 1128------------------ 1129 1130* The zip release ships with sabre/vobject 2.0.7. 1131* Fixed: Assets in the browser plugins were not being served on windows 1132 machines. 1133 1134 11351.7.6 (2013-04-08) 1136------------------ 1137 1138* The zip release ships with sabre/vobject 2.0.7. 1139* Fixed: vcardurl in database schema can now hold 255 characters instead of 80 1140 (which is often way to small). 1141* Fixed: The browser plugin potentially allowed people to open any arbitrary 1142 file on windows servers (CVE-2013-1939). 1143 1144 11451.7.5 (2013-03-01) 1146------------------ 1147 1148* The zip release ships with sabre/vobject 2.0.6. 1149* Change: No longer advertising support for 4.0 vcards. iOS and OS X address 1150 book don't handle this well, and just advertising 3.0 support seems like the 1151 most logical course of action. 1152* Added: ->setVerifyPeers to Sabre_DAV_Client (greatly resisting against it, 1153 don't use this..). 1154 1155 11561.7.4 (2013-01-19) 1157------------------ 1158 1159* The zip release ships with sabre/vobject 2.0.5. 1160* Changed: To be compatible with MS Office 2011 for Mac, a workaround was 1161 removed that was added to support old versions of Windows XP (pre-SP3). 1162 Indeed! We needed a crazy workaround to work with one MS product in the past, 1163 and we can't keep that workaround to be compatible with another MS product. 1164* Fixed: expand-properties REPORT had incorrect values for the href element. 1165* Fixed: Range requests now work for non-seekable streams. (Thanks Alfred 1166 Klomp). 1167* Fixed: Changed serialization of {DAV:}getlastmodified and {DAV:}supportedlock 1168 to improve compatibility with MS Office 2011 for Mac. 1169* Changed: reverted the automatic translation of 'DAV:' xml namespaces to 1170 'urn:DAV' when parsing files. Issues were reported with libxml 2.6.32, on a 1171 relatively recent debian release, so we'll wait till 2015 to take this one out 1172 again. 1173* Added: Sabre_DAV_Exception_ServiceUnavailable, for emitting 503's. 1174 1175 11761.7.3 (2012-12-01) 1177------------------ 1178 1179* The zip release ships with sabre/vobject 2.0.5. 1180* Fixed: Removing double slashes from getPropertiesForPath. 1181* Change: Marked a few more properties in the CardDAV as protected, instead of 1182 private. 1183* Fixed: SharingPlugin now plays nicer with other plugins with similar 1184 functionality. 1185* Fixed: Issue 174. Sending back HTTP/1.0 for requests with this version. 1186 1187 11881.7.2 (2012-11-08) 1189------------------ 1190 1191* The zip release ships with sabre/vobject 2.0.5. 1192* Added: ACL plugin advertises support for 'calendarserver-principal- 1193 property-search'. 1194* Fixed: [#153] Allowing for relative http principals in iMip requests. 1195* Added: Support for cs:first-name and cs:last-name properties in sharing 1196 invites. 1197* Fixed: Made a bunch of properties protected, where they were private before. 1198* Added: Some non-standard properties for sharing to improve compatibility. 1199* Fixed: some bugfixes in postgres sql script. 1200* Fixed: When requesting some properties using PROPFIND, they could show up as 1201 both '200 Ok' and '403 Forbidden'. 1202* Fixed: calendar-proxy principals were not checked for deeper principal 1203 membership than 1 level. 1204* Fixed: setGroupMemberSet argument now correctly receives relative principal 1205 urls, instead of the absolute ones. 1206* Fixed: Server class will filter out any bonus properties if any extra were 1207 returned. This means the implementor of the IProperty class can be a bit 1208 lazier when implementing. Note: bug numbers after this line refer to Google 1209 Code tickets. We're using github now. 1210 1211 12121.7.1 (2012-10-07) 1213------------------ 1214 1215* Fixed: include path problem in the migration script. 1216 1217 12181.7.0 (2012-10-06) 1219------------------ 1220 1221* BC Break: The calendarobjects database table has a bunch of new fields, and a 1222 migration script is required to ensure everything will keep working. Read the 1223 wiki for more details. 1224* BC Break: The ICalendar interface now has a new method: calendarQuery. 1225* BC Break: In this version a number of classes have been deleted, that have 1226 been previously deprecated. Namely: - Sabre_DAV_Directory (now: 1227 Sabre_DAV_Collection) - Sabre_DAV_SimpleDirectory (now: 1228 Sabre_DAV_SimpleCollection) 1229* BC Break: Sabre_CalDAV_Schedule_IMip::sendMessage now has an extra argument. 1230 If you extended this class, you should fix this method. It's only used for 1231 informational purposes. 1232* BC Break: The DAV: namespace is no longer converted to urn:DAV. This was a 1233 workaround for a bug in older PHP versions (pre-5.3). 1234* Removed: Sabre.includes.php was deprecated, and is now removed. 1235* Removed: Sabre_CalDAV_Server was deprecated, and is now removed. Please use 1236 Sabre_DAV_Server and check the examples in the examples/ directory. 1237* Changed: The Sabre_VObject library now spawned into it's own project! The 1238 VObject library is still included in the SabreDAV zip package. 1239* Added: Experimental interfaces to allow implementation of caldav-sharing. Note 1240 that no implementation is provided yet, just the api hooks. 1241* Added: Free-busy reporting compliant with the caldav-scheduling standard. This 1242 allows iCal and other clients to fetch other users' free-busy data. 1243* Added: Experimental NotificationSupport interface to add caldav notifications. 1244* Added: VCF Export plugin. If enabled, it can generate an export of an entire 1245 addressbook. 1246* Added: Support for PATCH using a SabreDAV format, to live-patch files. 1247* Added: Support for Prefer: return-minimal and Brief: t headers for PROPFIND 1248 and PROPPATCH requests. 1249* Changed: Responsibility for dealing with the calendar-query is now moved from 1250 the CalDAV plugin to the CalDAV backends. This allows for heavy optimizations. 1251* Changed: The CalDAV PDO backend is now a lot faster for common calendar 1252 queries. 1253* Changed: We are now using the composer autoloader. 1254* Changed: The CalDAV backend now all implement an interface. 1255* Changed: Instead of Sabre_DAV_Property, Sabre_DAV_PropertyInterface is now the 1256 basis of every property class. 1257* Update: Caching results for principal lookups. This should cut down queries 1258 and performance for a number of heavy requests. 1259* Update: ObjectTree caches lookups much more aggresively, which will help 1260 especially speeding up a bunch of REPORT queries. 1261* Added: Support for the schedule-calendar-transp property. 1262* Fixed: Marking both the text/calendar and text/x-vcard as UTF-8 encoded. 1263* Fixed: Workaround for the SOGO connector, as it doesn't understand receiving 1264 "text/x-vcard; charset=utf-8" for a contenttype. 1265* Added: Sabre_DAV_Client now throws more specific exceptions in cases where we 1266 already has an exception class. 1267* Added: Sabre_DAV_PartialUpdate. This plugin allows you to use the PATCH method 1268 to update parts of a file. 1269* Added: Tons of timezone name mappings for Microsoft Exchange. 1270* Added: Support for an 'exception' event in the server class. 1271* Fixed: Uploaded VCards without a UID are now rejected. (thanks Dominik!) 1272* Fixed: Rejecting calendar objects if they are not in the 1273 supported-calendar-component list. (thanks Armin!) 1274* Fixed: Issue 219: serialize() now reorders correctly. 1275* Fixed: Sabre_DAV_XMLUtil no longer returns empty $dom->childNodes if there is 1276 whitespace in $dom. 1277* Fixed: Returning 409 Conflict instead of 500 when an attempt is made to create 1278 a file as a child of something that's not a collection. 1279* Fixed: Issue 237: xml-encoding values in SabreDAV error responses. 1280* Fixed: Returning 403, instead of 501 when an unknown REPORT is requested. 1281* Fixed: Postfixing slash on {DAV:}owner properties. 1282* Fixed: Several embarrassing spelling mistakes in docblocks. 1283 1284 12851.6.10 (2013-06-17) 1286------------------- 1287 1288* Fixed: Text was incorrectly escaped in the Href and HrefList properties, 1289 disallowing urls with ampersands (&) in them. 1290* Fixed: Issue 341: Escaping xml in 423 Locked error responses. 1291 1292 12931.6.9 (2013-04-11) 1294------------------ 1295 1296* Fixed: Assets in the browser plugins were not being served on windows 1297 machines. 1298 1299 13001.6.8 (2013-04-08) 1301------------------ 1302 1303* Fixed: vcardurl in database schema can now hold 255 characters instead of 80 1304 (which is often way to small). 1305* Fixed: The browser plugin potentially allowed people to open any arbitrary 1306 file on windows servers. (CVE-2013-1939). 1307 1308 13091.6.7 (2013-03-01) 1310------------------ 1311 1312* Change: No longer advertising support for 4.0 vcards. iOS and OS X address 1313 book don't handle this well, and just advertising 3.0 support seems like the 1314 most logical course of action. 1315* Added: ->setVerifyPeers to Sabre_DAV_Client (greatly resisting against it, 1316 don't use this..). 1317 1318 13191.6.6 (2013-01-19) 1320------------------ 1321 1322* Fixed: Backported a fix for broken XML serialization in error responses. 1323 (Thanks @DeepDiver1975!) 1324 1325 13261.6.5 (2012-10-04) 1327------------------ 1328 1329* Fixed: Workaround for line-ending bug OS X 10.8 addressbook has. 1330* Added: Ability to allow users to set SSL certificates for the Client class. 1331 (Thanks schiesbn!). 1332* Fixed: Directory indexes with lots of nodes should be a lot faster. 1333* Fixed: Issue 235: E_NOTICE thrown when doing a propfind request with 1334 Sabre_DAV_Client, and no valid properties are returned. 1335* Fixed: Issue with filtering on alarms in tasks. 1336 1337 13381.6.4 (2012-08-02) 1339------------------ 1340 1341* Fixed: Issue 220: Calendar-query filters may fail when filtering on alarms, if 1342 an overridden event has it's alarm removed. 1343* Fixed: Compatibility for OS/X 10.8 iCal in the IMipHandler. 1344* Fixed: Issue 222: beforeWriteContent shouldn't be called for lock requests. 1345* Fixed: Problem with POST requests to the outbox if mailto: was not lower 1346 cased. 1347* Fixed: Yearly recurrence rule expansion on leap-days no behaves correctly. 1348* Fixed: Correctly checking if recurring, all-day events with no dtstart fall in 1349 a timerange if the start of the time-range exceeds the start of the instance 1350 of an event, but not the end. 1351* Fixed: All-day recurring events wouldn't match if an occurence ended exactly 1352 on the start of a time-range. 1353* Fixed: HTTP basic auth did not correctly deal with passwords containing colons 1354 on some servers. 1355* Fixed: Issue 228: DTEND is now non-inclusive for all-day events in the 1356 calendar-query REPORT and free-busy calculations. 1357 1358 13591.6.3 (2012-06-12) 1360------------------ 1361 1362* Added: It's now possible to specify in Sabre_DAV_Client which type of 1363 authentication is to be used. 1364* Fixed: Issue 206: Sabre_DAV_Client PUT requests are fixed. 1365* Fixed: Issue 205: Parsing an iCalendar 0-second date interval. 1366* Fixed: Issue 112: Stronger validation of iCalendar objects. Now making sure 1367 every iCalendar object only contains 1 component, and disallowing vcards, 1368 forcing every component to have a UID. 1369* Fixed: Basic validation for vcards in the CardDAV plugin. 1370* Fixed: Issue 213: Workaround for an Evolution bug, that prevented it from 1371 updating events. 1372* Fixed: Issue 211: A time-limit query on a non-relative alarm trigger in a 1373 recurring event could result in an endless loop. 1374* Fixed: All uri fields are now a maximum of 200 characters. The Bynari outlook 1375 plugin used much longer strings so this should improve compatibility. 1376* Fixed: Added a workaround for a bug in KDE 4.8.2 contact syncing. See 1377 https://bugs.kde.org/show_bug.cgi?id=300047 1378* Fixed: Issue 217: Sabre_DAV_Tree_FileSystem was pretty broken. 1379 1380 13811.6.2 (2012-04-16) 1382------------------ 1383 1384* Fixed: Sabre_VObject_Node::$parent should have been public. 1385* Fixed: Recurrence rules of events are now taken into consideration when doing 1386 time-range queries on alarms. 1387* Fixed: Added a workaround for the fact that php's DateInterval cannot parse 1388 weeks and days at the same time. 1389* Added: Sabre_DAV_Server::$exposeVersion, allowing you to hide SabreDAV's 1390 version number from various outputs. 1391* Fixed: DTSTART values would be incorrect when expanding events. 1392* Fixed: DTSTART and DTEND would be incorrect for expansion of WEEKLY BYDAY 1393 recurrences. 1394* Fixed: Issue 203: A problem with overridden events hitting the exact date and 1395 time of a subsequent event in the recurrence set. 1396* Fixed: There was a problem with recurrence rules, for example the 5th tuesday 1397 of the month, if this day did not exist. 1398* Added: New HTTP status codes from draft-nottingham-http-new-status-04. 1399 1400 14011.6.1 (2012-03-05) 1402------------------ 1403 1404* Added: createFile and put() can now return an ETag. 1405* Added: Sending back an ETag on for operations on CardDAV backends. This should 1406 help with OS X 10.6 Addressbook compatibility. 1407* Fixed: Fixed a bug where an infinite loop could occur in the recurrence 1408 iterator if the recurrence was YEARLY, with a BYMONTH rule, and either BYDAY 1409 or BYMONTHDAY match the first day of the month. 1410* Fixed: Events that are excluded using EXDATE are still counted in the COUNT= 1411 parameter in the RRULE property. 1412* Added: Support for time-range filters on VALARM components. 1413* Fixed: Correctly filtering all-day events. 1414* Fixed: Sending back correct mimetypes from the browser plugin (thanks 1415 Jürgen). 1416* Fixed: Issue 195: Sabre_CardDAV pear package had an incorrect dependency. 1417* Fixed: Calendardata would be destroyed when performing a MOVE request. 1418 1419 14201.6.0 (2012-02-22) 1421------------------ 1422 1423* BC Break: Now requires PHP 5.3 1424* BC Break: Any node that implemented Sabre_DAVACL_IACL must now also implement 1425 the getSupportedPrivilegeSet method. See website for details. 1426* BC Break: Moved functions from Sabre_CalDAV_XMLUtil to 1427 Sabre_VObject_DateTimeParser. 1428* BC Break: The Sabre_DAVACL_IPrincipalCollection now has two new methods: 1429 'searchPrincipals' and 'updatePrincipal'. 1430* BC Break: Sabre_DAV_ILockable is removed and all related per-node locking 1431 functionality. 1432* BC Break: Sabre_DAV_Exception_FileNotFound is now deprecated in favor of 1433 Sabre_DAV_Exception_NotFound. The former will be removed in a later version. 1434* BC Break: Removed Sabre_CalDAV_ICalendarUtil, use Sabre_VObject instead. 1435* BC Break: Sabre_CalDAV_Server is now deprecated, check out the documentation 1436 on how to setup a caldav server with just Sabre_DAV_Server. 1437* BC Break: Default Principals PDO backend now needs a new field in the 1438 'principals' table. See the website for details. 1439* Added: Ability to create new calendars and addressbooks from within the 1440 browser plugin. 1441* Added: Browser plugin: icons for various nodes. 1442* Added: Support for FREEBUSY reports! 1443* Added: Support for creating principals with admin-level privileges. 1444* Added: Possibility to let server send out invitation emails on behalf of 1445 CalDAV client, using Sabre_CalDAV_Schedule_IMip. 1446* Changed: beforeCreateFile event now passes data argument by reference. 1447* Changed: The 'propertyMap' property from Sabre_VObject_Reader, must now be 1448 specified in Sabre_VObject_Property::$classMap. 1449* Added: Ability for plugins to tell the ACL plugin which principal plugins are 1450 searchable. 1451* Added: [DAVACL] Per-node overriding of supported privileges. This allows for 1452 custom privileges where needed. 1453* Added: [DAVACL] Public 'principalSearch' method on the DAVACL plugin, which 1454 allows for easy searching for principals, based on their properties. 1455* Added: Sabre_VObject_Component::getComponents() to return a list of only 1456 components and not properties. 1457* Added: An includes.php file in every sub-package (CalDAV, CardDAV, DAV, 1458 DAVACL, HTTP, VObject) as an alternative to the autoloader. This often works 1459 much faster. 1460* Added: Support for the 'Me card', which allows Addressbook.app users specify 1461 which vcard is their own. 1462* Added: Support for updating principal properties in the DAVACL principal 1463 backends. 1464* Changed: Major refactoring in the calendar-query REPORT code. Should make 1465 things more flexible and correct. 1466* Changed: The calendar-proxy-[read|write] principals will now only appear in 1467 the tree, if they actually exist in the Principal backend. This should reduce 1468 some problems people have been having with this. 1469* Changed: Sabre_VObject_Element_* classes are now renamed to 1470 Sabre_VObject_Property. Old classes are retained for backwards compatibility, 1471 but this will be removed in the future. 1472* Added: Sabre_VObject_FreeBusyGenerator to generate free-busy reports based on 1473 lists of events. 1474* Added: Sabre_VObject_RecurrenceIterator to find all the dates and times for 1475 recurring events. 1476* Fixed: Issue 97: Correctly handling RRULE for the calendar-query REPORT. 1477* Fixed: Issue 154: Encoding of VObject parameters with no value was incorrect. 1478* Added: Support for {DAV:}acl-restrictions property from RFC3744. 1479* Added: The contentlength for calendar objects can now be supplied by a CalDAV 1480 backend, allowing for more optimizations. 1481* Fixed: Much faster implementation of Sabre_DAV_URLUtil::encodePath. 1482* Fixed: {DAV:}getcontentlength may now be not specified. 1483* Fixed: Issue 66: Using rawurldecode instead of urldecode to decode paths from 1484 clients. This means that + will now be treated as a literal rather than a 1485 space, and this should improve compatibility with the Windows built-in client. 1486* Added: Sabre_DAV_Exception_PaymentRequired exception, to emit HTTP 402 status 1487 codes. 1488* Added: Some mysql unique constraints to example files. 1489* Fixed: Correctly formatting HTTP dates. 1490* Fixed: Issue 94: Sending back Last-Modified header for 304 responses. 1491* Added: Sabre_VObject_Component_VEvent, Sabre_VObject_Component_VJournal, 1492 Sabre_VObject_Component_VTodo and Sabre_VObject_Component_VCalendar. 1493* Changed: Properties are now also automatically mapped to their appropriate 1494 classes, if they are created using the add() or __set() methods. 1495* Changed: Cloning VObject objects now clones the entire tree, rather than just 1496 the default shallow copy. 1497* Added: Support for recurrence expansion in the CALDAV:calendar-multiget and 1498 CALDAV:calendar-query REPORTS. 1499* Changed: CalDAV PDO backend now sorts calendars based on the internal 1500 'calendarorder' field. 1501* Added: Issue 181: Carddav backends may no optionally not supply the carddata 1502 in getCards, if etag and size are specified. This may speed up certain 1503 requests. 1504* Added: More arguments to beforeWriteContent and beforeCreateFile (see 1505 WritingPlugins wiki document). 1506* Added: Hook for iCalendar validation. This allows us to validate iCalendar 1507 objects when they're uploaded. At the moment we're just validating syntax. 1508* Added: VObject now support Windows Timezone names correctly (thanks mrpace2). 1509* Added: If a timezonename could not be detected, we fall back on the default 1510 PHP timezone. 1511* Added: Now a Composer package (thanks willdurand). 1512* Fixed: Support for \N as a newline character in the VObject reader. 1513* Added: afterWriteContent, afterCreateFile and afterUnbind events. 1514* Added: Postgresql example files. Not part of the unittests though, so use at 1515 your own risk. 1516* Fixed: Issue 182: Removed backticks from sql queries, so it will work with 1517 Postgres. 1518 1519 15201.5.9 (2012-04-16) 1521------------------ 1522 1523* Fixed: Issue with parsing timezone identifiers that were surrounded by quotes. 1524 (Fixes emClient compatibility). 1525 1526 15271.5.8 (2012-02-22) 1528------------------ 1529 1530* Fixed: Issue 95: Another timezone parsing issue, this time in calendar-query. 1531 1532 15331.5.7 (2012-02-19) 1534------------------ 1535 1536* Fixed: VObject properties are now always encoded before components. 1537* Fixed: Sabre_DAVACL had issues with multiple levels of privilege aggregration. 1538* Changed: Added 'GuessContentType' plugin to fileserver.php example. 1539* Fixed: The Browser plugin will now trigger the correct events when creating 1540 files. 1541* Fixed: The ICSExportPlugin now considers ACL's. 1542* Added: Made it optional to supply carddata from an Addressbook backend when 1543 requesting getCards. This can make some operations much faster, and could 1544 result in much lower memory use. 1545* Fixed: Issue 187: Sabre_DAV_UUIDUtil was missing from includes file. 1546* Fixed: Issue 191: beforeUnlock was triggered twice. 1547 1548 15491.5.6 (2012-01-07) 1550------------------ 1551 1552* Fixed: Issue 174: VObject could break UTF-8 characters. 1553* Fixed: pear package installation issues. 1554 1555 15561.5.5 (2011-12-16) 1557------------------ 1558 1559* Fixed: CalDAV time-range filter workaround for recurring events. 1560* Fixed: Bug in Sabre_DAV_Locks_Backend_File that didn't allow multiple files to 1561 be locked at the same time. 1562 1563 15641.5.4 (2011-10-28) 1565------------------ 1566 1567* Fixed: GuessContentType plugin now supports mixed case file extensions. 1568* Fixed: DATE-TIME encoding was wrong in VObject. (we used 'DATETIME'). 1569* Changed: Sending back HTTP 204 after a PUT request on an existing resource 1570 instead of HTTP 200. This should fix Evolution CardDAV client compatibility. 1571* Fixed: Issue 95: Parsing X-LIC-LOCATION if it's available. 1572* Added: All VObject elements now have a reference to their parent node. 1573 1574 15751.5.3 (2011-09-28) 1576------------------ 1577 1578* Fixed: Sabre_DAV_Collection was missing from the includes file. 1579* Fixed: Issue 152. iOS 1.4.2 apparantly requires HTTP/1.1 200 OK to be in 1580 uppercase. 1581* Fixed: Issue 153: Support for files with mixed newline styles in 1582 Sabre_VObject. 1583* Fixed: Issue 159: Automatically converting any vcard and icalendardata to 1584 UTF-8. 1585* Added: Sabre_DAV_SimpleFile class for easy static file creation. 1586* Added: Issue 158: Support for the CARDDAV:supported-address-data property. 1587 1588 15891.5.2 (2011-09-21) 1590------------------ 1591 1592* Fixed: carddata and calendardata MySQL fields are now of type 'mediumblob'. 1593 'TEXT' was too small sometimes to hold all the data. 1594* Fixed: {DAV:}supported-report-set is now correctly reporting the reports for 1595 IAddressBook. 1596* Added: Sabre_VObject_Property::add() to add duplicate parameters to 1597 properties. 1598* Added: Issue 151: Sabre_CalDAV_ICalendar and Sabre_CalDAV_ICalendarObject 1599 interfaces. 1600* Fixed: Issue 140: Not returning 201 Created if an event cancelled the creation 1601 of a file. 1602* Fixed: Issue 150: Faster URLUtil::encodePath() implementation. 1603* Fixed: Issue 144: Browser plugin could interfere with 1604 TemporaryFileFilterPlugin if it was loaded first. 1605* Added: It's not possible to specify more 'alternate uris' in principal 1606 backends. 1607 1608 16091.5.1 (2011-08-24) 1610------------------ 1611 1612* Fixed: Issue 137. Hiding action interface in HTML browser for non-collections. 1613* Fixed: addressbook-query is now correctly returned from the 1614 {DAV:}supported-report-set property. 1615* Fixed: Issue 142: Bugs in groupwareserver.php example. 1616* Fixed: Issue 139: Rejecting PUT requests with Content-Range. 1617 1618 16191.5.0 (2011-08-12) 1620------------------ 1621 1622* Added: CardDAV support. 1623* Added: An experimental WebDAV client. 1624* Added: MIME-Directory grouping support in the VObject library. This is very 1625 useful for people attempting to parse vcards. 1626* BC Break: Adding parameters with the VObject libraries now overwrites the 1627 previous parameter, rather than just add it. This makes more sense for 99% of 1628 the cases. 1629* BC Break: lib/Sabre.autoload.php is now removed in favor of 1630 lib/Sabre/autoload.php. 1631* Deprecated: Sabre_DAV_Directory is now deprecated and will be removed in a 1632 future version. Use Sabre_DAV_Collection instead. 1633* Deprecated: Sabre_DAV_SimpleDirectory is now deprecated and will be removed in 1634 a future version. Use Sabre_DAV_SimpleCollection instead. 1635* Fixed: Problem with overriding tablenames for the CalDAV backend. 1636* Added: Clark-notation parser to XML utility. 1637* Added: unset() support to VObject components. 1638* Fixed: Refactored CalDAV property fetching to be faster and simpler. 1639* Added: Central string-matcher for CalDAV and CardDAV plugins. 1640* Added: i;unicode-casemap support 1641* Fixed: VObject bug: wouldn't parse parameters if they weren't specified in 1642 uppercase. 1643* Fixed: VObject bug: Parameters now behave more like Properties. 1644* Fixed: VObject bug: Parameters with no value are now correctly parsed. 1645* Changed: If calendars don't specify which components they allow, 'all' 1646 components are assumed (e.g.: VEVENT, VTODO, VJOURNAL). 1647* Changed: Browser plugin now uses POST variable 'sabreAction' instead of 1648 'action' to reduce the chance of collisions. 1649 1650 16511.4.4 (2011-07-07) 1652------------------ 1653 1654* Fixed: Issue 131: Custom CalDAV backends could break in certain cases. 1655* Added: The option to override the default tablename all PDO backends use. 1656 (Issue 60). 1657* Fixed: Issue 124: 'File' authentication backend now takes realm into 1658 consideration. 1659* Fixed: Sabre_DAV_Property_HrefList now properly deserializes. This allows 1660 users to update the {DAV:}group-member-set property. 1661* Added: Helper functions for DateTime-values in Sabre_VObject package. 1662* Added: VObject library can now automatically map iCalendar properties to 1663 custom classes. 1664 1665 16661.4.3 (2011-04-25) 1667------------------ 1668 1669* Fixed: Issue 123: Added workaround for Windows 7 UNLOCK bug. 1670* Fixed: datatype of lastmodified field in mysql.calendars.sql. Please change 1671 the DATETIME field to an INT to ensure this field will work correctly. 1672* Change: Sabre_DAV_Property_Principal is now renamed to 1673 Sabre_DAVACL_Property_Principal. 1674* Added: API level support for ACL HTTP method. 1675* Fixed: Bug in serializing {DAV:}acl property. 1676* Added: deserializer for {DAV:}resourcetype property. 1677* Added: deserializer for {DAV:}acl property. 1678* Added: deserializer for {DAV:}principal property. 1679 1680 16811.4.2-beta (2011-04-01) 1682----------------------- 1683 1684* Added: It's not possible to disable listing of nodes that are denied read 1685 access by ACL. 1686* Fixed: Changed a few properties in CalDAV classes from private to protected. 1687* Fixed: Issue 119: Terrible things could happen when relying on guessBaseUri, 1688 the server was running on the root of the domain and a user tried to access a 1689 file ending in .php. This is a slight BC break. 1690* Fixed: Issue 118: Lock tokens in If headers without a uri should be treated as 1691 the request uri, not 'all relevant uri's. 1692* Fixed: Issue 120: PDO backend was incorrectly fetching too much locks in cases 1693 where there were similar named locked files in a directory. 1694 1695 16961.4.1-beta (2011-02-26) 1697----------------------- 1698 1699* Fixed: Sabre_DAV_Locks_Backend_PDO returned too many locks. 1700* Fixed: Sabre_HTTP_Request::getHeader didn't return Content-Type when running 1701 on apache, so a few workarounds were added. 1702* Change: Slightly changed CalDAV Backend API's, to allow for heavy 1703 optimizations. This is non-bc breaking. 1704 1705 17061.4.0-beta (2011-02-12) 1707----------------------- 1708 1709* Added: Partly RFC3744 ACL support. 1710* Added: Calendar-delegation (caldav-proxy) support. 1711* BC break: In order to fix Issue 99, a new argument had to be added to 1712 Sabre_DAV_Locks_Backend_*::getLocks classes. Consult the classes for details. 1713* Deprecated: Sabre_DAV_Locks_Backend_FS is now deprecated and will be removed 1714 in a later version. Use PDO or the new File class instead. 1715* Deprecated: The Sabre_CalDAV_ICalendarUtil class is now marked deprecated, and 1716 will be removed in a future version. Please use Sabre_VObject instead. 1717* Removed: All principal-related functionality has been removed from the 1718 Sabre_DAV_Auth_Plugin, and moved to the Sabre_DAVACL_Plugin. 1719* Added: VObject library, for easy vcard/icalendar parsing using a natural 1720 interface. 1721* Added: Ability to automatically generate full .ics feeds off calendars. To 1722 use: Add the Sabre_CalDAV_ICSExportPlugin, and add ?export to your calendar 1723 url. 1724* Added: Plugins can now specify a pluginname, for easy access using 1725 Sabre_DAV_Server::getPlugin(). 1726* Added: beforeGetProperties event. 1727* Added: updateProperties event. 1728* Added: Principal listings and calendar-access can now be done privately, 1729 disallowing users from accessing or modifying other users' data. 1730* Added: You can now pass arrays to the Sabre_DAV_Server constructor. If it's an 1731 array with node-objects, a Root collection will automatically be created, and 1732 the nodes are used as top-level children. 1733* Added: The principal base uri is now customizable. It used to be hardcoded to 1734 'principals/[user]'. 1735* Added: getSupportedReportSet method in ServerPlugin class. This allows you to 1736 easily specify which reports you're implementing. 1737* Added: A '..' link to the HTML browser. 1738* Fixed: Issue 99: Locks on child elements were ignored when their parent nodes 1739 were deleted. 1740* Fixed: Issue 90: lockdiscovery property and LOCK response now include a 1741 {DAV}lockroot element. 1742* Fixed: Issue 96: support for 'default' collation in CalDAV text-match filters. 1743* Fixed: Issue 102: Ensuring that copy and move with identical source and 1744 destination uri's fails. 1745* Fixed: Issue 105: Supporting MKCALENDAR with no body. 1746* Fixed: Issue 109: Small fixes in Sabre_HTTP_Util. 1747* Fixed: Issue 111: Properly catching the ownername in a lock (if it's a string) 1748* Fixed: Sabre_DAV_ObjectTree::nodeExist always returned false for the root 1749 node. 1750* Added: Global way to easily supply new resourcetypes for certain node classes. 1751* Fixed: Issue 59: Allowing the user to override the authentication realm in 1752 Sabre_CalDAV_Server. 1753* Update: Issue 97: Looser time-range checking if there's a recurrence rule in 1754 an event. This fixes 'missing recurring events'. 1755 1756 17571.3.0 (2010-10-14) 1758------------------ 1759 1760* Added: childExists method to Sabre_DAV_ICollection. This is an api break, so 1761 if you implement Sabre_DAV_ICollection directly, add the method. 1762* Changed: Almost all HTTP method implementations now take a uri argument, 1763 including events. This allows for internal rerouting of certain calls. If you 1764 have custom plugins, make sure they use this argument. If they don't, they 1765 will likely still work, but it might get in the way of future changes. 1766* Changed: All getETag methods MUST now surround the etag with double-quotes. 1767 This was a mistake made in all previous SabreDAV versions. If you don't do 1768 this, any If-Match, If-None-Match and If: headers using Etags will work 1769 incorrectly. (Issue 85). 1770* Added: Sabre_DAV_Auth_Backend_AbstractBasic class, which can be used to easily 1771 implement basic authentication. 1772* Removed: Sabre_DAV_PermissionDenied class. Use Sabre_DAV_Forbidden instead. 1773* Removed: Sabre_DAV_IDirectory interface, use Sabre_DAV_ICollection instead. 1774* Added: Browser plugin now uses {DAV:}displayname if this property is 1775 available. 1776* Added: Cache layer in the ObjectTree. 1777* Added: Tree classes now have a delete and getChildren method. 1778* Fixed: If-Modified-Since and If-Unmodified-Since would be incorrect if the 1779 date is an exact match. 1780* Fixed: Support for multiple ETags in If-Match and If-None-Match headers. 1781* Fixed: Improved baseUrl handling. 1782* Fixed: Issue 67: Non-seekable stream support in ::put()/::get(). 1783* Fixed: Issue 65: Invalid dates are now ignored. 1784* Updated: Refactoring in Sabre_CalDAV to make everything a bit more ledgable. 1785* Fixed: Issue 88, Issue 89: Fixed compatibility for running SabreDAV on 1786 Windows. 1787* Fixed: Issue 86: Fixed Content-Range top-boundary from 'file size' to 'file 1788 size'-1. 1789 1790 17911.2.5 (2010-08-18) 1792------------------ 1793 1794* Fixed: Issue 73: guessBaseUrl fails for some servers. 1795* Fixed: Issue 67: SabreDAV works better with non-seekable streams. 1796* Fixed: If-Modified-Since and If-Unmodified-Since would be incorrect if 1797 the date is an exact match. 1798 1799 18001.2.4 (2010-07-13) 1801------------------ 1802 1803* Fixed: Issue 62: Guessing baseUrl fails when url contains a query-string. 1804* Added: Apache configuration sample for CGI/FastCGI setups. 1805* Fixed: Issue 64: Only returning calendar-data when it was actually requested. 1806 1807 18081.2.3 (2010-06-26) 1809------------------ 1810 1811* Fixed: Issue 57: Supporting quotes around etags in If-Match and If-None-Match 1812 1813 18141.2.2 (2010-06-21) 1815------------------ 1816 1817* Updated: SabreDAV now attempts to guess the BaseURI if it's not set. 1818* Updated: Better compatibility with BitKinex 1819* Fixed: Issue 56: Incorrect behaviour for If-None-Match headers and GET 1820 requests. 1821* Fixed: Issue with certain encoded paths in Browser Plugin. 1822 1823 18241.2.1 (2010-06-07) 1825------------------ 1826 1827* Fixed: Issue 50, patch by Mattijs Hoitink. 1828* Fixed: Issue 51, Adding windows 7 lockfiles to TemporaryFileFilter. 1829* Fixed: Issue 38, Allowing custom filters to be added to TemporaryFileFilter. 1830* Fixed: Issue 53, ETags in the If: header were always failing. This behaviour 1831 is now corrected. 1832* Added: Apache Authentication backend, in case authentication through .htaccess 1833 is desired. 1834* Updated: Small improvements to example files. 1835 1836 18371.2.0 (2010-05-24) 1838------------------ 1839 1840* Fixed: Browser plugin now displays international characters. 1841* Changed: More properties in CalDAV classes are now protected instead of 1842 private. 1843 1844 18451.2.0beta3 (2010-05-14) 1846----------------------- 1847 1848* Fixed: Custom properties were not properly sent back for allprops requests. 1849* Fixed: Issue 49, incorrect parsing of PROPPATCH, affecting Office 2007. 1850* Changed: Removed CalDAV items from includes.php, and added a few missing ones. 1851 1852 18531.2.0beta2 (2010-05-04) 1854----------------------- 1855 1856* Fixed: Issue 46: Fatal error for some non-existent nodes. 1857* Updated: some example sql to include email address. 1858* Added: 208 and 508 statuscodes from RFC5842. 1859* Added: Apache2 configuration examples 1860 1861 18621.2.0beta1 (2010-04-28) 1863----------------------- 1864 1865* Fixed: redundant namespace declaration in resourcetypes. 1866* Fixed: 2 locking bugs triggered by litmus when no Sabre_DAV_ILockable 1867 interface is used. 1868* Changed: using http://sabredav.org/ns for all custom xml properties. 1869* Added: email address property to principals. 1870* Updated: CalendarObject validation. 1871 1872 18731.2.0alpha4 (2010-04-24) 1874------------------------ 1875 1876* Added: Support for If-Range, If-Match, If-None-Match, If-Modified-Since, 1877 If-Unmodified-Since. 1878* Changed: Brand new build system. Functionality is split up between Sabre, 1879 Sabre_HTTP, Sabre_DAV and Sabre_CalDAV packages. In addition to that a new 1880 non-pear package will be created with all this functionality combined. 1881* Changed: Autoloader moved to Sabre/autoload.php. 1882* Changed: The Allow: header is now more accurate, with appropriate HTTP methods 1883 per uri. 1884* Changed: Now throwing back Sabre_DAV_Exception_MethodNotAllowed on a few 1885 places where Sabre_DAV_Exception_NotImplemented was used. 1886 1887 18881.2.0alpha3 (2010-04-20) 1889------------------------ 1890 1891* Update: Complete rewrite of property updating. Now easier to use and atomic. 1892* Fixed: Issue 16, automatically adding trailing / to baseUri. 1893* Added: text/plain is used for .txt files in GuessContentType plugin. 1894* Added: support for principal-property-search and principal-search-property-set 1895 reports. 1896* Added: Issue 31: Hiding exception information by default. Can be turned on 1897 with the Sabre_DAV_Server::$debugExceptions property. 1898 1899 19001.2.0alpha2 (2010-04-08) 1901------------------------ 1902 1903* Added: Calendars are now private and can only be read by the owner. 1904* Fixed: double namespace declaration in multistatus responses. 1905* Added: MySQL database dumps. MySQL is now also supported next to SQLite. 1906* Added: expand-properties REPORT from RFC 3253. 1907* Added: Sabre_DAV_Property_IHref interface for properties exposing urls. 1908* Added: Issue 25: Throwing error on broken Finder behaviour. 1909* Changed: Authentication backend is now aware of current user. 1910 1911 19121.2.0alpha1 (2010-03-31) 1913------------------------ 1914 1915* Fixed: Issue 26: Workaround for broken GVFS behaviour with encoded special 1916 characters. 1917* Fixed: Issue 34: Incorrect Lock-Token response header for LOCK. Fixes Office 1918 2010 compatibility. 1919* Added: Issue 35: SabreDAV version to header to OPTIONS response to ease 1920 debugging. 1921* Fixed: Issue 36: Incorrect variable name, throwing error in some requests. 1922* Fixed: Issue 37: Incorrect smultron regex in temporary filefilter. 1923* Fixed: Issue 33: Converting ISO-8859-1 characters to UTF-8. 1924* Fixed: Issue 39 & Issue 40: Basename fails on non-utf-8 locales. 1925* Added: More unittests. 1926* Added: SabreDAV version to all error responses. 1927* Added: URLUtil class for decoding urls. 1928* Changed: Now using pear.sabredav.org pear channel. 1929* Changed: Sabre_DAV_Server::getCopyAndMoveInfo is now a public method. 1930 1931 19321.1.2-alpha (2010-03-18) 1933------------------------ 1934 1935* Added: RFC5397 - current-user-principal support. 1936* Fixed: Issue 27: encoding entities in property responses. 1937* Added: naturalselection script now allows the user to specify a 'minimum 1938 number of bytes' for deletion. This should reduce load due to less crawling 1939* Added: Full support for the calendar-query report. 1940* Added: More unittests. 1941* Added: Support for complex property deserialization through the static 1942 ::unserialize() method. 1943* Added: Support for modifying calendar-component-set 1944* Fixed: Issue 29: Added TIMEOUT_INFINITE constant 1945 1946 19471.1.1-alpha (2010-03-11) 1948------------------------ 1949 1950* Added: RFC5689 - Extended MKCOL support. 1951* Fixed: Evolution support for CalDAV. 1952* Fixed: PDO-locks backend was pretty much completely broken. This is 100% 1953 unittested now. 1954* Added: support for ctags. 1955* Fixed: Comma's between HTTP methods in 'Allow' method. 1956* Changed: default argument for Sabre_DAV_Locks_Backend_FS. This means a 1957 datadirectory must always be specified from now on. 1958* Changed: Moved Sabre_DAV_Server::parseProps to 1959 Sabre_DAV_XMLUtil::parseProperties. 1960* Changed: Sabre_DAV_IDirectory is now Sabre_DAV_ICollection. 1961* Changed: Sabre_DAV_Exception_PermissionDenied is now 1962 Sabre_DAV_Exception_Forbidden. 1963* Changed: Sabre_CalDAV_ICalendarCollection is removed. 1964* Added: Sabre_DAV_IExtendedCollection. 1965* Added: Many more unittests. 1966* Added: support for calendar-timezone property. 1967 1968 19691.1.0-alpha (2010-03-01) 1970------------------------ 1971 1972* Note: This version is forked from version 1.0.5, so release dates may be out 1973 of order. 1974* Added: CalDAV - RFC 4791 1975* Removed: Sabre_PHP_Exception. PHP has a built-in ErrorException for this. 1976* Added: PDO authentication backend. 1977* Added: Example sql for auth, caldav, locks for sqlite. 1978* Added: Sabre_DAV_Browser_GuessContentType plugin 1979* Changed: Authentication plugin refactored, making it possible to implement 1980 non-digest authentication. 1981* Fixed: Better error display in browser plugin. 1982* Added: Support for {DAV:}supported-report-set 1983* Added: XML utility class with helper functions for the WebDAV protocol. 1984* Added: Tons of unittests 1985* Added: PrincipalCollection and Principal classes 1986* Added: Sabre_DAV_Server::getProperties for easy property retrieval 1987* Changed: {DAV:}resourceType defaults to 0 1988* Changed: Any non-null resourceType now gets a / appended to the href value. 1989 Before this was just for {DAV:}collection's, but this is now also the case for 1990 for example {DAV:}principal. 1991* Changed: The Href property class can now optionally create non-relative uri's. 1992* Changed: Sabre_HTTP_Response now returns false if headers are already sent and 1993 header-methods are called. 1994* Fixed: Issue 19: HEAD requests on Collections 1995* Fixed: Issue 21: Typo in Sabre_DAV_Property_Response 1996* Fixed: Issue 18: Doesn't work with Evolution Contacts 1997 1998 19991.0.15 (2010-05-28) 2000------------------- 2001 2002* Added: Issue 31: Hiding exception information by default. Can be turned on 2003 with the Sabre_DAV_Server::$debugExceptions property. 2004* Added: Moved autoload from lib/ to lib/Sabre/autoload.php. This is also the 2005 case in the upcoming 1.2.0, so it will improve future compatibility. 2006 2007 20081.0.14 (2010-04-15) 2009------------------- 2010 2011* Fixed: double namespace declaration in multistatus responses. 2012 2013 20141.0.13 (2010-03-30) 2015------------------- 2016 2017* Fixed: Issue 40: Last references to basename/dirname 2018 2019 20201.0.12 (2010-03-30) 2021------------------- 2022 2023* Fixed: Issue 37: Incorrect smultron regex in temporary filefilter. 2024* Fixed: Issue 26: Workaround for broken GVFS behaviour with encoded special 2025 characters. 2026* Fixed: Issue 33: Converting ISO-8859-1 characters to UTF-8. 2027* Fixed: Issue 39: Basename fails on non-utf-8 locales. 2028* Added: More unittests. 2029* Added: SabreDAV version to all error responses. 2030* Added: URLUtil class for decoding urls. 2031* Updated: Now using pear.sabredav.org pear channel. 2032 2033 20341.0.11 (2010-03-23) 2035------------------- 2036 2037* Non-public release. This release is identical to 1.0.10, but it is used to 2038 test releasing packages to pear.sabredav.org. 2039 2040 20411.0.10 (2010-03-22) 2042------------------- 2043 2044* Fixed: Issue 34: Invalid Lock-Token header response. 2045* Added: Issue 35: Adding SabreDAV version to HTTP OPTIONS responses. 2046 2047 20481.0.9 (2010-03-19) 2049------------------ 2050 2051* Fixed: Issue 27: Entities not being encoded in PROPFIND responses. 2052* Fixed: Issue 29: Added missing TIMEOUT_INFINITE constant. 2053 2054 20551.0.8 (2010-03-03) 2056------------------ 2057 2058* Fixed: Issue 21: typos causing errors 2059* Fixed: Issue 23: Comma's between methods in Allow header. 2060* Added: Sabre_DAV_ICollection interface, to aid in future compatibility. 2061* Added: Sabre_DAV_Exception_Forbidden exception. This will replace 2062 Sabre_DAV_Exception_PermissionDenied in the future, and can already be used to 2063 ensure future compatibility. 2064 2065 20661.0.7 (2010-02-24) 2067------------------ 2068 2069* Fixed: Issue 19 regression for MS Office 2070 2071 20721.0.6 (2010-02-23) 2073------------------ 2074 2075* Fixed: Issue 19: HEAD requests on Collections 2076 2077 20781.0.5 (2010-01-22) 2079------------------ 2080 2081* Fixed: Fatal error when a malformed url was used for unlocking, in conjuction 2082 with Sabre.autoload.php due to a incorrect filename. 2083* Fixed: Improved unittests and build system 2084 2085 20861.0.4 (2010-01-11) 2087------------------ 2088 2089* Fixed: needed 2 different releases. One for googlecode and one for pearfarm. 2090 This is to retain the old method to install SabreDAV until pearfarm becomes 2091 the standard installation method. 2092 2093 20941.0.3 (2010-01-11) 2095------------------ 2096 2097* Added: RFC4709 support (davmount) 2098* Added: 6 unittests 2099* Added: naturalselection. A tool to keep cache directories below a specified 2100 theshold. 2101* Changed: Now using pearfarm.org channel server. 2102 2103 21041.0.1 (2009-12-22) 2105------------------ 2106 2107* Fixed: Issue 15: typos in examples 2108* Fixed: Minor pear installation issues 2109 2110 21111.0.0 (2009-11-02) 2112------------------ 2113 2114* Added: SimpleDirectory class. This class allows creating static directory 2115 structures with ease. 2116* Changed: Custom complex properties and exceptions now get an instance of 2117 Sabre_DAV_Server as their first argument in serialize() 2118* Changed: Href complex property now prepends server's baseUri 2119* Changed: delete before an overwriting copy/move is now handles by server class 2120 instead of tree classes 2121* Changed: events must now explicitly return false to stop execution. Before, 2122 execution would be stopped by anything loosely evaluating to false. 2123* Changed: the getPropertiesForPath method now takes a different set of 2124 arguments, and returns a different response. This allows plugin developers to 2125 return statuses for properties other than 200 and 404. The hrefs are now also 2126 always calculated relative to the baseUri, and not the uri of the request. 2127* Changed: generatePropFindResponse is renamed to generateMultiStatus, and now 2128 takes a list of properties similar to the response of getPropertiesForPath. 2129 This was also needed to improve flexibility for plugin development. 2130* Changed: Auth plugins are no longer included. They were not yet stable 2131 quality, so they will probably be reintroduced in a later version. 2132* Changed: PROPPATCH also used generateMultiStatus now. 2133* Removed: unknownProperties event. This is replaced by the afterGetProperties 2134 event, which should provide more flexibility. 2135* Fixed: Only calling getSize() on IFile instances in httpHead() 2136* Added: beforeBind event. This is invoked upon file or directory creation 2137* Added: beforeWriteContent event, this is invoked by PUT and LOCK on an 2138 existing resource. 2139* Added: beforeUnbind event. This is invoked right before deletion of any 2140 resource. 2141* Added: afterGetProperties event. This event can be used to make modifications 2142 to property responses. 2143* Added: beforeLock and beforeUnlock events. 2144* Added: afterBind event. 2145* Fixed: Copy and Move could fail in the root directory. This is now fixed. 2146* Added: Plugins can now be retrieved by their classname. This is useful for 2147 inter-plugin communication. 2148* Added: The Auth backend can now return usernames and user-id's. 2149* Added: The Auth backend got a getUsers method 2150* Added: Sabre_DAV_FSExt_Directory now returns quota info 2151 2152 21530.12.1-beta (2009-09-11) 2154------------------------ 2155 2156* Fixed: UNLOCK bug. Unlock didn't work at all 2157 2158 21590.12-beta (2009-09-10) 2160---------------------- 2161 2162* Updated: Browser plugin now shows multiple {DAV:}resourcetype values if 2163 available. 2164* Added: Experimental PDO backend for Locks Manager 2165* Fixed: Sending Content-Length: 0 for every empty response. This improves NGinx 2166 compatibility. 2167* Fixed: Last modification time is reported in UTC timezone. This improves 2168 Finder compatibility. 2169 2170 21710.11-beta (2009-08-11) 2172---------------------- 2173 2174* Updated: Now in Beta 2175* Updated: Pear package no longer includes docs/ directory. These just contained 2176 rfc's, which are publicly available. This reduces the package from ~800k to 2177 ~60k 2178* Added: generatePropfindResponse now takes a baseUri argument 2179* Added: ResourceType property can now contain multiple resourcetypes. 2180* Fixed: Issue 13. 2181 2182 21830.10-alpha (2009-08-03) 2184----------------------- 2185 2186* Added: Plugin to automatically map GET requests to non-files to PROPFIND 2187 (Sabre_DAV_Browser_MapGetToPropFind). This should allow easier debugging of 2188 complicated WebDAV setups. 2189* Added: Sabre_DAV_Property_Href class. For future use. 2190* Added: Ability to choose to use auth-int, auth or both for HTTP Digest 2191 authentication. (Issue 11) 2192* Changed: Made more methods in Sabre_DAV_Server public. 2193* Fixed: TemporaryFileFilter plugin now intercepts HTTP LOCK requests to 2194 non-existent files. (Issue 12) 2195* Added: Central list of defined xml namespace prefixes. This can reduce 2196 Bandwidth and legibility for xml bodies with user-defined namespaces. 2197* Added: now a PEAR-compatible package again, thanks to Michael Gauthier 2198* Changed: moved default copy and move logic from ObjectTree to Tree class 2199 22000.9a-alpha (2009-07-21) 2201---------------------- 2202 2203* Fixed: Broken release 2204 22050.9-alpha (2009-07-21) 2206---------------------- 2207 2208* Changed: Major refactoring, removed most of the logic from the Tree objects. 2209 The Server class now directly works with the INode, IFile and IDirectory 2210 objects. If you created your own Tree objects, this will most likely break in 2211 this release. 2212* Changed: Moved all the Locking logic from the Tree and Server classes into a 2213 separate plugin. 2214* Changed: TemporaryFileFilter is now a plugin. 2215* Added: Comes with an autoloader script. This can be used instead of the 2216 includer script, and is preferred by some people. 2217* Added: AWS Authentication class. 2218* Added: simpleserversetup.py script. This will quickly get a fileserver up and 2219 running. 2220* Added: When subscribing to events, it is now possible to supply a priority. 2221 This is for example needed to ensure that the Authentication Plugin is used 2222 before any other Plugin. 2223* Added: 22 new tests. 2224* Added: Users-manager plugin for .htdigest files. Experimental and subject to 2225 change. 2226* Added: RFC 2324 HTTP 418 status code 2227* Fixed: Exclusive locks could in some cases be picked up as shared locks 2228* Fixed: Digest auth for non-apache servers had a bug (still not actually tested 2229 this well). 2230 2231 22320.8-alpha (2009-05-30) 2233---------------------- 2234 2235* Changed: Renamed all exceptions! This is a compatibility break. Every 2236 Exception now follows Sabre_DAV_Exception_FileNotFound convention instead of 2237 Sabre_DAV_FileNotFoundException. 2238* Added: Browser plugin now allows uploading and creating directories straight 2239 from the browser. 2240* Added: 12 more unittests 2241* Fixed: Locking bug, which became prevalent on Windows Vista. 2242* Fixed: Netdrive support 2243* Fixed: TemporaryFileFilter filtered out too many files. Fixed some of the 2244 regexes. 2245* Fixed: Added README and ChangeLog to package 2246 2247 22480.7-alpha (2009-03-29) 2249---------------------- 2250 2251* Added: System to return complex properties from PROPFIND. 2252* Added: support for {DAV:}supportedlock. 2253* Added: support for {DAV:}lockdiscovery. 2254* Added: 6 new tests. 2255* Added: New plugin system. 2256* Added: Simple HTML directory plugin, for browser access. 2257* Added: Server class now sends back standard pre-condition error xml bodies. 2258 This was new since RFC4918. 2259* Added: Sabre_DAV_Tree_Aggregate, which can 'host' multiple Tree objects into 2260 one. 2261* Added: simple basis for HTTP REPORT method. This method is not used yet, but 2262 can be used by plugins to add reports. 2263* Changed: ->getSize is only called for files, no longer for collections. r303 2264* Changed: Sabre_DAV_FilterTree is now Sabre_DAV_Tree_Filter 2265* Changed: Sabre_DAV_TemporaryFileFilter is now called 2266 Sabre_DAV_Tree_TemporaryFileFilter. 2267* Changed: removed functions (get(/set)HTTPRequest(/Response)) from Server 2268 class, and using a public property instead. 2269* Fixed: bug related to parsing proppatch and propfind requests. Didn't show up 2270 in most clients, but it needed fixing regardless. (r255) 2271* Fixed: auth-int is now properly supported within HTTP Digest. 2272* Fixed: Using application/xml for a mimetype vs. text/xml as per RFC4918 sec 2273 8.2. 2274* Fixed: TemporaryFileFilter now lets through GET's if they actually exist on 2275 the backend. (r274) 2276* Fixed: Some methods didn't get passed through in the FilterTree (r283). 2277* Fixed: LockManager is now slightly more complex, Tree classes slightly less. 2278 (r287) 2279 2280 22810.6-alpha (2009-02-16) 2282---------------------- 2283 2284* Added: Now uses streams for files, instead of strings. This means it won't 2285 require to hold entire files in memory, which can be an issue if you're 2286 dealing with big files. Note that this breaks compatibility for put() and 2287 createFile methods. 2288* Added: HTTP Digest Authentication helper class. 2289* Added: Support for HTTP Range header 2290* Added: Support for ETags within If: headers 2291* Added: The API can now return ETags and override the default Content-Type 2292* Added: starting with basic framework for unittesting, using PHPUnit. 2293* Added: 49 unittests. 2294* Added: Abstraction for the HTTP request. 2295* Updated: Using Clark Notation for tags in properties. This means tags are 2296 serialized as {namespace}tagName instead of namespace#tagName 2297* Fixed: HTTP_BasicAuth class now works as expected. 2298* Fixed: DAV_Server uses / for a default baseUrl. 2299* Fixed: Last modification date is no longer ignored in PROPFIND. 2300* Fixed: PROPFIND now sends back information about the requestUri even when 2301 "Depth: 1" is specified. 2302 2303 23040.5-alpha (2009-01-14) 2305---------------------- 2306 2307* Added: Added a very simple example for implementing a mapping to PHP file 2308 streams. This should allow easy implementation of for example a WebDAV to FTP 2309 proxy. 2310* Added: HTTP Basic Authentication helper class. 2311* Added: Sabre_HTTP_Response class. This centralizes HTTP operations and will be 2312 a start towards the creating of a testing framework. 2313* Updated: Backwards compatibility break: all require_once() statements are 2314 removed from all the files. It is now recommended to use autoloading of 2315 classes, or just including lib/Sabre.includes.php. This fix was made to allow 2316 easier integration into applications not using this standard inclusion model. 2317* Updated: Better in-file documentation. 2318* Updated: Sabre_DAV_Tree can now work with Sabre_DAV_LockManager. 2319* Updated: Fixes a shared-lock bug. 2320* Updated: Removed ?> from the bottom of each php file. 2321* Updated: Split up some operations from Sabre_DAV_Server to 2322 Sabre_HTTP_Response. 2323* Fixed: examples are now actually included in the pear package. 2324 2325 23260.4-alpha (2008-11-05) 2327---------------------- 2328 2329* Passes all litmus tests! 2330* Added: more examples 2331* Added: Custom property support 2332* Added: Shared lock support 2333* Added: Depth support to locks 2334* Added: Locking on unmapped urls (non-existent nodes) 2335* Fixed: Advertising as WebDAV class 3 support 2336 2337 23380.3-alpha (2008-06-29) 2339---------------------- 2340 2341* Fully working in MS Windows clients. 2342* Added: temporary file filter: support for smultron files. 2343* Added: Phing build scripts 2344* Added: PEAR package 2345* Fixed: MOVE bug identified using finder. 2346* Fixed: Using gzuncompress instead of gzdecode in the temporary file filter. 2347 This seems more common. 2348 2349 23500.2-alpha (2008-05-27) 2351---------------------- 2352 2353* Somewhat working in Windows clients 2354* Added: Working PROPPATCH method (doesn't support custom properties yet) 2355* Added: Temporary filename handling system 2356* Added: Sabre_DAV_IQuota to return quota information 2357* Added: PROPFIND now reads the request body and only supplies the requested 2358 properties 2359 2360 23610.1-alpha (2008-04-04) 2362---------------------- 2363 2364* First release! 2365* Passes litmus: basic, http and copymove test. 2366* Fully working in Finder and DavFS2. 2367 2368Project started: 2007-12-13 2369 2370[vobj]: http://sabre.io/vobject/ 2371[evnt]: http://sabre.io/event/ 2372[http]: http://sabre.io/http/ 2373[uri]: http://sabre.io/uri/ 2374[xml]: http://sabre.io/xml/ 2375[mi20]: http://sabre.io/dav/upgrade/1.8-to-2.0/ 2376[rfc6638]: http://tools.ietf.org/html/rfc6638 "CalDAV Scheduling" 2377[rfc7240]: http://tools.ietf.org/html/rfc7240 2378[calendar-availability]: https://tools.ietf.org/html/draft-daboo-calendar-availability-05 2379