This is a proposal, it adds an access check through caldav.
Access to groups is granted by putting their group name on an individual line within the description of the caldav event.
This allows easy access management through the calendar. I see many benefits in this, the main one is outsourcing the handling of complicated calendar logic, like reocurring events - which the current AccessAuths cant handle.
The calendar events are periodically cached for the next 7 days, that means it still works even if the calendar server is not available during the access check.
Current problems: @ahtlon i struggle with updating the dependencies, the python caldav package needs to be added.
When entering a dev shell and then adding caldav with uv add caldav i get the following error on nix run .#:
warning: Git tree '/home/kalipso/proggn/malobeo/gatekeeper' is dirty
error: Cannot build '/nix/store/kfs62gppki16f5lhznbq1s0hwnwxg6ll-gatekeeper.drv'.
Reason: builder failed with exit code 1.
Output paths:
/nix/store/fmkpjr6a3qcxzipj0xasv0sgazvzmwjd-gatekeeper
Last 25 log lines:
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 366, in <module>
> main()
> ~~~~^^
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 359, in main
> merged = merge_inputs([out_root, *dependencies], skip_paths, ignore_collisions)
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 175, in merge_inputs
> return recurse(inputs, ())
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 128, in recurse
> return {k: recurse(v, stack=(*stack, k)) for k, v in entries.items()}
> ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 128, in recurse
> return {k: recurse(v, stack=(*stack, k)) for k, v in entries.items()}
> ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 128, in recurse
> return {k: recurse(v, stack=(*stack, k)) for k, v in entries.items()}
> ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
> [Previous line repeated 2 more times]
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 136, in recurse
> raise FileCollisionError(inputs)
> FileCollisionError: Two or more packages are trying to provide the same file with different contents
>
> Files: /nix/store/2bj7x53jfxrnfh27v7x88l71mldrps5s-urllib3-2.6.3/lib/python3.13/site-packages/urllib3/_request_methods.py /nix/store/j4x0aigkskhm6wasr89nbpdjfmzar9jm-urllib3-future-2.25.905/lib/python3.13/site-packages/urllib3/_request_methods.py
>
>
> See https://pyproject-nix.github.io/pyproject.nix/build/packages.html for strategies for dealing with file collisions
For full logs, run:
nix log /nix/store/kfs62gppki16f5lhznbq1s0hwnwxg6ll-gatekeeper.drv
error: Cannot build '/nix/store/zmbn7jbh85dk6ngbyfvf15wpfqrgviw6-gatekeeper.drv'.
Reason: 1 dependency failed.
Output paths:
/nix/store/dql8rz1sv8lkzwjblyqf5dcb6nyv1kwg-gatekeeper
This is a proposal, it adds an access check through caldav.
Access to groups is granted by putting their group name on an individual line within the description of the caldav event.
This allows easy access management through the calendar. I see many benefits in this, the main one is outsourcing the handling of complicated calendar logic, like reocurring events - which the current AccessAuths cant handle.
The calendar events are periodically cached for the next 7 days, that means it still works even if the calendar server is not available during the access check.
Current problems:
@ahtlon i struggle with updating the dependencies, the python `caldav` package needs to be added.
When entering a dev shell and then adding `caldav` with `uv add caldav` i get the following error on `nix run .#`:
```
warning: Git tree '/home/kalipso/proggn/malobeo/gatekeeper' is dirty
error: Cannot build '/nix/store/kfs62gppki16f5lhznbq1s0hwnwxg6ll-gatekeeper.drv'.
Reason: builder failed with exit code 1.
Output paths:
/nix/store/fmkpjr6a3qcxzipj0xasv0sgazvzmwjd-gatekeeper
Last 25 log lines:
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 366, in <module>
> main()
> ~~~~^^
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 359, in main
> merged = merge_inputs([out_root, *dependencies], skip_paths, ignore_collisions)
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 175, in merge_inputs
> return recurse(inputs, ())
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 128, in recurse
> return {k: recurse(v, stack=(*stack, k)) for k, v in entries.items()}
> ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 128, in recurse
> return {k: recurse(v, stack=(*stack, k)) for k, v in entries.items()}
> ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 128, in recurse
> return {k: recurse(v, stack=(*stack, k)) for k, v in entries.items()}
> ~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
> [Previous line repeated 2 more times]
> File "/nix/store/17k0c59cfwwmfxk42iabgr5qgy8kp9rr-make_venv.py", line 136, in recurse
> raise FileCollisionError(inputs)
> FileCollisionError: Two or more packages are trying to provide the same file with different contents
>
> Files: /nix/store/2bj7x53jfxrnfh27v7x88l71mldrps5s-urllib3-2.6.3/lib/python3.13/site-packages/urllib3/_request_methods.py /nix/store/j4x0aigkskhm6wasr89nbpdjfmzar9jm-urllib3-future-2.25.905/lib/python3.13/site-packages/urllib3/_request_methods.py
>
>
> See https://pyproject-nix.github.io/pyproject.nix/build/packages.html for strategies for dealing with file collisions
For full logs, run:
nix log /nix/store/kfs62gppki16f5lhznbq1s0hwnwxg6ll-gatekeeper.drv
error: Cannot build '/nix/store/zmbn7jbh85dk6ngbyfvf15wpfqrgviw6-gatekeeper.drv'.
Reason: 1 dependency failed.
Output paths:
/nix/store/dql8rz1sv8lkzwjblyqf5dcb6nyv1kwg-gatekeeper
```
So hab das caldav zeug getestet mit nem lokalen caldav server. Funktioniert gut! Werde erstmal in master mergen, verbesserungen kommen dann seperat drauf (zeilen mit leerzeichen als kommentare ignorieren etc)
So hab das caldav zeug getestet mit nem lokalen caldav server. Funktioniert gut! Werde erstmal in master mergen, verbesserungen kommen dann seperat drauf (zeilen mit leerzeichen als kommentare ignorieren etc)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
This is a proposal, it adds an access check through caldav.
Access to groups is granted by putting their group name on an individual line within the description of the caldav event.
This allows easy access management through the calendar. I see many benefits in this, the main one is outsourcing the handling of complicated calendar logic, like reocurring events - which the current AccessAuths cant handle.
The calendar events are periodically cached for the next 7 days, that means it still works even if the calendar server is not available during the access check.
Current problems:
@ahtlon i struggle with updating the dependencies, the python
caldavpackage needs to be added.When entering a dev shell and then adding
caldavwithuv add caldavi get the following error onnix run .#:Related: #8
@kalipso wo hast du den die teststruktur her XD
So, jetzt sind auch die ganzen linting Probleme weg
975433c26ftodb627c34dcSo hab das caldav zeug getestet mit nem lokalen caldav server. Funktioniert gut! Werde erstmal in master mergen, verbesserungen kommen dann seperat drauf (zeilen mit leerzeichen als kommentare ignorieren etc)