Implement client invite endpoint

Refactor room server to automatically determine auth events
Add documentation in various places
This commit is contained in:
Pim Kunis 2021-08-25 01:27:03 +02:00
parent 6f8c224d50
commit bcc6cbb24b
15 changed files with 345 additions and 209 deletions

View file

@ -20,9 +20,12 @@ defmodule MatrixServer.StateResolution.Authorization do
do: prev_events == []
# Check rule: 5.2.1
def authorized?(%Event{type: "m.room.member", state_key: state_key}, %{
{"m.room.create", ""} => %Event{content: %{"creator" => creator}}
}),
def authorized?(
%Event{type: "m.room.member", state_key: state_key, prev_events: [create_id]},
%{
{"m.room.create", ""} => %Event{event_id: create_id, content: %{"creator" => creator}}
}
),
do: state_key == creator
def authorized?(
@ -309,6 +312,9 @@ defmodule MatrixServer.StateResolution.Authorization do
|> Repo.all()
|> Enum.reduce(%{}, &update_state_set/2)
IO.inspect(event)
IO.inspect(state_set)
authorized?(event, state_set)
end
end