Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
proto3
proto3
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 70
    • Issues 70
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
    • Iterations
  • Merge Requests 1
    • Merge Requests 1
  • Requirements
    • Requirements
    • List
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Code Review
    • Insights
    • Issue
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • protokollsystem
  • proto3proto3
  • Issues
  • #224

Closed
Open
Opened Apr 24, 2019 by Julian Rother@julianrDeveloper

Kalender-Push mit OpenExchange

Die Kalenderintegration in der Fachschaft ist seit längerer Zeit nicht funktionsfähig. Ich habe mal angefangen das zu debuggen:

principal.calendars() führt einen PROPFIND-Request nach DAV::calendar-home-set auf der URL /principals/users/<UID> aus. Dieser bricht mit caldav.lib.error.PropfindError: 405 Not Allowed ab. Mir scheint der Request soweit Standard-konform. Warum das bei OpenExchange nicht geht, weiß ich nicht, allerdings funktioniert das Principal-Object mit der URL /caldav/ ohne Probleme. Das ist dann wiederum nicht Standard-konform.

Ich sehe zwei Lösungsansätze:

  1. Das Principal-Objekt (nur!) bei OpenExchange statt mit client.principal() mit Principal(client, client.url) initialisieren.
  2. Die Liste der Kalender anders abrufen. vdirsyncer macht das z.B. mit einem PROPFIND-Request nach DAV::resourcetype auf die Basis-URL mit Tiefe 1. Die Calendar-Objekte kann man dann mit den URLs aus der Response instanzieren und wie gehabt verwenden. Das sähe dann etwa wie folgt aus.

client.propfind(client.url, b'<d:propfind xmlns:d="DAV:"><d:prop><d:resourcetype/></d:prop><d:prop><d:displayname/></d:prop></d:propfind>', depth='1')

Variante 1 wäre sehr einfach. Variante 2 hätte den Vorteil, dass sie vmtl. auch mit anderen Servern als OpenExchange funktioniert.

Meinungen, was sinnvoller ist?

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: protokollsystem/proto3#224