Commit Graph

29 Commits

Author SHA1 Message Date
db651f8ae7
Update dependencies 2024-05-27 14:29:04 +01:00
Conrad Hoffmann
4ca7d8c4e7 More depency upgrades 2024-04-19 17:40:46 +02:00
Conrad Hoffmann
832c91beba Update pam to v2.0.0 2024-04-19 17:37:55 +02:00
Conrad Hoffmann
39f90686f9 Upgrade dependencies 2024-04-19 17:29:44 +02:00
Simon Ser
a95896216f Migrate to go-imap v2
v1 is no longer actively maintained.

Co-authored-by: Conrad Hoffmann <ch@bitfehler.net>
2024-04-19 15:23:37 +02:00
Simon Ser
ebb5aede92 Add OAuth 2.0 backend 2024-02-21 17:07:08 +01:00
Conrad Hoffmann
a87520cb0f Add htpasswd-style static file auth module
Can be used via `-auth.url=file://`. Only supports bcrypt password
hashes ($2y). Use e.g. `htpasswd -c -BC 14 <filename> <user>` to create
a file. Documentation forthcoming.
2024-02-05 17:23:11 +01:00
Conrad Hoffmann
a74c76857d Initial multi-calendar/address book support
Thanks to the latest version of go-webdav, this is now a thing. A lot of
operations (like creating a calendar) are not yet supported. But the
basics work fine. Note that multi-calendar means that different users
can each have their own calenders. Resource sharing is not yet
implemented either.

Includes the adding of a lot of debug logs, as issues are otherwise
pretty hard to figure out. The logging still needs to be made more
consistent, and probably cleaned up a bit in some places.
2024-02-02 22:39:10 +01:00
Simon Ser
ddc11d4c7b Upgrade dependencies 2023-12-19 21:22:36 +01:00
Conrad Hoffmann
c5c9901b9d Update go-webdav to latest version 2022-12-14 15:18:40 +01:00
Conrad Hoffmann
40bae8dc31 Switch to a proper logging library
Structured logs can be enabled with `-log.json`.
2022-12-01 13:46:25 +01:00
Conrad Hoffmann
68de660456 Switch to latest upstream go-webdav
* Use one, fixed path layout
* New type `ConditionalMatch` for contents of `If-Match`/`If-None-Match`
  header
2022-11-22 16:05:00 +01:00
Conrad Hoffmann
0719d5c32f Use latest go-webdav from dev fork
PRs for all change sets are open on upstream go-webdav.
2022-10-31 12:23:54 +01:00
Conrad Hoffmann
9425b8cc81 Temporarily switch to dev version of go-webdav 2022-10-28 12:19:24 +02:00
Conrad Hoffmann
474048d4cd Update to latest go-webdav 2022-10-18 15:19:30 +02:00
Simon Ser
10587f425b auth: add PAM support
Handy for small local installations.

Disabled by default because it adds a dependency on the PAM
library.
2022-09-13 10:04:45 +02:00
Conrad Hoffmann
a3bfd56bf9 Update go-webdav dependency
Latest version includes some improvements for `carddav.Filter()`
2022-06-03 09:49:00 +02:00
Conrad Hoffmann
b2057fe9ef Switch back to upstream go-webdav
It now has all the patches needed. There is still more to come for
providing more functionality, but this can all happen upstream.
2022-06-01 11:11:20 +02:00
Conrad Hoffmann
a734b3b532 Set content length propery for DAV objects
This makes collections play nice with clients that require it, like
cadaver.
2022-05-17 15:28:09 +02:00
Conrad Hoffmann
53b2c88311 Adapt to latest changes in go-webdav
There is now only one last PR missing before we can start using the
vanilla upstream go-webdav again. Thanks a lot to Simon for his patience
reviewing my PRs!
2022-05-13 15:38:02 +02:00
Conrad Hoffmann
4765adc1a3 Use NewHTTPError to return better errors
That function is merged upstream, but the current version still depends
on some stuff not yet merged into upstream go-webdav.
2022-05-06 09:16:17 +02:00
Conrad Hoffmann
001917295d Add CalDAV support, refactor
The filesystem storage backend now implements the required functions to
act as a basic CalDAV server. Some refactoring was done based on the
go-webdav development: introduce a UserPrincipalBackend, a new function
to serve the user principal URL, and more. See this PR for lots of
details: https://github.com/emersion/go-webdav/pull/62

Also adds a simple facility for debug output.
2022-05-03 16:06:47 +02:00
Conrad Hoffmann
8b3306b580 Depend on latest go-webdav version 2022-03-10 16:52:07 +01:00
Conrad Hoffmann
9b0d3b87ad Use latest upstream go-webdav 2022-03-01 11:51:34 +01:00
Conrad Hoffmann
65346f0317 Depend on latest go-webdav version 2022-02-24 12:51:57 +01:00
Conrad Hoffmann
3281b1d32b Switch to new interfaces with context
See https://github.com/emersion/go-webdav/pull/53
2022-02-23 13:44:05 +01:00
Simon Ser
97f86226d6 Rig up CardDAV backend to HTTP server
References: https://todo.sr.ht/~sircmpwn/tokidoki/3
2022-02-21 11:39:57 +01:00
Drew DeVault
5a641ceca1 Implement IMAP auth provider 2022-02-21 10:55:02 +01:00
Drew DeVault
96ef5f9b2a Initial server skeleton 2022-02-21 10:10:25 +01:00