Radicale rights, sharing and InfCloud.
olenchenko opened this issue · 6 comments
Hi Unrud.
First of all huge thanks for your amazing work!
Yesterday I have installed both (Radicale and RadicaleWeb) from your repository with pip:
pip3 install --upgrade git+https://github.com/Unrud/Radicale
pip3 install --upgrade git+https://github.com/Unrud/RadicaleWeb
with a few changes in Radicale's config file it worked great "out of the box"!
I than have created users and collections using web interface. I have also created a "shared" user with collection (contacts and calendar) to share contacts and calendar with other users.
I have set:
[rights]
type = owner_write
but I do not see any other calendar or address book except my in InfCloud.
Is it possible to get resources from other user collection displayed in InfCloud?
Sorry in advance if I am posting this in wrong place.
InfCloud only shows the calendars/addressbooks of the current user. You have to log-in as the user shared to see the collections.
Radicale doesn't support sharing collections between users. However, there is a "hack" to do this. Radicale stores all collections as ordinary files and folders in the filesystem. E.g. a calendar of the user shared is stored in the folder collection-root/shared/60291af0
, you can share these collections with the user user by creating a symlink collection-root/user/60291af0 -> ../shared/60291af0
.
Be aware that user now has write-access to the calendar. If this is not desired, you have to use a custom rights file to set the access rights of user/60291af0
to read-only.
OK. Thanks for the info.
Have one more issue though with RadicaleWeb - every time I try to add (in InfCloud) new contact to address book or edit existing one adding/changing picture results in error:
Error: 'unable to save the contact': internal server error!
and I have this in radicale's log:
The above exception was the direct cause of the following exception: Traceback (most recent call last): File "/usr/local/lib/python3.6/wsgiref/handlers.py", line 137, in run self.result = application(self.environ, self.start_response) File "/usr/local/lib/python3.6/site-packages/radicale/__init__.py", line 419, in __call__ environ, base_prefix, path, user) File "/usr/local/lib/python3.6/site-packages/radicale/__init__.py", line 680, in do_PUT items = list(vobject.readComponents(content or "")) File "/usr/local/lib/python3.6/site-packages/vobject/base.py", line 1109, in readComponents component.setBehaviorFromVersionLine(versionLine) File "/usr/local/lib/python3.6/site-packages/vobject/base.py", line 658, in setBehaviorFromVersionLine self.setBehavior(v) File "/usr/local/lib/python3.6/site-packages/vobject/base.py", line 170, in setBehavior obj.autoBehavior(True) File "/usr/local/lib/python3.6/site-packages/vobject/base.py", line 156, in autoBehavior self.behavior.decode(self) File "/usr/local/lib/python3.6/site-packages/vobject/vcard.py", line 143, in decode line.value = codecs.decode(line.value.encode("utf-8"), "base64") binascii.Error: decoding with 'base64' codec failed (Error: Incorrect padding)
Contacts without the picture are saved without this error.
Any suggestions?
Once again thanks for all the hard work!
Contacts without the picture are saved without this error.
Any suggestions?
That's a bug in VObject. Radicale uses it to parse calendars and addressbooks.
OK, I have added comment in one of vobject issues. Maybe someone will find a solution.
Thanks for all your help and hard work. I believe you can close this issue.
Thanks.
Hi Unrud.
I have actually found out that problem with saving contact picture was fixed by Ján Máté (developer of InfCloud) in version 0.13.2rc1 (was posted on mail list here). I have tried it replacing files from your repository with those from version 0.13.2rc1 (changing globalNetworkCheckSettings) and it works just fine, contact pictures are saved.
Just wanted to let you know.
Once again thanks for your hard work!
version 0.13.2rc1 (was posted on mail list here).
I've updated to that version.