Unrud
c29fd1ca61
Check that item is a collection
2016-08-13 00:19:14 +02:00
Unrud
cf4a6ef749
Revert 1ffc171f35
...
Maybe I misunderstand the RFC, but this properties are related to a principal collection. DAVdroid without preemptive authentication doesn't like this and tries to create calendars and addressbooks in /.
2016-08-13 00:17:50 +02:00
Unrud
4438d2ba9a
Require user for current-user-principal
...
DAVdroid dropped support for preemptive authentication in version 1.2.3.
Returning the DAV:unauthenticated pseudo-principal as specified in RFC 5397 doesn't seem to work for DAVdroid.
2016-08-12 23:41:34 +02:00
Unrud
6515062bcd
Return HTTP status in xmlutils.propfind
2016-08-12 23:34:08 +02:00
Florian Mounier
c95437367f
This is very important
2016-08-12 15:05:05 +02:00
Florian Mounier
416f9ddef1
Add an upload_all method for subsequent optimizations.
2016-08-12 14:58:32 +02:00
Guillaume Ayoub
8d863e52b2
Re-enable properties storage on al collections
...
Fix #475 .
2016-08-11 12:07:19 +02:00
Guillaume Ayoub
d3d29802ad
Merge pull request #474 from Unrud/patch-31
...
PROPFIND rights checking
2016-08-11 11:44:43 +02:00
Guillaume Ayoub
e66a35e996
Merge pull request #476 from Unrud/closelockfile
...
Add option to close lock file
2016-08-11 11:43:40 +02:00
Guillaume Ayoub
f395e256ff
Merge pull request #478 from Unrud/patch-33
...
Correctly write line endings to files
2016-08-11 11:43:18 +02:00
Unrud
9e84b459ae
Correctly write line endings to files
...
vobject uses \r\n as line endings. Writing this to a file is not a problem on Linux and newer versions of MacOS. On Windows \r\r\n gets written to disk and on older versions of MacOS \r\r gets written to disk, because python replaces \n by the system depended line ending.
2016-08-11 05:43:18 +02:00
Unrud
7a01f905de
Enable close_lock_file for tests
2016-08-11 05:20:31 +02:00
Unrud
3f5dd70580
Add option to close lock file
...
Close the lock file, when no more clients are waiting.
This option is not very useful in general, but on Windows files that are opened cannot be deleted. This causes tests to fail, because the deletion of the temporary filesystem folder fails.
2016-08-11 05:19:23 +02:00
Unrud
0060130c3b
Remove etags from raw data
...
Remove all etags that are directly calculated from data that's read from files.
1. They are not used anywhere (luckily).
2. Etags that are send to clients are calculated from the output of vobject's serialize method. If files are edited externally and vobject normalizes them (like wrapping long lines or replacing all line endings by \r\n), the etags that are sent to the client and the etags that are calculated from raw data will never match. If a new version of vobject is released and the formatting changes slightly, the checks will also always fail.
2016-08-11 05:05:10 +02:00
Guillaume Ayoub
35d12ee97e
Merge pull request #472 from Unrud/patch-30
...
Use os.replace instead of os.rename
2016-08-11 04:23:56 +02:00
Guillaume Ayoub
69386410e5
Merge pull request #473 from Unrud/tests
...
Tests
2016-08-11 04:23:23 +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
30b3273efa
Test that the requests fails if the hook fails
2016-08-11 00:37:19 +02:00
Unrud
2b45cffa0e
Test that hook gets executed when the principal collection is created
...
Test for ee5b8facda
2016-08-11 00:37:19 +02:00
Unrud
080ed31d27
Test that storage is locked when hook runs
...
Test for 65af0592d3
2016-08-11 00:37:19 +02:00
Unrud
952609deee
Test that hook gets executed on write accesses
2016-08-11 00:37:19 +02:00
Unrud
893051645e
Test fsync
...
Enable syncing for at least one test.
Test for 5c2075cb6c
.
2016-08-11 00:37:19 +02:00
Unrud
6d80b70b8c
Test that the root collection always exists
...
Test for 6c3e59fd11
2016-08-11 00:37:19 +02:00
Unrud
97edacd71a
Test implicit creation of principal collection
...
Test for 81b04890f1
2016-08-11 00:37:19 +02:00
Unrud
62892e3423
Test PROPPATCH
2016-08-11 00:37:13 +02:00
Unrud
51bf95f00d
Don't run all tests twice
...
Only verify that custom backend loading works with a simple test.
2016-08-11 00:32:24 +02:00
Unrud
c8e8993ec2
Refactor: Move common code into BaseFileSystemTest
2016-08-11 00:32:24 +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
Unrud
b8126f8d24
Use os.replace instead of os.rename
...
On Windows os.replace sets the MOVEFILE_REPLACE_EXISTING flag for MoveFileEx.
On POSIX it's the same as os.rename.
2016-08-10 19:26:07 +02:00
Guillaume Ayoub
5c2075cb6c
Fix _atomic_write
2016-08-08 14:55:01 +02:00
Guillaume Ayoub
5e5b8b844f
Cosmetics
2016-08-08 13:39:01 +02:00
Guillaume Ayoub
1e5c9f63a0
Merge pull request #468 from Unrud/disablefsync
...
Add option to disable syncing to disk
2016-08-08 13:00:12 +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
eb15de0c5b
Test PUT with whole collection
2016-08-08 06:09:24 +02:00
Unrud
68286faa63
Atomic replacement of whole collection by PUT
2016-08-08 06:08:52 +02:00
Unrud
0675328a02
Replace collection in Collection.create_collection
2016-08-08 06:08:01 +02:00
Unrud
6d85a731e5
Disable syncing to disk for tests
...
This reduces test time by almost 70%.
2016-08-08 05:30:16 +02:00
Unrud
f5f52582a1
Add option to disable syncing to disk
...
Disabling syncing increases the risk of data loss when the system crashes or power fails. On the positive it can increase the performance to a great extent.
2016-08-08 05:20:25 +02:00
Unrud
c336e0581e
Remove atomicwrites
...
Unfortunately the library doesn't support disabling of disk syncing, fortunately we only need a small subset of it's functionality which is easy to implement.
2016-08-08 05:02:36 +02:00
Unrud
3c736cade8
Refactor: Move sync_directory into Collection class
...
This is not used anywhere else.
2016-08-08 04:07:01 +02:00
Guillaume Ayoub
9f2cbb81a3
Merge pull request #466 from Unrud/fixpath
...
Set correct path for child collections
2016-08-07 18:43:41 +02:00
Unrud
ce0a2fd01d
Test PROPFIND
...
Regression test for cfa8c7d8b4
2016-08-07 18:08:10 +02:00
Unrud
cfa8c7d8b4
Set correct path for child collections
2016-08-07 17:50:31 +02:00
Unrud
4f37e90e20
Some clients expect collections to end with /
...
Compatibility with InfCloud/CalDavZAP/CardDavMATE
2016-08-07 17:50:04 +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
Guillaume Ayoub
4236077b04
Document _makedirs_synced and remove exist_ok
2016-08-06 14:08:21 +02:00
Guillaume Ayoub
4549d1b2db
Merge pull request #462 from Unrud/durabledirs
...
Durable creation of directories and make sure that the root colleciton exists.
2016-08-06 14:02:41 +02:00
Guillaume Ayoub
a7923008ce
Remove unused import
2016-08-06 13:29:07 +02:00
Guillaume Ayoub
0cda9f611d
Merge pull request #463 from Unrud/atomicmove
...
Atomic MOVE
2016-08-06 13:27:38 +02:00
Guillaume Ayoub
071a829af8
Merge pull request #453 from Unrud/delete
...
Delete atomic and durable
2016-08-06 12:52:38 +02:00
Unrud
5f66d009d6
Atomic MOVE in multifilesystem
2016-08-06 05:09:06 +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
Unrud
07dc71fd73
Update comment
2016-08-06 04:07:55 +02:00
Unrud
6c3e59fd11
Make sure that the root collection exists.
...
Since the collections are not directly in **filesystem_path** anymore,
the folder is not created by ``Collection.acquire_lock``.
2016-08-06 04:07:55 +02:00
Unrud
05a4285f54
Durable creation of intermediate directories
2016-08-06 04:07:50 +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
bfb7aec7be
Test deletion of root collection
2016-08-05 17:40:47 +02:00
Unrud
f4eb143ba8
use tempfile to delete collection
2016-08-05 17:40:47 +02:00
Unrud
5a9d956b49
delete atomic and durable
...
See #440
2016-08-05 17:40:47 +02:00
Unrud
9dd241a54b
Add test for deletion of collection
2016-08-05 17:40:47 +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
50438bc2c0
Remove fixed TODOs
2016-08-05 02:57:17 +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
Guillaume Ayoub
2eaedf448f
Merge pull request #457 from Unrud/atomiccreate
...
Atomic creation of collections and atomic PROPPATCH
2016-08-04 22:55:15 +02:00
Unrud
8ce6d1af30
Use flock locks for storage locking
...
These locks are compatible with the command line utility flock,
which comes preinstalled with most Linux distributions.
2016-08-04 06:15:05 +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
e34d1c46cd
Move collections into collection-root folder
...
This is required for atomic creation and deletion of the "/" collection.
2016-08-03 15:50:38 +02:00
Unrud
bd7641699e
Atomic PROPPATCH
2016-08-03 14:45:52 +02:00
Unrud
de510148a0
*args and **kwargs for test collection
2016-08-03 14:35:50 +02:00
Unrud
0fc7f787a8
Remove test_folder configuration
...
It's not used.
2016-08-03 14:34:36 +02:00
Guillaume Ayoub
b71664b322
Return UNAUTHORIZED for NOT_FOUND PROPFINDs
2016-08-02 17:24:04 +02:00
Guillaume Ayoub
76b859c28e
Rename .collection.props into .Radicale.props
2016-08-02 16:58:44 +02:00
Guillaume Ayoub
2f202d14e0
Fix .collection.props
2016-08-02 16:57:20 +02:00
Guillaume Ayoub
5b04ba18a8
Hide collection.props
2016-08-02 16:51:50 +02:00
Guillaume Ayoub
da22778ce3
Merge pull request #456 from Unrud/props
...
Properties inside of collection
2016-08-02 16:50:23 +02:00
Unrud
13c693ba35
Properties inside of collection
...
* Creation and deletion of collections can be atomic.
* The properties file of the root collection is not outside of the
filesystem_folder.
* It's easier to delete and move collections by hand.
* This breaks backward compatibility.
2016-08-02 16:35:38 +02:00
Guillaume Ayoub
1ffc171f35
Always return collections home sets
2016-08-02 16:27:18 +02:00
Guillaume Ayoub
5ed60ce09d
Always return current-user-principal
2016-08-02 15:43:31 +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
Guillaume Ayoub
04010ff8d3
Merge pull request #455 from Unrud/home
...
Creating addressbooks and calendars in DAVdroid
2016-08-02 13:51:29 +02:00
Guillaume Ayoub
71be1a56b8
Change find_available_file_name into private method
2016-08-02 12:11:38 +02:00
Guillaume Ayoub
a7f078eb54
Change find_available_file_name into a method
2016-08-02 11:16:24 +02:00
Guillaume Ayoub
880744ada7
Merge pull request #454 from Unrud/uniq
...
Check if file name already exists
2016-08-02 11:12:30 +02:00
Unrud
81b04890f1
Create principal collection automatically
2016-08-02 08:04:12 +02:00
Unrud
39d38f36a5
Check if file name already exists
...
The chances are pretty low but maybe the RNG is bad or something
2016-08-02 07:33:47 +02:00
Unrud
d5008672c5
Principal associated properties only on principal collections
...
This misguides DAVdroid into creating new calendars and addressbooks in /
2016-08-01 20:48:57 +02:00
Unrud
03cbcee5cd
/ is not a principal
2016-08-01 20:46:57 +02:00
Unrud
7aa481aaa1
Return / for principal-collection-set
...
From RFC3744: This protected property of a resource contains a set of URLs that identify the root collections that contain the principals that are available on the server that implements this resource.
2016-08-01 20:44:04 +02:00
Unrud
8f91190949
Remove duplicate code
2016-08-01 20:42:03 +02:00
Guillaume Ayoub
6b30870be5
Minor cleanups
...
Everything works fine with Apple clients now.
2016-08-01 19:00:57 +02:00
Guillaume Ayoub
b517818749
Don't reject everybody from "/" with owner_only
...
Fix 407.
2016-08-01 18:59:47 +02:00
Guillaume Ayoub
6bfdcbafec
Cosmetics
2016-08-01 12:50:51 +02:00
Guillaume Ayoub
711ecf5df2
Merge pull request #451 from Unrud/removewellknown
...
Remove /.well-known
2016-08-01 12:20:55 +02:00
Guillaume Ayoub
9d3086427d
Merge pull request #450 from Unrud/safeusernames
...
Prevent unsafe usernames
2016-08-01 12:14:40 +02:00
Unrud
9dd8c65d65
Always match full username/collection with regex
...
It's easy to forget $ at the end of a regex and it's counter-intuitive that ^ is implicit but $ is not.
2016-08-01 10:07:21 +02:00
Unrud
fd977891e8
Remove /.well-known
...
I can't think of a sane use-case for this.
2016-08-01 09:31:25 +02:00
Unrud
da1a693620
Prevent unsafe usernames
...
If an attacker is able to create an account with a username like "user/calendar.ics", he can access collections of other users.
2016-08-01 09:10:23 +02:00
Guillaume Ayoub
b3d8833779
Normalize the version number
2016-07-30 16:43:29 +02:00
Guillaume Ayoub
dc406c17fd
Merge pull request #425 from Unrud/patch-19
...
Don't silently drop files
2016-07-30 15:28:35 +02:00
Guillaume Ayoub
62588477f6
Merge pull request #429 from Unrud/hook
...
Add hook for storage changes
2016-07-30 15:26:17 +02:00
Guillaume Ayoub
0a2d12a4a3
Merge pull request #445 from Unrud/patch-24
...
Point well-known to /
2016-07-30 15:25:01 +02:00
Unrud
0306ee6dcc
Point well-known to /
...
Fixes #431
2016-07-14 10:13:20 +02:00
Unrud
21d7d5a453
Hide temporary files
...
Fixes #443
2016-07-14 09:09:10 +02:00
Unrud
0a32e46295
Improve error message
2016-07-14 08:08:08 +02:00
Unrud
e3d7d08eab
Don't silently drop files
2016-07-14 08:08:08 +02:00
Unrud
0263251ecf
Add hook for storage changes
2016-07-14 07:57:46 +02:00
Guillaume Ayoub
ef63865e31
Merge pull request #428 from Unrud/patch-22
...
Add timeout to connections, limit size of request body and limit number of parallel connections
2016-07-14 02:06:24 +02:00
Guillaume Ayoub
5bd80d8d13
Don't crash when getting unknown collections
...
Fix #422 .
2016-07-14 01:39:57 +02:00
Guillaume Ayoub
4c91ee8906
Atomic writes ( fix #440 )
2016-07-14 01:14:42 +02:00
Guillaume Ayoub
5e5427f987
Cosmetics
2016-07-13 17:59:52 +02:00
Florian Mounier
eb1f964ee2
Fix docstring
2016-07-12 18:12:42 +02:00
Florian Mounier
9225fd5fbd
Add a test for update
2016-07-12 18:08:01 +02:00
Florian Mounier
6f9e9f21dd
Merge branch 'optimize_storage_collection'
2016-07-08 15:35:43 +02:00
Florian Mounier
2ff47620f8
Merge branch 'date_indexed_collection'
2016-07-08 11:39:15 +02:00
Florian Mounier
36333765d6
Merge branch 'test_in_radicale'
2016-07-08 11:38:09 +02:00
Florian Mounier
39823f8909
Add a pre_filtered_list method in collection. This allow filters optimizations
2016-07-08 11:37:30 +02:00
Florian Mounier
a2d6977cd6
Fix logic in loops
2016-07-07 17:53:35 +02:00
Florian Mounier
10e7a776fc
Merge branch 'master' into optimize_storage_collection
2016-07-07 17:52:16 +02:00
Guillaume Ayoub
8c225f019c
Fix support of recurring events
2016-07-07 17:49:56 +02:00
Florian Mounier
364ed3689d
Optimise collection creation by avoiding nested_loop
2016-07-07 16:13:32 +02:00
Florian Mounier
9056561211
Move test inside radicale
2016-07-07 14:30:10 +02:00
Guillaume Ayoub
21461ddb4e
Fix name_from_path
2016-07-06 17:11:12 +02:00
Guillaume Ayoub
6a4fe6beb5
Add a very, very important full stop.
2016-07-05 18:07:36 +02:00
Florian Mounier
a7549bc652
Split the main run function to allow the use of radicale serving programatically. Add an extra_config parameter to the config load to override config.
2016-07-05 17:50:40 +02:00
Florian Mounier
383409213e
deflate seems to be problematic with different implementations ( http://stackoverflow.com/questions/388595/why-use-deflate-instead-of-gzip-for-text-files-served-by-apache/388633#388633 ). Using gzip instead.
2016-07-04 17:00:43 +02:00
Guillaume Ayoub
9300d25d61
Update __main__.py
2016-07-04 14:35:38 +02:00
Florian Mounier
221379ef85
Sort imports
2016-07-04 14:32:33 +02:00
Guillaume Ayoub
fd3b0718fd
Fix coding style
2016-07-01 16:44:12 +02:00
Guillaume Ayoub
c294477aee
Support recurring items in time filters
...
Fix #33 .
2016-07-01 16:40:43 +02:00
Guillaume Ayoub
5b5edaac2f
Fix FCGI and WSGI scripts
2016-07-01 10:28:51 +02:00
Guillaume Ayoub
4e8f518cbb
Remove spaces from empty lines
2016-06-26 21:23:29 +02:00
Nicolas Bonfante
dfc215b63f
solving bug when trying to filter an Event on a DATETIME which have no timezone
2016-06-24 14:02:35 +02:00
Nicolas Bonfante
4872ea5d58
correcting bug in test vjournal
2016-06-15 18:09:09 +02:00
Cedric Boscher
e4e1d81f9f
debug on tests
2016-06-15 18:01:19 +02:00
Nicolas Bonfante
1613c4955f
adding test for Vjournal filtering
2016-06-15 16:17:51 +02:00
Nicolas Bonfante
38845da762
solve bug in vjournal time filter
2016-06-15 15:48:35 +02:00
Cedric Boscher
a5d5cc8b2c
debug VTODO and first tests running
2016-06-15 15:45:27 +02:00
Cedric Boscher
2957b40473
clean code
2016-06-15 10:16:44 +02:00
Cedric Boscher
21ea648a44
Merge branch 'master' of github.com:Kozea/Radicale
2016-06-15 09:56:16 +02:00
Cedric Boscher
7de63f8335
VTODO first implementation
2016-06-15 09:56:05 +02:00
Nicolas Bonfante
e1f3045f1f
adding VJournal method
2016-06-15 09:55:30 +02:00
Guillaume Ayoub
40406359e5
Merge pull request #423 from Unrud/patch-17
...
Resolve naming conflict
2016-06-13 15:08:33 +02:00
Guillaume Ayoub
9592ec3a66
Merge pull request #424 from Unrud/patch-18
...
Fix time range matching
2016-06-13 15:08:01 +02:00
Guillaume Ayoub
caa4c16dfd
Merge pull request #426 from Unrud/patch-20
...
Ignore hidden files
2016-06-13 15:07:24 +02:00
Unrud
83ea9da2b4
Limit number of parallel connections
2016-06-11 13:19:26 +02:00
Unrud
e438d9fd4b
Limit size of request body
2016-06-11 13:16:45 +02:00
Unrud
b55d2181ed
Add timeout to integrated sever
2016-06-11 13:14:58 +02:00
Unrud
d4e6205745
Don't include passwords in logs
2016-06-11 12:58:28 +02:00
Unrud
54b47c4a3e
Refactor: Move response code into function
2016-06-10 14:55:32 +02:00
Unrud
39379413d1
Use hidden file for locking
2016-06-10 01:18:02 +02:00
Unrud
3479e76690
Ignore hidden files
2016-06-10 01:17:57 +02:00
Unrud
3e1e680bbc
Use correct attribute name
2016-06-10 00:02:07 +02:00
Unrud
74d84e0c91
Resolve naming conflict
2016-06-09 23:52:05 +02:00
Guillaume Ayoub
063e827588
Revert "Try to use UID as filename"
...
This reverts commit 0b25c82d9d
.
See #419 .
2016-05-30 19:05:58 +02:00
Guillaume Ayoub
f1f716b0c7
Merge pull request #419 from Unrud/patch-16
...
Save all items with the same UID in the same file
2016-05-30 19:03:25 +02:00
Guillaume Ayoub
5b6f0784d0
Merge branch 'master' of github.com:Kozea/radicale
2016-05-30 14:53:41 +02:00
Guillaume Ayoub
248fc7e9e3
Implement time-range filters for events
2016-05-30 14:53:20 +02:00
Guillaume Ayoub
13a7f2f9af
Merge pull request #417 from Unrud/patch-14
...
Allow creation of empty collection via PUT
2016-05-30 11:23:27 +02:00
Guillaume Ayoub
b0ed18af05
Merge pull request #416 from Unrud/patch-13
...
Always release lock
2016-05-30 11:08:48 +02:00
Unrud
0b25c82d9d
Try to use UID as filename
2016-05-29 03:38:35 +02:00
Unrud
5c90f5b2af
Save all items with the same UID in the same file
...
If recurrences are not in the same file, they are not correctly shown by clients.
2016-05-29 03:32:06 +02:00
Unrud
4861b79878
Allow creation of empty collection via PUT
2016-05-29 01:18:29 +02:00
Unrud
af1dce1504
Fix crash on unknown content type
2016-05-28 23:49:15 +02:00
Unrud
28e643dec1
Don't pass None to vobject.readComponents
...
If an empty collections is created with PUT, content is None.
2016-05-28 22:46:20 +02:00
Unrud
9ade92c026
Always release lock
2016-05-28 22:36:40 +02:00
Guillaume Ayoub
656680d998
Merge branch 'master' of github.com:Kozea/radicale
2016-05-27 14:45:43 +02:00
Guillaume Ayoub
fef9f0abc6
Support param-filter
2016-05-27 14:44:59 +02:00
Unrud
ecbffe69dc
Veify Authorization Scheme
2016-05-26 12:21:09 +02:00
Guillaume Ayoub
da1363f026
Revert "Limit duration of file locks"
...
This reverts commit 6b1acd14d7
.
2016-05-25 14:05:34 +02:00
Guillaume Ayoub
69ec2891fa
Remove at_once
2016-05-25 14:05:05 +02:00
Guillaume Ayoub
a3c32ee77f
Merge pull request #402 from Unrud/locking
...
Implement locking of whole storage
2016-05-25 14:03:48 +02:00
Guillaume Ayoub
4fc5e3135a
Update documentation of path_to_filesystem
2016-05-24 14:39:41 +02:00
Guillaume Ayoub
f8c8bd9d9b
Merge pull request #403 from Unrud/patch-9
...
Don't sanitize local paths using posixpath
2016-05-24 14:36:34 +02:00
Unrud
6b1acd14d7
Limit duration of file locks
...
This prevents starvation of writers in other processes
2016-05-22 23:44:21 +02:00
Unrud
14daa88772
Use FIFO for storage locking
...
This prevents starvation of writers in the current process
2016-05-22 23:29:00 +02:00
Unrud
1ea9a33101
Reuse lock file
2016-05-22 10:29:56 +02:00
Unrud
49bc0728e3
Only one lock file per process (lockf() works now)
...
lockf() is more portable than flock()
2016-05-22 10:29:56 +02:00
Unrud
eb9218354c
Always use readers-writer lock in storage locking
2016-05-22 10:29:56 +02:00
Unrud
bca6cec6b3
Use context manager for locking
2016-05-22 10:29:50 +02:00
Unrud
a24613da9c
Compress answer
...
The protocol uses verbose XML and compression reduces the size significantly.
2016-05-21 02:26:03 +02:00
Unrud
de2f411820
Use nonlocal instead of container
...
Python 3
2016-05-21 01:49:22 +02:00
Unrud
b810d61ce3
Don't sanitize local paths using posixpath
...
This doesn't work as expected on Windows.
2016-05-21 01:41:00 +02:00
Unrud
ff3b31fed6
Use threading in integrated webserver
2016-05-21 01:26:52 +02:00
Unrud
2c45b1998c
Implement locking of whole storage
2016-05-21 01:26:45 +02:00
Guillaume Ayoub
68b72f55eb
Merge pull request #398 from untitaker/unbound
...
Fix UnboundLocalError
2016-05-18 22:47:37 +02:00
Markus Unterwaditzer
eea6ccb573
Fix UnboundLocalError
2016-05-18 22:43:56 +02:00
Guillaume Ayoub
a8fda1aedf
Cut long lines
2016-05-18 22:41:05 +02:00
Guillaume Ayoub
6769629314
Remove useless empty function
2016-05-18 20:22:36 +02:00
Guillaume Ayoub
45576d7474
Handle text-match filters
...
Related to #33 .
2016-05-18 20:21:03 +02:00
Guillaume Ayoub
20ff5444fb
Don't explicitely inherit from object
2016-05-12 18:57:59 +02:00
Guillaume Ayoub
ca056dea9f
Don't return 404 for GET requests on collections
2016-05-12 18:55:03 +02:00
Guillaume Ayoub
2ce9fceaff
Merge branch 'master' of github.com:Kozea/radicale
2016-05-06 17:57:58 +02:00
Guillaume Ayoub
a28df4dd4b
Reorganize filters
...
Related to #33 and #372 .
2016-05-06 17:53:02 +02:00
Markus Unterwaditzer
2dee66133d
Flake8 fixes
2016-05-04 19:25:58 +02:00
Markus Unterwaditzer
0de3ad36be
Fixes to Rights
...
- BaseRights expects the config and logger params
- user may be None, which leads to errors when trying to use it with
regexes.
2016-04-22 20:30:40 +02:00
Guillaume Ayoub
2f97d7d1e1
Remove global state about configuration and logs
...
Many things have been changed to make this possible, probably leading to
many hidden bugs waiting to be found.
Related to #122 .
2016-04-22 11:37:02 +09:00
Jasper Bryant-Greene
0670aa9fb4
Corrected calendar-timezone code in xmlutils.py
2016-04-21 10:40:36 +05:30
Guillaume Ayoub
6db946080e
Cosmetics
2016-04-21 09:12:00 +09:00
Markus Unterwaditzer
7f2d1c00c4
Unbreak tag filters
2016-04-20 20:17:05 +02:00
Guillaume Ayoub
303a53eede
Return Items in upload and update methods
...
Related to #380
2016-04-20 08:09:00 +09:00
Guillaume Ayoub
ecf53c5e1e
Merge branch 'master' of github.com:Kozea/radicale
2016-04-20 07:50:58 +09:00
Guillaume Ayoub
3a9bcc7555
Add etag property to items
...
Related to #380 .
2016-04-20 07:49:03 +09:00
Markus Unterwaditzer
1b1ba421ff
Fix double slash in REPORT responses
...
When doing REPORTs with absolute paths as hrefs, the response hrefs
contain a double slash at the beginning. This breaks URL parsers and
makes them assume they have a URL without protocol of the format
`//example.com/foo/bar/`.
2016-04-19 23:19:22 +02:00
Guillaume Ayoub
bf8bd90bcb
Fix removal of base_prefix in multiget requests
2016-04-19 10:44:02 +09:00
Guillaume Ayoub
6adc7f5fed
Enhance collection discovering
...
When the request path leads to a non-existing item, try to create the
Collection object according to an existing collection at request path's
parent.
This change means that the requests whose path leads to a collection
that doesn't exist (at least MKCOL, MKCALENDAR and PUT) need to rely on
the request path more than on the Collection path. It was already done
for PUT, it's been fixed for MKCOL and MKCALENDAR.
Fix #378 .
2016-04-19 10:39:52 +09:00
Guillaume Ayoub
65659fc909
Improve WebDAV compatibility
...
Add getlastmodified and getcontentlength properties, and fix nested
collections support. Fix #321 .
2016-04-18 09:11:00 +09:00
Guillaume Ayoub
99544fcf80
Allow the creation of empty collections
...
Fix #201
2016-04-17 13:58:56 +09:00
Markus Unterwaditzer
e8c1defe6a
Update PROPPATCH to new storage API
2016-04-13 23:02:00 +02:00
Markus Unterwaditzer
472d016d1e
Fix crash when fetching nonexistent href
2016-04-13 22:56:57 +02:00
Markus Unterwaditzer
f169f2f19b
Don't crash if collection doesn't exist yet
2016-04-13 22:09:00 +02:00
Markus Unterwaditzer
a1cdcf2fba
Don't crash if propsfile doesn't exist
2016-04-12 22:43:10 +02:00
Guillaume Ayoub
e586569b31
Fix a lot of details
2016-04-12 18:21:18 +02:00
Guillaume Ayoub
406027f3c9
Change the Collection API
...
The new API used comes from vdirsyncer, as proposed by @untitaker in
issue #130 .
The code has been tested and works with the (too simple) unit tests, and
with Lightning and DAVdroid. Many things are broken and a good part of
the code has not be ported to the new API yet. TODOs have been added
where the application is known to be broken.
2016-04-11 20:11:35 +02:00
Guillaume Ayoub
2408097ab9
Clean the storage module
2016-04-10 02:37:43 +02:00
Guillaume Ayoub
41e319a8b8
Merge ical and storage modules
2016-04-10 02:08:07 +02:00
Guillaume Ayoub
73d39ea572
Use vobject
2016-04-10 01:36:45 +02:00
Guillaume Ayoub
b495bfa59f
Remove pathutils
2016-04-09 22:45:14 +02:00
Guillaume Ayoub
12ddd64884
Fix the management of paths
2016-04-09 22:44:34 +02:00
Guillaume Ayoub
7a0e267f19
Better collection discovery
2016-04-09 15:11:47 +02:00
Guillaume Ayoub
44ba2c36a7
Merge branch 'master' of https://github.com/hadleyrich/Radicale
2016-04-08 15:05:56 +02:00
Guillaume Ayoub
7e493f73cd
Remove backslash
2016-04-08 14:46:38 +02:00
Guillaume Ayoub
e2b6bc3008
Remove old workaround
2016-04-08 14:46:17 +02:00
Guillaume Ayoub
54dee0c7c4
Clean tests
2016-04-07 19:25:10 +02:00
Guillaume Ayoub
595e2329ea
Don't create collections on GET requests
2016-04-07 19:03:27 +02:00
Guillaume Ayoub
1001bcb676
Remove extra auth, rights and storage modules
2016-04-07 19:02:52 +02:00
Guillaume Ayoub
434cb533e9
Remove Python 2 support
2016-03-31 19:57:40 +02:00
Guillaume Ayoub
fa4eaef08e
Merge pull request #353 from Unrud/patch-7
...
Integrated server without busy waiting
2016-03-31 19:24:43 +02:00
Guillaume Ayoub
f27ed8e6ff
Merge pull request #363 from igogold/readonly-collections
...
Fix privilege set for read only collection
2016-03-31 19:23:47 +02:00
Guillaume Ayoub
2ea35a2fc3
Merge pull request #209 from vuntz/no-autocreate-multifilesystem
...
Do not autocreate .props files for multifilesystem backend
2016-03-10 18:48:29 +01:00
igogold
aa04aa04b7
Fix privilege set for read only collection
2016-03-04 11:05:13 +05:00
Unrud
bbe71c1ad1
Integrated server without threads and busy waiting
2016-01-27 07:17:38 +01:00
Guillaume Ayoub
3a4184d1ab
Merge pull request #351 from Unrud/patch-6
...
Quick fix for multifilesystem
2016-01-15 10:54:47 +01:00
Guillaume Ayoub
060d265129
Merge branch 'master' of github.com:Kozea/radicale
2016-01-15 10:51:24 +01:00
Guillaume Ayoub
9a2668e425
Fix the Collection._parse docstring
2016-01-15 10:50:36 +01:00
Unrud
a55cff8eb6
Also remove items from the collections itself
2016-01-15 01:13:18 +01:00
Unrud
5081fcbcd1
Use component names to filter duplicates
2016-01-15 01:09:43 +01:00
Unrud
6be7dab03f
Correct function name
2016-01-14 23:07:53 +01:00
Guillaume Ayoub
f8b068e9fe
Version 1.1.1
2016-01-07 23:31:19 +01:00
Guillaume Ayoub
83304c1378
Stupid me, that was PEP 20 (fix 347 for Python 2 too)
2016-01-06 21:44:20 +01:00
Guillaume Ayoub
620d9f8316
Readability counts - PEP8™ ( fix #347 )
2016-01-06 20:19:12 +01:00
Guillaume Ayoub
e47b50421e
Version 1.1
2015-12-31 12:51:23 +01:00
Guillaume Ayoub
e7ce00d54f
Style
2015-12-31 12:49:41 +01:00
Guillaume Ayoub
b484d42547
Merge pull request #335 from Kozea/permissions
...
Use the first matching section for getting rights
2015-12-31 11:30:29 +01:00
Guillaume Ayoub
20960bee84
Merge pull request #339 from Unrud/patch-2
...
Improve daemonization
2015-12-24 16:00:39 +01:00
Unrud
eed37792ae
Convert filesystem paths safely to paths
...
This only becomes a problem if the OS/filesystem
allows / in filenames or . respectively
.. as filenames.
2015-12-24 14:39:29 +01:00
Unrud
bcaf452e51
Convert component names safely to filenames
...
Component names are controlled by the user and
without this checks access to arbitrary files is
possible if the multifilesystem backend is used.
2015-12-24 14:39:29 +01:00
Unrud
b4b3d51f33
Convert paths safely to file system paths
...
With the old implementation on Windows a path like
"/c:/file/ignore" got converted to "c:\file" and
allowed access to files outside of FOLDER
2015-12-24 14:39:29 +01:00
Unrud
6b7e79a368
Use sanitize_path instead of normpath
...
See a7b47f075499a1e1b40539bc1fa872a3ab77a204
The check for "." is now needless because the sane
path is always absolute.
```path.replace(os.sep, "/")``` is only relevant
for the (multi)filesystem backend and should be
there.
2015-12-24 14:39:24 +01:00
Unrud
1ad994cadf
Move sanitize_path into pathutils.py
2015-12-24 14:39:15 +01:00
Unrud
ed44830447
Error message if path not starting with prefix
...
Before the program crashed implicitly
2015-12-24 14:32:21 +01:00
Unrud
780cecc0f2
Always sanitize request URI
...
Do no rely on the HTTP server
2015-12-24 14:32:21 +01:00
Unrud
ee095a463d
Improve URI sanitation
...
The old implementation failed to sanitize URIs
like ".", "..", "../.." or "//"
2015-12-24 14:32:21 +01:00
Unrud
592537e37c
Introduce naming scheme for request handlers
...
The do_ prefix and upper case name allows easy
distinction between methods that handle requests
and other methods.
Without this distinction an attacker could
call arbitrary methods.
Currently there is no method that matches the
argument count, but that's easy to miss when new
methods are added.
2015-12-24 07:22:55 +01:00
Unrud
4bfe7c9f79
Prevent "regex injection"
...
If an attacker is able to authenticate with a user name like .* he can bypass limitations imposed by "owner_write" and "owner_only".
2015-12-23 07:05:20 +01:00
Unrud
7cb31fe22b
Improve regex for Well-Known URIs
...
Example to show the problem:
/Xwell-known/carddavXX
2015-12-22 12:44:19 +01:00
Unrud
367ca6fcbf
Replace standard file descriptors of daemon
...
Overwriting ```sys.stdout``` and ```sys.stderr``` is not sufficient.
(e.g. the logger still uses the old file descriptors)
2015-12-22 08:50:16 +01:00
Unrud
ecb8ad747e
Decouple the daemon from its parent environment
2015-12-22 08:50:16 +01:00
Unrud
3a9238f670
Check and create PID file in a race-free manner
2015-12-22 08:50:16 +01:00
Unrud
0a09804821
Close PID file
2015-12-22 08:49:58 +01:00
Unrud
80ecae40cb
Assign new items to correct key
2015-12-10 09:46:38 +01:00
Guillaume Ayoub
e807c3d35b
Use the first matching section for getting rights
2015-12-03 15:22:12 +01:00
Guillaume Ayoub
7b82121c12
Encode message and committer for git commits ( fix #313 )
2015-09-22 11:01:33 +02:00
Guillaume Ayoub
6babebd315
Version 1.0.1
2015-09-21 12:14:51 +02:00
Guillaume Ayoub
377762e23c
Version 1.0
2015-09-14 11:49:34 +02:00
Guillaume Ayoub
f112a9b390
Merge pull request #305 from untitaker/database-props
...
Don't discard PROPPATCH on empty collections.
2015-08-28 11:26:10 +02:00
Markus Unterwaditzer
57b1ccdea5
Fix crash on empty values
2015-08-21 20:11:44 +02:00
Markus Unterwaditzer
213cb40480
Don't discard PROPPATCH on empty collections.
2015-08-21 20:08:56 +02:00
Markus Unterwaditzer
d300949fe8
Improve errorhandling in multifilesystem
...
If the collection doesn't exist yet, OSError(2, 'No such file or
directory') is raised.
https://travis-ci.org/untitaker/vdirsyncer/jobs/42540595
2015-08-21 16:17:00 +02:00
Guillaume Ayoub
ce9fd74d98
Merge pull request #260 from deronnax/not_found_instead_of_gone
...
change GET response from GONE to NOT FOUND when item is not found
2015-08-21 15:34:59 +02:00
Stephen Paul Weber
2de4f53fc3
Use PAM service
...
This allows authentication types to be customised for radicale.
2015-08-11 16:46:46 -05:00
Guillaume Ayoub
b4438d25f7
Cosmetics in htpasswd
2015-07-29 14:00:49 +02:00
Jan-Philip Gehrcke
3abbdcf671
htpasswd.py: add optional MD5-APR1 and BCRYPT support via passlib.
...
- Update docstring for optional MD5-APR1/BCRYPT support via passlib.
- Support the "md5" and "bcrypt" htpasswd_encryption config values.
- Conditionally import the required passlib components if either
"md5" or "bcrypt" is requested in the configuration file.
- Test bcrypt backend availability upon import.
- First define verification functions, then conditionally import
external dependencies.
- Consolidate: use context manager for reading credential file.
- Consolidate: save one call to strip() while parsing.
- Consolidate: break long lines, clarify comments and docstrings.
- Consolidate: use verification function mapping for improving maintainability.
2015-07-29 13:12:18 +02:00
Guillaume Ayoub
22a356bd06
Merge branch 'master' of github.com:Kozea/radicale
2015-07-24 16:01:38 +02:00
Guillaume Ayoub
8604593512
Fix many tests and database storage
2015-07-24 16:01:03 +02:00
Giel van Schijndel
a06e4ef075
PROPFIND: correctly handle 'propall' and 'propnames'
...
* Handle both the explicit <propall/> and its implicit variants
- the missing request-body case was already handled
- the empty request-body case wasn't
- the explicit (a request-body containing <propall/>) wasn't either
* <propnames/> now lists all retrievable properties
Signed-off-by: Giel van Schijndel <me@mortis.eu>
2015-06-26 13:33:10 +02:00
Hadley Rich
54d71355d1
Change xmlutils propfind to return readonly calendars
2015-06-04 11:23:01 +12:00
Liam
ba5d38d09b
Fix typo
2015-05-15 13:47:44 +01:00
Matthew Monaco
bf96d4a1fa
Use path for git commit message
...
The hard-coded message isn't very helpful, and that info is shown by the
author when looking at single line logs.
2015-05-04 13:33:52 -06:00
Guillaume Ayoub
ced7e76ba0
Small style fixes
2015-05-01 10:31:25 +02:00
Guillaume Ayoub
675f9d1f87
Merge pull request #255 from jspricke/fix_FutureWarning
...
Fix FutureWarning, explicitly test prop_element for None
2015-05-01 10:22:38 +02:00
Guillaume Ayoub
4cbabd2840
Merge pull request #259 from untitaker/issue258
...
Fully fix #258
2015-04-29 19:13:25 +02:00
Guillaume Ayoub
c249e080af
Merge pull request #273 from untitaker/issue117
...
Fix another instance of #117
2015-04-29 19:09:38 +02:00
Guillaume Ayoub
a0fc07a894
Allow content-types with ';' in charset, fix #279
2015-04-29 19:08:20 +02:00
Guillaume Ayoub
e69bec1272
Don't rely on case-sensitive imports, fix #282
...
We should burn PEP 235, bicameral scripts, encodings, Python2/3 compatibility,
Windows, MacOS X, filenames, unicode (including composite characters), and the
whole world. And LF/CR too, of course.
Let's recreate a language relying on only two characters. Anyone interested?
2015-04-29 18:55:56 +02:00
Markus Unterwaditzer
baa958c81f
Fix compatibility for PAM auth
...
PR #280 invoked `pam.authenticate().authenticate()` for older versions
of python-pam. Also, this version avoids monkeypatching the PAM module.
2015-04-25 11:14:04 +02:00
Jeremy Archer
dd01087520
Add compatibility patch for .authenticate().
...
Current version of python-pam (https://pypi.python.org/pypi/python-pam/1.8.1 ) have changed the API slightly; this patch fixes these bugs.
2015-04-19 22:41:58 -05:00
Markus Unterwaditzer
78e203a2b9
Fix another instance of #117
2015-03-22 12:25:54 +01:00
deronnax
5b8333c2b0
change GET response from GONE to NOT FOUND when item is not found
2015-02-09 11:03:06 +01:00
Markus Unterwaditzer
1126f318af
Fully fix #258
...
If I do REPORT requests, the following line would raise a KeyError:
items = [collection.items[name]]
Wrapping it with a try-except block obviously fixes that issue.
At least for REPORT requests, Radicale now also returns proper HTTP
status codes when items or just its properties couldn't be found.
2015-02-08 17:52:55 +01:00
Guillaume Ayoub
a7700f9805
Don't crash when getting unknown events ( fix #258 )
2015-02-08 17:11:29 +01:00
Guillaume Ayoub
2c4b335fad
Clean the ical API
2015-02-07 17:26:20 +01:00
Guillaume Ayoub
46628b7a19
Add missing blank line
2015-02-07 16:06:41 +01:00
Guillaume Ayoub
99575d69ca
Clean some ical methods
2015-02-07 15:39:57 +01:00
deronnax
fbbbaae646
indexed items storage
...
Conflicts:
radicale/storage/filesystem.py
2015-02-07 14:23:51 +01:00
deronnax
240125aca7
don't pick timezones when asking for contacts
2015-02-07 14:11:43 +01:00
deronnax
0456d166cc
simpler and faster unfold function
2015-02-07 14:11:18 +01:00
Jochen Sprickerhof
c43b473c4a
Fix FutureWarning, explicitly test prop_element for None
2015-01-23 14:41:41 +01:00
Guillaume Ayoub
727b686089
Merge branch 'master' of github.com:Kozea/radicale
2015-01-12 18:43:07 +01:00
Guillaume Ayoub
7135367640
Version 0.10
2015-01-12 18:40:42 +01:00
Guillaume Ayoub
7772d11565
Merge pull request #202 from muggenhor/less-verbose-imap-ssl-warn
...
IMAP: don't spam the logs about non-SSL connections to localhost
2015-01-12 18:30:43 +01:00
Guillaume Ayoub
abb1de883b
Allow PUT requests to change the whole calendar (see #250 )
2015-01-05 15:45:24 +01:00
Guillaume Ayoub
6e715912f6
Handle headers other than PRODID and VERSION ( fix #250 )
2015-01-05 12:32:22 +01:00
Guillaume Ayoub
f2fc02501c
Merge pull request #226 from meyerd/master
...
Only iterate props in REPORT request if they are there
2014-12-14 16:50:22 +01:00
Felix Lange
20b1a29149
fix color support
...
5f2245c35f
introduced an additional alias for the
http://apple.com/ns/ical namespace. this can cause problems.
2014-11-11 21:26:29 +01:00
Marc Kleine-Budde
13c61bf936
auth/htpasswd: add support for salted sha1 passwords
...
This patch adds support for salted sha1 passwords.
2014-11-09 01:00:23 +01:00
Guillaume Ayoub
ea97c014b7
Don't crash because of missing SIGHUP on Windows
...
Fix #229 .
2014-11-03 11:21:12 +01:00
Dominik
b561d1428b
only iterate props in REPORT request if they are there
2014-10-25 20:28:50 +02:00
Guillaume Ayoub
c932ba230e
Fix Python 3 compatibility
2014-10-22 16:28:08 +02:00
Guillaume Ayoub
33bee79f73
Merge pull request #191 from bouttier/reload-logger-config
...
Reload logger config on SIGHUP
2014-10-22 14:17:23 +02:00
Guillaume Ayoub
1c4c41ad0e
Merge pull request #211 from vuntz/delete-multifilesystem
...
Remove props file when deleting a collection with multifilesystem
2014-10-22 14:15:02 +02:00
Guillaume Ayoub
1f9c568720
Don't recreate the regular expression for each request
2014-10-22 11:32:25 +02:00
Guillaume Ayoub
2cf34a0d67
Cosmetic changes
2014-10-21 13:13:16 +02:00
Guillaume Ayoub
4e59d734a1
Merge pull request #225 from deronnax/well-known
...
Support "well known" URLs
2014-10-21 13:03:18 +02:00
deronnax
8ec00f08df
throw 401 in case of failed variable substition for .well-known url
2014-10-21 12:30:14 +02:00
deronnax
f846f107e6
now with regex
2014-10-21 11:57:42 +02:00
deronnax
b863e8390e
add ".well-known" addresses feature ( closes #126 )
2014-10-20 18:51:43 +02:00
Guillaume Ayoub
124cf3f51a
Merge pull request #224 from deronnax/decode_content_later
...
decode http resquest content later
2014-10-20 17:34:29 +02:00
deronnax
c180b4ace3
decode http resquest content later
2014-10-20 17:32:10 +02:00
Guillaume Ayoub
788b775c32
Merge pull request #198 from untitaker/discovery
...
Return user basepath for current-user-principal
2014-10-17 16:53:45 +02:00
Vincent Untz
71c243035e
Remove props file when deleting a collection with multifilesystem
2014-09-18 14:21:10 +02:00
Vincent Untz
873872d541
Do not autocreate .props files for multifilesystem backend
...
This is required as we do not want .props files to be created for nodes,
otherwise they'll stop being considered as nodes, which will break
discovery of calendars.
This fixes https://github.com/Kozea/Radicale/issues/208
2014-09-15 17:42:33 +02:00
Guillaume Ayoub
a6884492a2
Version 0.9
2014-08-13 13:12:19 +02:00
Markus Unterwaditzer
4859436ba8
Return user basepath for current-user-principal
...
Fix #196
The way to do collection discovery described in
http://stackoverflow.com/a/11673483 doesn't work well with Radicale:
1. current-user-principal returns /user/calendar.ics/
2. PROPFINDs asking for calendar-home-set will return the URL that was
used in the request, which is still /user/calendar.ics/
3. The final PROPFIND with Depth: 1 is supposed to list all collections,
but because the request is done with a collection URL, Radicale returns
the items for the "calendar.ics" collection which might or might not
exist.
2014-08-09 23:01:13 +02:00
Giel van Schijndel
a040c666ca
IMAP: don't spam the logs about non-SSL connections to localhost
...
When using IMAP as auth module every single request causes a warning to
be logged just because we're not encrypting traffic sent to another
process on the *same* machine.
This change recognizes that while some people might consider this
undesirable, others might have made this a conscious choice and *don't*
wish to be spammed for it. As such now only a single warning is logged
(the first time in the server's lifetime that a user logs in).
Signed-off-by: Giel van Schijndel <me@mortis.eu>
2014-08-09 22:39:16 +02:00
Guillaume Ayoub
2b4485f6ae
Allow requests on root folder for authenticated users
2014-08-07 15:06:48 +02:00
Guillaume Ayoub
77ad16f2a9
Fix the PID number stored on filesystem
2014-08-07 12:31:51 +02:00
Guillaume Ayoub
9ad9c466e2
Add an option allowing requests without base_prefix
...
Related to #147 , patch proposed by jheidemann
2014-08-06 11:51:11 +02:00
Guillaume Ayoub
0822f99650
Allow full URLs in href tags for REPORT requests
...
Fixes #192
2014-08-05 15:42:39 +02:00
Élie Bouttier
ab04e38dc8
Reload logger config on SIGHUP
...
Particularly useful for logrotate.
2014-07-28 12:15:08 -07:00
Guillaume Ayoub
a5c5f2494f
New version
2014-07-28 13:03:06 +02:00
Guillaume Ayoub
a65f96fe41
Fix syntax error
2014-07-28 11:28:12 +02:00
Guillaume Ayoub
35a0047b38
Merge pull request #182 from dnnr/serialize-sorted
...
Sort items before serializing to minimize diff
2014-07-28 11:21:48 +02:00
Guillaume Ayoub
f92f9f5e7d
Merge pull request #175 from Ede123/master
...
Return "401 unauthorized" on unauthorized DELETE requests (fixes #125 )
2014-07-28 11:20:45 +02:00
Guillaume Ayoub
bbe7588156
Merge pull request #189 from deronnax/revert#00674fe
...
revert of 00674fe
2014-07-28 10:49:29 +02:00
Guillaume Ayoub
cdad148bd0
else if → elif
2014-07-28 10:24:43 +02:00
Mathieu Dupuy
4643112511
deplace pid file creation in child process
2014-07-25 15:52:04 +02:00
Mathieu Dupuy
a94984b653
revert of 00674fe
2014-07-25 15:41:56 +02:00
Daniel Danner
1769a68719
Sort items before serializing to minimize diff
2014-07-09 17:41:57 +02:00
Ede123
c9bd2d0135
Signed-off-by: Ede123 <Eduard.Braun2@gmx.de>
2014-06-21 15:34:22 +02:00
Guillaume Ayoub
6854cd0ee3
Use warning instead of warn for logging ( fix #170 )
2014-06-15 10:19:34 +02:00
Guillaume Ayoub
c5f19bb05b
Merge pull request #160 from red-hood/master
...
Allow tilde expansion for htpasswd file
2014-06-15 10:07:54 +02:00
Markus Unterwaditzer
030436327a
Fix #143
...
Since all iCalendar objects have VCALENDAR inside them, that tag is
absolutely meaningless (in this context).
2014-06-04 22:55:35 +02:00
Christian Roeder
8673717838
Allow tilde expansion for htpasswd file
...
Call os.path.expanduser on the location given by the config parameter.
This will allow to use settings like
htpasswd_filename = ~/.config/radicale/users
2014-05-14 01:42:19 +02:00
Guillaume Ayoub
6021f16866
Fix owner_* methods ( fix #151 )
2014-05-06 15:15:58 +02:00
Guillaume Ayoub
1ab07d84e6
Add some documentation about the "user" key in the "regex" rights module
2014-04-16 18:56:57 +02:00
Guillaume Ayoub
799dbfe612
Fix "authenticated" method
2014-04-16 17:05:20 +02:00
Guillaume Ayoub
3e893a3420
Merge pull request #142 from mike-perdide/authenticated_feature
...
Adding a new "authenticated" ACL type.
2014-04-15 16:48:19 +02:00
Julien Miotte
aabebb5578
Adding a new "authenticated" ACL type.
...
When set, all authenticated users will have rw permissions on all
collections, but no anonymous user will be able to read or write any
collection.
2014-04-09 00:02:39 +02:00
Julien Miotte
963e21212b
Renaming the regex.py methods args for coherence.
2014-04-09 00:02:09 +02:00
Julien Miotte
6677dbcdc9
Moving the debug log at the proper place.
...
If we don't do this, we might get the following in the logs:
2014-04-08 20:00:59,354 - DEBUG: Section 'r' matches
2014-04-08 20:00:59,354 - DEBUG: Section 'r' does not match
which is a bit confusing.
2014-04-09 00:02:03 +02:00
Markus Kaiserswerth
0dee34b3a8
Add SSL ciphers argument only if supported, fixes Python 2.6 compat
2014-03-19 14:04:25 +01:00
Guillaume Ayoub
45f8e76643
Revert "Follow the depth in REPORT requests"
...
This reverts commit 9556508b2a
.
2014-03-05 19:26:42 +01:00
Guillaume Ayoub
9556508b2a
Follow the depth in REPORT requests
2014-03-04 01:37:14 +01:00
Guillaume Ayoub
066dffd614
Cut line
2014-03-04 01:08:56 +01:00
Guillaume Ayoub
3bd5b8f0fc
Let's try to release 0.9 beta 1
2014-02-24 23:26:40 +01:00
Guillaume Ayoub
f9ce1d0e6d
Remove the backend/type split for rights in configuration
2014-02-05 14:11:40 +01:00
Guillaume Ayoub
2ad8b57305
Merge branch 'apache_auth' of git://github.com/jaesivsm/Radicale into jaesivsm-apache_auth
...
Conflicts:
radicale/__init__.py
2014-02-05 13:09:37 +01:00
Guillaume Ayoub
701df2d201
Use environ.get instead of try/except
2014-02-05 13:01:49 +01:00
Guillaume Ayoub
f7c7746643
Merge pull request #99 from horazont/fix-preauth
...
Fix issues if authentication is done by web server
2014-02-05 12:59:45 +01:00
Christoph Polcin
3aa992e518
Find collections if necessary
2014-01-19 20:11:47 +01:00
Christoph Polcin
90d82d044c
Fix access to collections
...
under certain conditions it was possible to pass the final access control
if-clause. the master branch granted access if:
if ((read_allowed_items or write_allowed_items)
and (not user or auth.is_authenticated(user, password))) or
function == self.options or not items:
the easy-connect branch from pull request #95 adds:
(is_authenticated and function == self.propfind) or
the last `or not items` condition levers out the previous authentication and
access control. that isn't that big secuity issue because in this case there
are no collection and items at all. but "bad" and anonymous users could gather
data and information which not destined for them.
this commit fixes and simplifies the if-clause.
2014-01-19 20:04:37 +01:00
Christoph Polcin
387e1fee76
Fix calendar/addressbook-home-set in PROPFIND response
2014-01-19 19:35:53 +01:00
Christoph Polcin
d09b16c5ad
Fix principal-collection-set in PROPFIND response
2014-01-19 19:35:53 +01:00
Christoph Polcin
83db27303f
Respond to all authenticated PROPFIND requests
2014-01-19 19:35:46 +01:00
François Schmidts
b9ff564c1f
not only apache uses REMOTE_USER
...
removing the apache mention to make the config more "webserver agnostic"
2014-01-15 23:01:36 +01:00
François Schmidts
18ea7e4942
removing the user and password getting from main __call__ function
2014-01-15 22:40:33 +01:00
François Schmidts
34163c5020
making radicale support authenticated user from apache
2014-01-15 09:50:22 +01:00
Jonas Wielicki
d9df9a36e1
Fix issues if authentication is done by web server
...
This patch fixes `user` always being None if the authentication is
offloaded to the webserver, as it is suggested in the documentation.
For normal access, this is not a problem, but it becomes a problem if a
client wants to get the current-user-principal, for which the user name
is required.
2014-01-14 20:46:47 +01:00
Christoph Polcin
2ddec14535
Fix principal URLs in PROPFIND response
2014-01-05 21:22:53 +01:00
Sergey Fursov
1d0418594d
Allow attach custom rights backend, small fix in default config file
2013-12-29 15:13:35 +04:00
Sergey Fursov
3b0328ca1e
Allow attach custom storage backend
2013-12-28 14:15:35 +04:00
Sergey Fursov
a91a7790c5
Allow attach custom auth handler
2013-12-28 13:31:32 +04:00
Sergey Fursov
dca10fa14e
Different rights management backends
...
Initially only one backend - regular expressions based
2013-12-25 03:44:24 +04:00
Guillaume Ayoub
0e566e4c97
Merge branch 'apple'
2013-12-24 11:22:57 +01:00
Guillaume Ayoub
a7be59b9f7
Merge pull request #92 from cristen/master
...
Fix wrong syntax in config file and fix #58
2013-12-24 02:21:43 -08:00
Jean-Marc Martins
7ac971e022
Fix wrong syntax in config file and fix #58
2013-12-23 16:45:15 +01:00
Guillaume Ayoub
fae2b30ec4
Merge branch 'master' of git://github.com/cristen/Radicale into cristen-master
...
Conflicts:
radicale/storage/database.py
schema.sql
2013-12-17 14:42:20 +01:00
Jean-Marc Martins
56581a998a
Fix database Fix bug #77 HELL YEAH !
2013-12-17 14:35:55 +01:00
Jean-Marc Martins
f377bd1356
Fix ssl protocol
2013-12-13 15:17:30 +01:00
Jean-Marc Martins
d765544edd
Add ssl protocol and ciphers in config
2013-12-13 14:31:09 +01:00
Guillaume Ayoub
0c2c9c3a7e
Store collection's parent in database (bug #77 )
2013-10-31 16:07:37 +01:00
Guillaume Ayoub
a920518a26
Return an int for __hash__
2013-10-31 14:05:15 +01:00
Guillaume Ayoub
ce8e86af63
Allow read-only access to .well-known/ca(l|rd)av (related to #32 )
2013-10-31 13:57:37 +01:00
Guillaume Ayoub
92b3cf41bc
Simple try/except import trick
2013-10-29 14:09:46 +01:00
Guillaume Ayoub
830774824e
Merge pull request #75 from davidaurelio/master
...
Fix python 3 problems with default rights
2013-10-29 03:16:09 -07:00
Guillaume Ayoub
337d2719be
Cosmetics
2013-10-29 09:30:51 +01:00
9m66p93w
6bc745fe45
Replace built-in hash function with hashlib.
...
The built-in hash function returns inconsistent values in Python 3.
2013-10-27 22:55:01 -04:00
David Aurelio
fb784c28c4
Fix python 3 problem: 'str' does not support the buffer interface
2013-10-27 22:36:56 +01:00
Guillaume Ayoub
fe1cd1d44d
Use collection URL instead of main folder as user's main URL (see #32 )
2013-10-24 15:31:49 +02:00
Guillaume Ayoub
a617c4db26
Fix authentication with Python 3 (see #70 )
2013-10-18 14:06:57 +02:00
Guillaume Ayoub
659757f173
Style fixes
2013-10-01 13:04:24 +02:00
Štěpán Henek
7c03089601
Bugfix: auth PAM check for membership in primary and supplementary groups
2013-09-27 21:14:27 +02:00
Štěpán Henek
ee687bea18
Bugfix: auth PAM doesn't throw an exception when authenticating without username and password
2013-09-27 20:44:41 +02:00
Guillaume Ayoub
07f7e46b3e
Small fixes
2013-09-25 13:04:14 +02:00
Jean-Marc Martins
a631c8c761
Fix compatibility between python2 and 3
2013-09-19 14:40:03 +02:00
Jean-Marc Martins
6c40f5e24a
Merge branch 'authentication' of github.com:cristen/Radicale into authentication
2013-09-13 17:41:21 +02:00
Jean-Marc Martins
fe28b040bd
Adds the committer in the config + python3 support
2013-09-13 17:26:03 +02:00
Jean-Marc Martins
e2512b12fb
Fixed partially anonymous authentication
2013-09-13 15:05:02 +02:00
Jean-Marc Martins
58faf725b0
Fixed authentication for anonymous users
2013-09-12 17:39:20 +02:00
Guillaume Ayoub
43785e48a9
Get configuration keys at runtime, not when module is imported ( fixes #64 )
2013-09-12 13:48:49 +02:00
Guillaume Ayoub
15d8a8eb84
Remove useless primary key from line table
2013-09-07 09:50:13 +02:00
Guillaume Ayoub
0e5ef007f1
Use table attribute instead of string in database order by (probably fixes #59 )
2013-09-06 22:09:16 +02:00
Guillaume Ayoub
7266c8018f
Merge pull request #61 from cristen/tests
...
Tests
2013-09-06 07:13:17 -07:00
Guillaume Ayoub
ff535b62b0
Remove useless config keys
2013-09-06 16:00:12 +02:00
Jean-Marc Martins
ce59d9ea87
Added functionnal tests
2013-09-05 15:13:31 +02:00
Guillaume Ayoub
dbb866a750
Don't create the repository for each change
2013-08-30 19:00:10 +02:00
Jean-Marc Martins
97a19405c4
Adds git support to Radicale ( Fix #30 )
2013-08-30 17:23:04 +02:00
Jean-Marc Martins
6e98b1b3e8
Adds multifilesystem storage backend (See #30 )
2013-08-29 16:55:36 +02:00
Jean-Marc Martins
484933d4b6
Merge branch 'master' of github.com:Kozea/Radicale
2013-08-28 10:48:15 +02:00
Ossi Salmi
8c3cf6bccd
Fix built-in owner_only right
2013-08-28 00:56:45 +03:00
Guillaume Ayoub
423feaec2a
Get a random color for calendars with no color
2013-08-27 17:06:16 +02:00
Guillaume Ayoub
00b498677d
Merge pull request #48 from jspricke/color
...
Add color support
2013-08-27 08:02:38 -07:00
Jean-Marc Martins
056dec5819
Decode urls in XML ( fix #26 )
2013-08-27 16:43:36 +02:00
Guillaume Ayoub
f09b070e40
Fix stupid bug in logs
2013-08-27 15:19:15 +02:00
Guillaume Ayoub
c0c652b3f8
Add documentation and example for rights management
2013-08-27 11:05:54 +02:00
Guillaume Ayoub
a884169487
Don't be so optimistic about collection detection.
...
For clients that can't create collections with MK* requests and that don't
use GET requests, is_leaf gives False for empty collections only reached
through a PROPFIND request. As Radicale can't create a collection for
each type of request, we have to strip the last part of path for paths ending
with .ics and .vcf, as they can be represent items and not collections.
2013-08-25 09:35:22 +02:00
Guillaume Ayoub
205600c2d1
Fix the test used to guess if a path is a collection
2013-08-24 01:26:06 +02:00
Guillaume Ayoub
2cd90c6a4a
Use a simpler code to detect not-created-yet addressbooks
2013-08-23 13:40:17 +02:00
Guillaume Ayoub
61eedc2b7c
Match stupid naming conventions used by Apple's clients for collections
2013-08-23 13:33:35 +02:00
Guillaume Ayoub
07a9ce8296
Fix owner_* rights with python2 ( fix #49 )
2013-08-21 06:58:30 +02:00
Jochen Sprickerhof
5f2245c35f
Add color support
...
You can change the default color by changing the props (.props file for
the filesystem storage backend).
2013-08-17 12:16:37 +02:00
Guillaume Ayoub
f7f26afd6b
Fix rights type "None"
2013-08-14 11:58:08 +02:00
Guillaume Ayoub
d1379e349a
Don't check the file twice for rights
2013-08-14 10:52:50 +02:00
Guillaume Ayoub
586773148e
Use a more simple rights manager
2013-08-14 10:50:59 +02:00
Guillaume Ayoub
3e3f07a6de
Assume that the collection is an addressbook when "carddav" is in URL
2013-07-26 17:47:51 +02:00
Guillaume Ayoub
faa331ccc3
Change a couple of things in regex-based rights manager
2013-07-23 18:05:22 +02:00
mail@sweil.de
eed0f74fad
New rights management method: regex
...
user and collection are matched against regular expression to determine read/write access
2013-07-19 15:16:36 +02:00
Guillaume Ayoub
b8848de15e
Preparing next version
2013-07-12 18:40:12 +02:00
Guillaume Ayoub
2df8f92f87
Version 0.8
2013-07-12 17:45:30 +02:00
Guillaume Ayoub
05dbd71eca
Fix logging
2013-07-12 17:45:09 +02:00
Guillaume Ayoub
b60b759a36
Use extra parameter instead of formatted line in logger
2013-07-12 16:28:58 +02:00
Guillaume Ayoub
c4f2587fd9
Pylint
2013-07-12 15:25:57 +02:00
Guillaume Ayoub
18f5c334f1
Clean log module
2013-07-12 15:12:07 +02:00
Guillaume Ayoub
af30483f69
Fix docstring again
2013-07-09 18:33:35 +02:00
Guillaume Ayoub
7a6efedcff
Fix docstring
2013-07-09 18:32:42 +02:00
Felix Lange
b737d17172
Print a debug message when the logging config file doesn't exist
2013-07-07 15:48:14 +02:00
Felix Lange
ada23997a9
Resolve logging configuration file when logging is started
2013-07-07 15:07:21 +02:00
Guillaume Ayoub
de1e57081b
Put the realm in the configuration file ( fix #37 )
2013-06-28 16:39:09 +02:00
Guillaume Ayoub
70f8ee94d9
Fix supported-calendar-component-set for collection's components
2013-06-17 11:30:26 +02:00
Guillaume Ayoub
d38c4d1c1d
Fix config files management
2013-06-04 16:59:21 +02:00
Guillaume Ayoub
8adb096de2
Fix the warning if the configuration file is not found
2013-06-04 15:12:06 +02:00
Guillaume Ayoub
61d063c610
Print a warning if the configuration file is not found
2013-06-04 16:00:46 +03:00
Guillaume Ayoub
847235f6e7
Read the configuration file for rights each time
...
We now re-parse the file each time we need to get the rights. It's
definitely too much, but it's not the slowest part of Radicale.
2013-05-22 18:49:30 +02:00
Guillaume Ayoub
1b098058bd
Update the documentation about leading slash in right management file's sections
2013-05-15 22:49:48 +02:00
Guillaume Ayoub
ca0a1ecfde
Log if the file used for rights management is not found
2013-05-15 22:49:02 +02:00
Guillaume Ayoub
fce91e7060
Allow ~ in rights filename
2013-05-15 22:41:51 +02:00
Guillaume Ayoub
45e844cda2
Fix a read/write mismatch in from_file rights manager
2013-05-15 22:29:40 +02:00
Guillaume Ayoub
dd7f886fcc
Add content type for collection items
2013-05-14 13:18:12 +02:00
Guillaume Ayoub
b7aa5c8d14
Fix collection properties set by proppatch or mk* requests
2013-05-13 23:19:22 +02:00
Guillaume Ayoub
fab7796ca0
Allow additional HTTP headers in configuration file
...
Best ratio coolness/sloc ever!
2013-05-13 18:15:08 +02:00
Guillaume Ayoub
040d3b87a8
Revert a strange commit (let's say I was tired)
2013-05-13 18:14:42 +02:00
Guillaume Ayoub
69e2eb0908
Store the supported-calendar-component-set property in the calendar properties
2013-05-10 14:56:17 +02:00
Guillaume Ayoub
e9e811d375
Allow requests with no maching items (ie. requests at "/")
2013-05-01 20:36:41 +02:00
Guillaume Ayoub
45c1647a92
Don't try TLS with SSL connections
2013-05-01 20:24:41 +02:00
Guillaume Ayoub
0f0bddedc9
Fix types of IMAP config parameters
2013-05-01 20:24:05 +02:00
Guillaume Ayoub
9a49be1e10
Don't try to login with IMAP and courier when user or password is empty
2013-05-01 20:23:03 +02:00
Guillaume Ayoub
e4af425893
Fix some corner-cases for requests at root path
2013-05-01 20:13:51 +02:00
Guillaume Ayoub
f73b44a311
Useless typo
2013-05-01 20:12:24 +02:00
Guillaume Ayoub
bf8e874e4d
Merge *base_prefix config keys into base_prefix ( fixes #996 )
2013-04-30 14:02:17 +02:00
Guillaume Ayoub
eaa969a05c
Merge pull request #24 from vuntz/radicale-in-subdir
...
Allow running radicale in a subdir, as well as in a subdir behind a proxy
2013-04-26 08:33:12 -07:00
Guillaume Ayoub
5c4fb8529d
Fix modification time for not-created-yet collections
2013-04-26 13:29:24 +02:00
Guillaume Ayoub
406bb6e8cc
Update copyright years
2013-04-26 01:28:03 +02:00
Guillaume Ayoub
22077aa7a1
Clean the http-based auth module
2013-04-26 01:14:33 +02:00
Guillaume Ayoub
494ffbd762
Merge pull request #15 from MelianLabs/http
...
Added HTTP-based authentication
2013-04-25 16:07:49 -07:00
Guillaume Ayoub
2738d10830
Support SSL for IMAP authentication
...
Based on Nikita Koshikov's commit:
https://github.com/interlegis/Radicale/commit/000fc2a
2013-04-26 00:56:56 +02:00
Guillaume Ayoub
a01e4d18e1
Clean database storage code
2013-04-20 12:59:56 +02:00
Guillaume Ayoub
16c6f55ebd
Initial *untested* support for database storage
2013-04-20 12:51:32 +02:00
Jonathan Dupart
7a96578ca4
Typo: missing comma
...
sync-collection and expand-property where returned concatenated in
PROPFIND answers.
2013-04-09 00:42:25 +02:00
Vincent Untz
74590cfd0c
Add proxy_base_prefix option to help run in a subdir behind a proxy
...
I have a setup where Radicale is running as the normal process, and
nginx is acting as proxy for Radicale for requests under /radicale/.
This means that all requests to nginx that go to /radicale/ are sent to
a radicale server that expects requests coming at /.
Obviously, all the href need to have the /radicale/ prefix to have
things work. So a new option proxy_base_prefix is added to allow having
such a setup.
All href that are sent in the replies will have the proxy_base_prefix
prepended.
2013-03-18 18:20:06 +01:00
Vincent Untz
0dbf71f57f
Fix issues with base_prefix option
2013-03-18 18:13:28 +01:00
Fabrice Bellet
54bda5594c
Handle use in a subdir. Patch from Clint Adams <clint@softwarefreedom.org> adapted from http://redmine.kozea.fr/issues/996
2013-03-18 18:10:13 +01:00
Guillaume Ayoub
b6b48b5af7
Typo
2013-02-27 10:36:54 +01:00
Christoph Polcin
9972897d75
accepts PROPFIND whitout request body
2013-02-26 00:45:08 +01:00
Guillaume Ayoub
dd94660ef0
Use "is None" instead of "== None"
2013-02-01 00:16:31 +01:00
Guillaume DOTT
85a7b7db50
Prevent exception in from_file when user is None
2013-01-31 22:41:50 +01:00
Guillaume Ayoub
bcdf00f85e
Allow colon characters in passwords ( fixes #1308 )
2013-01-31 17:27:23 +01:00
Guillaume Ayoub
151f82c593
Typo
2013-01-16 11:16:16 +01:00
Mark Adams
d23cabf8f6
Added -C command line flag for specifying configuration file location.
2013-01-15 13:18:09 -06:00
Guillaume DOTT
5a3f0e4d97
Handle exceptions when looking for rights in a file
2012-12-11 15:03:29 +01:00
Ehsanul Hoque
dbc622e8d7
Added HTTP-based authentication
...
The purpose of this is in order to tie CalDAV accounts to an external web
application. This application must provide a URL end point to which a POST
request can be made, with the username/password sent as the payload. A 200 or
201 response is considered successful authentication. Any other response is
a failure.
2012-09-28 09:52:17 +06:00
Guillaume Ayoub
4c064bcf35
Clean rights from file and remove tests
2012-09-15 09:08:01 +02:00
Guillaume Ayoub
7b15832dbf
Merge pull request #12 from matthiasjordan/master
...
File-based rights and testing
2012-09-14 05:23:24 -07:00
Guillaume Ayoub
e06cfa4de0
Handle "If-None-Match: *" HTTP headers for PUT requests
2012-08-31 17:24:32 +02:00
Matthias Jordan
e08aa6176c
Less aggressive logging
2012-08-18 00:36:30 +02:00
Matthias Jordan
0c4562c01d
Using different HTTP status codes in some cases where auth or rights are violated
2012-08-18 00:18:22 +02:00
Matthias Jordan
db708a0853
Checking rights only once. Also taking care of mistakenly checking
...
ownership of events. xmlutils is now unaware of rights.
2012-08-15 22:36:42 +02:00
Matthias Jordan
0722db04fb
Extract method
2012-08-15 15:12:18 +02:00
Matthias Jordan
bc0b74c555
Using collection's URL for logging instead of its name
2012-08-11 00:57:15 +02:00
Matthias Jordan
e3bc6afdd3
Added file-based rights management
2012-08-11 00:56:45 +02:00
Guillaume Ayoub
237f42909a
Add owner_write rights manager
2012-08-09 17:32:03 +02:00
Guillaume Ayoub
98bbe61f67
Use relative imports
2012-08-09 17:31:36 +02:00
Guillaume Ayoub
9f446cb261
Fix GET requests
2012-08-09 16:00:31 +02:00
Guillaume Ayoub
17857654b0
Use the same import mechanisms for auth, storage, rights
2012-08-09 15:39:01 +02:00
Guillaume Ayoub
3ddbb80674
Fix OPTIONS requests
2012-08-09 14:29:44 +02:00
Guillaume Ayoub
4fa53d15b3
Fix the auth checking algorithm
2012-08-09 14:15:20 +02:00
Guillaume Ayoub
e33ee8ea7c
Small fixes
2012-08-08 18:54:58 +02:00
Guillaume Ayoub
e14bed9f95
Add rights section in config module
2012-08-08 18:45:55 +02:00
Guillaume Ayoub
b4a7ada5f2
is_authorized returns True when no auth method is set
2012-08-08 18:44:25 +02:00
Guillaume Ayoub
45afac5353
Code cleaned and modules renamed
...
*Radicale is probably broken now*
2012-08-08 18:29:09 +02:00
Guillaume Ayoub
a17ad1b6a3
Un-revert some lost commits
2012-08-08 16:37:18 +02:00
Matthias Jordan
55a13d4c39
Merge remote-tracking branch 'upstream/master'
...
Conflicts:
radicale/__init__.py
radicale/acl/courier.py
2012-08-04 11:27:51 +02:00
Guillaume Ayoub
7d06d1b4d5
Version set to "git"
2012-08-03 14:37:40 +02:00
Guillaume Ayoub
0cf9b92ce7
Version 0.7.1
2012-08-03 14:37:02 +02:00
Guillaume Ayoub
7ae764fd4b
Enhance readability according to PEP8
2012-08-03 14:08:11 +02:00
Guillaume Ayoub
f593ab0fbd
Set the maximuml line length to 79 instead of 80
2012-08-03 13:55:52 +02:00
Matthias Jordan
e40e68b528
Separation of authentication and authorization. Separation of read and write authorization.
...
Static test strategies for authentication. Barely tested. Use at your own risk!
2012-08-03 13:10:20 +02:00
Guillaume Ayoub
a7481a0546
Clean the server's __call__ method, with comments and better variable names
2012-08-03 11:52:30 +02:00
Guillaume Ayoub
9d193b6b30
Don't start Radicale when PID file exists ( fixes #890 )
2012-08-03 00:29:06 +02:00
Guillaume Ayoub
83baebd750
PEP8 and cleanup for the new IMAP ACL module
2012-07-16 19:09:35 +02:00
Daniel Aleksandersen
e2d9f79dc4
Default config values for IMAP ACL
...
Hostname ``localhost``on port ``143`` (standard port).
2012-07-05 20:54:33 +02:00
Daniel Aleksandersen
360d4e6411
New IMAP ACL
...
Secure authentication based on the ``imaplib`` module.
Validating users against a modern IMAP4rev1 server that awaits STARTTLS
on port 143. Legacy SSL (often on legacy port 993) is deprecated and
thus unsupported. STARTTLS is enforced except if host is ``localhost``
as passwords are sent in PLAIN.
Python 3.2 or newer is required for TLS.
2012-07-05 20:52:10 +02:00
Daniel Aleksandersen
a45b7b7c23
Return the group database entry
2012-07-04 15:56:15 +03:00
Guillaume Ayoub
5a260d33db
Merge pull request #6 from antonyc/patch-1
...
Fix typo in config file for htpasswd* entries
2012-07-02 04:43:14 -07:00
Benjamin Frank
03fc5fc526
Fix Courier ACL
...
Replaced blacklisting approach with a whitelisting on, thus preventing access
due to responses from authlib not containing the word 'FAIL', e.g. empty ones
(see http://www.courier-mta.org/authlib/README_authlib.html#authpipeproto )
2012-07-02 13:30:28 +02:00
Guillaume Ayoub
ea94ec919e
Use the right namespace for adressbook tags
2012-06-28 11:28:42 +02:00
antonyc
c0ed505f78
I tried to start a dev installation with htpasswd and found this typo.
2012-06-23 01:01:45 +04:00
Guillaume Ayoub
cff6c2b43b
Return 204 response when an item is modified
2012-06-22 12:29:49 +02:00
Guillaume Ayoub
e471d15f00
Merge branch 'master' of github.com:Kozea/Radicale
2012-06-14 16:36:20 +02:00
Guillaume Ayoub
25c3648d75
Add a dummy filter for item tags
...
Related to #53
2012-06-14 16:35:32 +02:00
Oskari Timperi
209b9e4307
Set the D:displayname for collections in PROPFIND response
...
Atleast Nokia N9 shows the displayname to user. If the
property is empty, a calendar with empty name is shown.
Which is annoying.
2012-05-24 12:48:48 +03:00
Guillaume Ayoub
b5e94598e9
No etag returned when an added item doesn't have the same name as the one given by the client ( closes #799 )
2012-04-27 16:03:14 +02:00
Guillaume Ayoub
ca5c0483b0
Return 200 instead of 204 status for DELETE requests ( closes #802 )
2012-04-18 14:00:20 +02:00
Guillaume Ayoub
c3ce8fde38
In PROPFIND responses, add the not-yet-created collection type when it can be guessed
...
Maybe related to #795
2012-04-11 19:50:18 +02:00
Guillaume Ayoub
f6ace2b6ec
Fix a bug with DELETE requests when deleted item is not found
2012-03-21 11:26:06 +01:00
Guillaume Ayoub
085c9f0aca
Update the version to "git"
2012-03-20 18:45:12 +01:00
Guillaume Ayoub
d274044700
Version 0.7
2012-03-20 18:36:34 +01:00
Guillaume Ayoub
a9c74ae84d
Always allow OPTIONS requests ( fixes #780 )
2012-03-20 13:31:10 +01:00
Guillaume Ayoub
505fd6a644
List the aggregation of privileges instead of only "all"
2012-03-19 12:35:39 +01:00
Guillaume Ayoub
cc23d9dd8d
Small cleanup about LDAP
2012-03-13 10:47:01 +01:00
Guillaume Ayoub
3bfd6352b2
Merge pull request #3 from koppor/master
...
Added support for custom filters at LDAP
2012-03-13 02:42:37 -07:00
Guillaume Ayoub
344f87d8fb
Add a config key to ignore reverse DNS ( fixes #779 )
2012-03-13 09:35:01 +01:00
Oliver Kopp
0c2bbb8ae1
LDAP: custom filters supported
2012-03-10 21:59:06 +01:00
Guillaume Ayoub
7bfc17a51d
Use " instead of ' (you can laugh at me)
2012-03-01 10:40:15 +01:00
Guillaume Ayoub
36918232c0
Better detection of vcards
2012-02-23 16:20:21 +01:00
Guillaume Ayoub
f37c3a0b27
Let GET requests create address books too!
2012-02-23 16:16:14 +01:00
Guillaume Ayoub
22e4e3764c
Explicitely create collections on GET requests
2012-02-23 15:28:45 +01:00
Guillaume Ayoub
128a20714b
Use is_leaf and is_node instead of is_item and is_collection
2012-02-23 15:17:59 +01:00
Guillaume Ayoub
5e8dec6683
Ignore the .props when giving children
2012-02-20 17:45:47 +01:00
Guillaume Ayoub
224d0d47e8
Fix the collection detection
2012-02-20 17:41:36 +01:00
Guillaume Ayoub
97f8738465
Return the collections and the items in collections
2012-02-20 16:32:42 +01:00
Guillaume Ayoub
d256a0551c
Fix an indentation bug
2012-02-20 16:32:32 +01:00
Guillaume Ayoub
f9d041ba6b
Use relative imports for acl and storage modules
2012-02-08 16:56:58 +01:00
Guillaume Ayoub
8dcc613f0a
Don't use the VADDRESSBOOK tag anymore ( closes #667 )
2012-02-03 18:01:03 +01:00
Guillaume Ayoub
9ebb143c44
Work around a bug in Evolution ( fixes #664 )
2012-02-03 15:58:08 +01:00
Guillaume Ayoub
4893f94920
Clean the calendar-timezone proppatch setter
2012-01-25 20:23:37 +01:00
Guillaume Ayoub
cd33a6cc51
Reconnect to the LDAP server when the connexion is lost ( fixes #656 )
2012-01-25 19:19:02 +01:00
Guillaume Ayoub
4299348776
Change "calendar" into "collection" when needed.
...
WARNING: the default folders storing calendars/addressbooks have been changed
2012-01-25 14:53:46 +01:00
Guillaume Ayoub
d5b1cdcbf2
Add the tag when writing calendars ( closes #658 )
2012-01-25 14:43:47 +01:00
Guillaume Ayoub
54aa8817e7
Add the "set_mimetype" method forgotten during the merge ( closes #657 )
2012-01-25 14:40:28 +01:00
Guillaume Ayoub
9c4a85ef1f
Merge branch 'carddav', and update copyright dates
...
Conflicts:
radicale/__init__.py
radicale/ical.py
radicale/xmlutils.py
2012-01-23 16:21:30 +01:00
Guillaume Ayoub
6eb9b21aac
Merge branch 'git'
2012-01-23 15:50:17 +01:00
Guillaume Ayoub
5b680d1400
Remove brackets inserted in UIDs by Outlook
2012-01-18 17:47:18 +01:00
Guillaume Ayoub
022b2aa91f
Clean and reorder calendar functions
2012-01-12 02:39:47 +01:00
Guillaume Ayoub
b1414c152d
Split the storage filesystem backend into another file
2012-01-12 02:18:06 +01:00
Guillaume Ayoub
a4a52c71d2
Use a clean way to manage calendars and address books different serialization
2012-01-06 19:42:20 +01:00
Guillaume Ayoub
1dfa887384
Fix the GET and REPORT requests for vcards
2012-01-06 19:01:52 +01:00
Guillaume Ayoub
fd3eacfe01
Ignore .props files for collections children
2012-01-05 22:56:59 +01:00
Guillaume Ayoub
bff01db29b
Manage addressbook-multiget and address-data
2012-01-05 21:58:50 +01:00
Guillaume Ayoub
f11e78a3f4
Answer addressbook-home-set, fix the collection children detection
2012-01-05 21:49:34 +01:00
Guillaume Ayoub
b56db741f4
Add support for Evolution VCard WebDAV
2012-01-04 19:47:34 +01:00
Guillaume Ayoub
8a4be02075
Add a (not tested) CardDAV support
2011-12-31 13:31:22 +01:00
Guillaume Ayoub
f2d491ea61
Remove double slashes in report href URLs (related to #618 )
2011-12-07 12:38:45 +01:00
Guillaume Ayoub
1f2f39a87a
DELETE requests can delete calendars ( closes #514 )
2011-11-29 17:41:08 +01:00
Guillaume Ayoub
74c16e6402
Use a simple getattr to get the LDAP scope
2011-11-29 12:58:28 +01:00
Gerhard Schmidt
5d55b2868f
Add the support of the LDAP scope configuration
2011-11-29 12:54:38 +01:00
Guillaume Ayoub
a2128a4787
Pylint cleanups
2011-11-04 22:30:17 +01:00
Guillaume Ayoub
756c4aaf7e
Put the executable script in the radicale package
...
Conflicts:
NEWS.rst
2011-11-03 17:49:00 +01:00
Guillaume Ayoub
14a6cd10b4
Fix a try/catch
2011-10-27 13:26:05 +02:00
Guillaume Ayoub
12bb8a287a
Add default config keys for additional auth modules
2011-10-24 18:02:40 +02:00
Guillaume Ayoub
fe0f3020a4
Stop being stupid for report requests
2011-10-24 13:14:56 +02:00
Guillaume Ayoub
0cdc5b06da
Catch the exception instead of (errno, message)
2011-10-04 06:42:08 +02:00
Guillaume Ayoub
fc166da8ba
Use the "as" keyword for exception mathing in a try/except block
2011-10-04 06:34:46 +02:00
Guillaume Ayoub
3689944372
Add a logger for answer status
2011-10-03 13:52:56 +02:00
Guillaume Ayoub
7560f26eb7
Fix the MOVE request (related to #587 )
2011-10-03 13:52:22 +02:00
Guillaume Ayoub
0b71acabe6
Add an empty line (it's a source of stress for me, I'm sorry)
2011-10-03 00:34:01 +02:00
Guillaume Ayoub
e545df5722
Only set the principal tag for root folders (related to #580 )
2011-09-25 21:16:24 +02:00
Guillaume Ayoub
160e296ed1
Turn backslashes into slashes on Windows ( fixes #581 )
2011-09-25 19:41:24 +02:00
Guillaume Ayoub
4d97758e34
Support repeating events ( fixes #574 )
2011-09-04 22:54:13 +02:00
Guillaume Ayoub
fb9571dfbe
Test if the SSL files can be read
2011-08-29 16:07:30 +02:00
Guillaume Ayoub
6ef7e1857a
Clean the PAM and Courier acls
2011-08-29 11:54:21 +02:00
Guillaume Ayoub
ae5a68fa6a
Merge branch 'master' into auths
2011-08-29 10:02:01 +02:00
Guillaume Ayoub
7180a0948a
Set the version to "git", let's add some funky stuff into the 0.7 version!
2011-08-27 13:33:25 +02:00
Guillaume Ayoub
5c66241346
0.6.1 version
2011-08-27 13:29:38 +02:00
Guillaume Ayoub
4b87cb9181
Avoid the redirection loop ( fixes #571 )
2011-08-25 14:28:37 +02:00
Guillaume Ayoub
5f26c131a9
Redirect authenticated users with no calendar found
2011-08-21 16:30:59 +02:00
Guillaume Ayoub
5137709801
Don't redirect good but unauthorized users ( fixes #571 )
2011-08-21 14:59:43 +02:00
Henry-Nicolas Tourneur
8f864f3e96
Removing old header comment
2011-08-14 20:51:41 +02:00
Henry-Nicolas Tourneur
7e8838c430
Initial code for the Courier-Authdaemon authentication module
2011-08-14 20:49:10 +02:00
Henry-Nicolas Tourneur
3a134c44c6
Documentation header update
2011-08-14 20:21:38 +02:00
Henry-Nicolas Tourneur
82bd62e21c
Initial code for PAM ACL module
2011-08-14 19:52:44 +02:00
Guillaume Ayoub
e4523bf862
Clean the "Radicale works!" message, put it in the "get" method
2011-08-09 14:35:34 +02:00
Guillaume Ayoub
50cdbf6efb
Fix bug with sha1 passwords ( closes #570 )
2011-08-09 11:34:10 +02:00
Fabien LOISON
9179e5562a
Display an 'It Works' message when the root URL is requested with the GET method
2011-08-04 18:13:52 +02:00
Guillaume Ayoub
6e454afe1b
Preparing next version
2011-07-31 23:20:56 +02:00
Guillaume Ayoub
35a2f51a2e
Version 0.6
2011-07-31 23:20:08 +02:00
Guillaume Ayoub
58cdbf7450
Remove environment variables from logs only if they are in the requests
2011-07-29 10:38:33 +02:00
Guillaume Ayoub
cdae6f04e9
Small pep8 related typo fixes
2011-07-26 09:02:21 +02:00
Guillaume Ayoub
8f488eb6bc
Fix the owner attriubtion for 1+ depth URLs
2011-07-22 15:01:33 +02:00
Guillaume Ayoub
6bbf3f624f
Fix the owner attribution of calendars
2011-07-22 15:00:25 +02:00
Guillaume Ayoub
4a630397ce
Fix the HEAD request
2011-07-21 17:06:00 +02:00
Guillaume Ayoub
753ade5efc
Add a status string for unknown status numbers
2011-07-20 23:37:18 +02:00
Guillaume Ayoub
5ea41e5f4b
Fix the Python 3 support of pretty_xml
2011-07-20 23:14:00 +02:00
Guillaume Ayoub
0a84905383
Add a .pylintrc file, clean code
2011-07-14 11:23:19 +02:00
Marten Gajda
380acebd71
Add support for the Caldav-Sync Android client
2011-07-14 11:04:41 +02:00
Guillaume Ayoub
3356d3235f
Add the XML declaration
2011-07-07 12:38:56 +02:00
Guillaume Ayoub
e9ad9b1716
Fix the iCal support (now tested with iCal, Lightning, Evolution)
2011-07-01 17:49:01 +02:00
Guillaume Ayoub
d17e8fa990
Don't use the environ user variable, pass user to all the methods functions
2011-06-30 18:22:47 +02:00
Guillaume Ayoub
3d7f07dc0c
Fix the href URL in propfind
2011-06-30 18:05:24 +02:00
Guillaume Ayoub
49ba07db5a
Add support of the MOVE method (not tested yet)
2011-06-29 23:57:56 +02:00
Guillaume Ayoub
73390c922e
Sort the methods in the server class
2011-06-29 11:04:09 +02:00
Guillaume Ayoub
21d435b560
Minor typo fixes
2011-06-16 10:40:30 +02:00
Guillaume Ayoub
1d67706b56
Clean the calendar paths
2011-06-16 10:39:36 +02:00
Guillaume Ayoub
af10a2f1c4
Fix URLs in report requests
2011-06-16 07:54:55 +02:00
Guillaume Ayoub
de0643e741
Fix propfind paths
2011-06-16 07:50:21 +02:00
Guillaume Ayoub
87a4a4e012
Merge branch 'master' into lightning
2011-06-15 23:22:49 +02:00
Pieter Naaijkens
00d8b08341
Merge URI sanitize fix
2011-06-15 23:21:26 +02:00
Guillaume Ayoub
264bc66051
Merge branch 'master' into lightning
2011-06-13 23:01:42 +02:00
Guillaume Ayoub
da42112740
Allow the `None
` value for public and private calendars
2011-06-13 22:32:47 +02:00
Guillaume Ayoub
f9836ab093
Clean support of public calendars, add support of private calendars
2011-06-13 22:15:52 +02:00
Guillaume Ayoub
3149643706
Log "nobody" instead of "None" as anonymous calendars owner.
2011-06-11 18:14:08 +02:00
Guillaume Ayoub
fe71b34697
Use 'key in dict' instead of 'dict.get(key)'
2011-06-08 08:20:37 +02:00
Guillaume Ayoub
b8bcf65785
Restore the Lightning + anonymous calendars support
2011-06-08 07:43:40 +02:00
Roberto De Ioris
4bd425608d
get config filename from env variable RADICALE_CONFIG
2011-06-07 17:44:53 +02:00
Guillaume Ayoub
ec9e410659
Clean a docstring
2011-06-05 12:52:24 +02:00
Guillaume Ayoub
080e4984aa
Don't use isinstance(root, ET.Element) as ET.Element is a function in Python 2.6
2011-06-05 12:47:45 +02:00
Guillaume Ayoub
e9935ae1a6
Use % instead of format for consistency (and Python 2.6 support)
2011-06-05 12:34:50 +02:00
Guillaume Ayoub
dd6063ccb6
Give an UID if none has already been set
2011-06-05 12:31:00 +02:00
Guillaume Ayoub
fadd5dd675
Minor documentation and typo fixes caused by my insane love for PEP-3101 and pylint
2011-06-02 20:15:07 +02:00
Lukasz Langa
f7868afed1
iCal bootstrapping using a default URL works
2011-06-01 22:33:18 +02:00
Lukasz Langa
1510e6c194
Create directories for .props as well.
2011-06-01 18:59:53 +02:00
Lukasz Langa
537d6b6fd2
Create the directory structure if none found.
2011-06-01 18:22:26 +02:00
Lukasz Langa
1e6a4e7fb4
timezone is a part of the VCALENDAR file
2011-06-01 17:46:46 +02:00
Lukasz Langa
31edc1b03d
explicit component content-types for iCal
2011-06-01 16:22:36 +02:00
Lukasz Langa
710b518b0f
Without the newline iCal complains in the logs:
...
11-06-01 16:11:06 iCal[12955] Unexpected EOF, returning last token as fallback
2011-06-01 16:21:03 +02:00
Lukasz Langa
5b9180c295
The owner field should be an URL. Fixes delays in iCal.
2011-06-01 15:30:47 +02:00
Lukasz Langa
8bcdb5b1dc
py3k-compatible next() used. Works with 2.6-2.7 as well.
2011-06-01 14:22:15 +02:00
Lukasz Langa
e05e94a129
preliminary iCal/iPhone support introduced
2011-06-01 12:43:49 +02:00
Lukasz Langa
911cd48efe
proppatch actually writes properties.
2011-05-24 17:33:57 +02:00