Unrud
2a9f37defb
Repair authentication
2016-09-02 14:41:31 +02:00
Guillaume Ayoub
88d558f9fa
Remove useless nested tuples
2016-09-02 11:05:35 +02:00
Guillaume Ayoub
68e1e9dfb2
Don't use mutables in constants or parameters
2016-09-02 11:04:29 +02:00
Unrud
20b1480399
Make copy of headers before mutating
2016-09-02 04:23:47 +02:00
Unrud
f7e995f9f6
Move encoding of answer into response function
...
Fix #505
2016-09-02 04:10:11 +02:00
Guillaume Ayoub
e25373fa85
Merge pull request #501 from Unrud/httperrors
...
HTTP error messages
2016-08-31 14:49:19 +02:00
Guillaume Ayoub
8d92b371e4
Merge pull request #502 from Unrud/patch-40
...
Plain text for GET / instead of malformed HTML
2016-08-31 14:42:59 +02:00
Guillaume Ayoub
db681da08e
Merge pull request #500 from Unrud/loginuser
...
Map logins to internal users in Auth module
2016-08-31 14:40:08 +02:00
Unrud
f875bcd892
Plain text for GET / instead of malformed HTML
...
It's basically the same in browsers and looks nicer in tools that don't support HTML rendering (like curl).
2016-08-31 02:01:18 +02:00
Unrud
ff2b8f6e5c
Use NOT_FOUND instead of GONE
...
Thunderbird doesn't recognize the status code correctly and shows an synchronization error.
2016-08-31 01:54:31 +02:00
Unrud
1ea9b1dca9
Return error for GET requests on directories
...
Radicale doesn't support directory listings.
2016-08-31 00:45:14 +02:00
Unrud
4ac2e68f5c
Add HTTP error messages
...
Browsers just show a blank page if an error occurs. You have to open the developer tools to see the HTTP status code. E.g. a user wants to download a calendar in the browser and the URL is wrong.
Some tools like curl don't show any indication of an error.
2016-08-31 00:41:08 +02:00
Unrud
689e5c9dd5
Map logins to internal users in Auth module
...
This makes it possible to implement #349 as a Auth module. Another use case would be to encode usernames that contain characters unsupported by the file system.
2016-08-30 23:13:33 +02:00
Unrud
e782808a14
Remove empty line in log
...
Separating requests by an empty line doesn't work any longer with parallel (overlapping) requests.
2016-08-30 14:04:16 +02:00
Guillaume Ayoub
34ad1b9073
Remove useless import
2016-08-29 12:07:58 +02:00
Guillaume Ayoub
fd1742fcea
Fix typo
2016-08-29 12:07:30 +02:00
Guillaume Ayoub
9e78454da2
Merge branch 'remupdate' of https://github.com/Unrud/Radicale into Unrud-remupdate
2016-08-26 22:50:26 +02:00
Guillaume Ayoub
ac61b18237
Merge pull request #490 from Unrud/hook
...
Move hook into storage.Collection
2016-08-26 15:58:42 +02:00
Guillaume Ayoub
0e646cdae4
Merge branch 'Unrud-logging'
2016-08-25 11:52:12 +02:00
Unrud
c5342d36d5
Remove BaseCollection.update
...
I don't think that this can be used for optimizations.
It's useless in the filesystem backend, SQL has REPLACE and I doubt that there is much use in any other storage mechanism.
2016-08-25 06:37:12 +02:00
Unrud
10786cbad8
Move hook into storage.Collection
...
The hook is only valid for filesystem storage, it's meaningless for other backends like databases.
2016-08-25 05:40:46 +02:00
Unrud
8db580abce
Try to decode URLs with utf-8 ( Fixes #486 )
2016-08-25 05:30:46 +02:00
Unrud
3b71ab960e
Log exceptions ( Fixes #447 )
...
Exceptions were just written to stderr but not into logs.
2016-08-25 05:24:24 +02:00
Unrud
6515062bcd
Return HTTP status in xmlutils.propfind
2016-08-12 23:34:08 +02:00
Guillaume Ayoub
d3d29802ad
Merge pull request #474 from Unrud/patch-31
...
PROPFIND rights checking
2016-08-11 11:44:43 +02:00
Unrud
4eb04e3526
PROPFIND rights checking
...
Return 404 and 403 only when it's appropriate. Don't ask users for passwords if an item just doesn't exist (e.g. mistyped URL).
2016-08-11 02:19:48 +02:00
Unrud
e2b87d145f
Cosmetics: Don't use % for logging
2016-08-10 23:43:32 +02:00
Unrud
9192a7751b
Remove incorrect argument
...
In rare cases this can cause a crash.
2016-08-10 23:41:19 +02:00
Guillaume Ayoub
c4cf918bf2
Merge pull request #470 from Unrud/readcontent
...
Read content after access checks
2016-08-08 12:57:59 +02:00
Unrud
a9b89be5c7
Read content after access checks
...
Unauthorized users can't fill up RAM with crap anymore.
2016-08-08 07:00:24 +02:00
Unrud
f294b1cf17
Add access check to PROPFIND
2016-08-08 06:59:15 +02:00
Unrud
68286faa63
Atomic replacement of whole collection by PUT
2016-08-08 06:08:52 +02:00
Unrud
ee5b8facda
Always use wrapper to lock collection
...
Also run the hook after creation of the principal collection.
2016-08-07 17:14:47 +02:00
Unrud
23582c8208
Expose low level MOVE operation in storage.BaseCollection
2016-08-06 05:09:00 +02:00
Unrud
17ff22cae4
Support replacing in MOVE method
2016-08-06 04:45:44 +02:00
Unrud
89ac2fb397
Remove faulty check
...
This should have been (to_path.strip("/")+"/").startswith(path.strip("/")+"/").
But it's not required as we don't support moving collections.
2016-08-06 04:44:18 +02:00
Guillaume Ayoub
9aefc500ec
Merge pull request #461 from Unrud/patch-27
...
Remove old code
2016-08-05 17:48:03 +02:00
Unrud
6d77e24028
Remove old code
...
This was missed while merging #457 and #459 .
2016-08-05 17:05:32 +02:00
Unrud
65af0592d3
Run hook while storage is still locked
2016-08-05 16:58:03 +02:00
Guillaume Ayoub
8682504c6e
Strip empty lines from content
2016-08-05 02:25:15 +02:00
Guillaume Ayoub
26e1c9ba89
Fix collection creation with PUT request
2016-08-05 02:24:52 +02:00
Guillaume Ayoub
8ac3ce1a89
Clean many, many things
2016-08-05 02:14:49 +02:00
Guillaume Ayoub
92a0027ae1
Merge branch 'rights' of https://github.com/Unrud/Radicale into Unrud-rights
2016-08-04 23:35:01 +02:00
Unrud
066b5994d1
Improve rights checking and request handlers
...
* Access rights are checked before the storage is locked and
collections are loaded.
* DELETE sends 410 instead of doing nothing or crashing if the target
doesn't exist.
* GET always returns 404 if the target doesn't exist.
* GET doesn't crash if a collection without tag property is requested.
* MKCOL and MKCALENDAR send 409 if the target already exists.
* MOVE checks if the target collection of an item actually exists and
sends 409 otherwise.
* PUT doesn't crash if a whole collection that doesn't exist yet is
uploaded and ``content-type`` is ``text/vcard`` or
``text/calendar``.
* PUT distinguishes between simple items and whole collections by the
following criteria: Target is a collection; Parent exists; Parent
has the tag property set; Parent contains other items. Before only
the first two criteria where used, which was very unrelieable. #384
* PROPPATCH is only allowed on collections and 409 is send otherwise.
* ``Rights.authorized`` takes a path instead of a collection.
* ``Collection.discover`` only returns items in ``path``, that
actually exist. #442
2016-08-04 06:08:08 +02:00
Unrud
ae89082c24
Atomic creation of collections
2016-08-03 15:50:55 +02:00
Unrud
bd7641699e
Atomic PROPPATCH
2016-08-03 14:45:52 +02:00
Guillaume Ayoub
b71664b322
Return UNAUTHORIZED for NOT_FOUND PROPFINDs
2016-08-02 17:24:04 +02:00
Guillaume Ayoub
3e52f34309
Remove pylint
2016-08-02 14:39:20 +02:00
Guillaume Ayoub
301bb552d7
Cosmetics
2016-08-02 14:37:39 +02:00
Guillaume Ayoub
d322d3f394
Clean the user's collection creation code
2016-08-02 14:00:42 +02:00