Commit Graph

1241 Commits (9b55ce933a5cf62f445a061bdcd6b17e7bb58857)

Author SHA1 Message Date
Devin R 24b6702047 Add to_*_event_stub methods to pdu, filter for correct event kind
When creating some responses (sync) an AnyRoomEventStub is needed for this
PduEvent will deserialize the JSON as a Stub event and a non stub event
when needed. Ephemeral and account events are checked to be the correct
type and filtered out if not. This requires an extra `deserialize` call
which could/should be removed.

TODO: Possibly get rid of EventJson in some places.
4 years ago
Devin R 7c38e53839 Move to depend on ruma monorepo and ruma-events0.22 4 years ago
Timo Kösters b9de21949d Update to rocket master (#147)
Merge branch 'master' into rocket

Update to rocket master

Co-authored-by: timokoesters <timo@koesters.xyz>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/147
4 years ago
the0 469071e105 feat: implement /event (#144)
Merge branch 'master' into event-route

Event: Implement /event

Co-authored-by: the0 <theo@localhost>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/144
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
CapsizeGlimmer 76aa44ead3 Add logout/all route to main 4 years ago
CapsizeGlimmer 7c2144c6d7 Implement /logout/all 4 years ago
the0 b81939841b feat: account deactivation (#137)
Deactivation: swap unwrap_or(false) to .ok()?

feat: implement deactivate account route

Implement error code on login to deactivated account

Deactivation: Changes requested

Add missing .clone()

Deactivation: Requested changes

Remove unneeded .filter()

Deactivation: badly named signature leads to confusion

Co-authored-by: the0 <theo@localhost>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/137
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
the0 67a1f21f5d feat: implement password changing (#138)
Password: Fixes

Password: Implement logging out all devices except current

Password: Implement password changing

Co-authored-by: the0 <theo@localhost>
Reviewed-on: https://git.koesters.xyz/timo/conduit/pulls/138
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
timokoesters 54ad1fbed9
fix: CI 4 years ago
timokoesters 24c544f650
fix: DMs show up as rooms 4 years ago
Guillem Nieto 8f06d0258a
Remove `is_direct` flag from Join event
When I was investigating the DM issue, I found that join event contained
the `is_direct` flag. According to the spec, this flag should only be
set on "invite" events, but not on join.

Other homeservers do not have this flag on join.
4 years ago
timokoesters a49a572d76
feat: cross-signing 4 years ago
timokoesters 7031240af3
improvement: /members route 4 years ago
timokoesters 02fe030b2a
improvement: better default push rules 4 years ago
timokoesters db685e0cf7
fix: update rocket version 4 years ago
timokoesters 13d474f6ee
fix: update ruma version 4 years ago
PublicByte fa7612f069 refactor: remove unused imports 4 years ago
timokoesters 56d4742201
improvement: log bad database errors automatically 4 years ago
timokoesters 2368a90584
refactor: better error handling 4 years ago
timokoesters f2a5d46628
fix 4 years ago
timokoesters 176bd114a0
fix: use correct device in GET /devices 4 years ago
timokoesters bfe5b89ba4
style: cargo fmt 4 years ago
timokoesters 588049678b
refactor: replace DeviceId with str or String 4 years ago
timokoesters b4d65ab67d
improvement: optimize /sync response 4 years ago
timokoesters 0067f49d52
feat: close registration with ROCKET_REGISTRATION_DISABLED=true 4 years ago
timokoesters c85d363d71
feat: user interactive authentication 4 years ago
Timo Kösters 88d091fca1 Merge pull request 'Allow client to load history on newly joined rooms' (#111) from gnieto/conduit:fix/issue-39-history-load into master
Reviewed-by: Timo Kösters <timo@koesters.xyz>
4 years ago
Guillem Nieto cc383ac932 Cargo fmt 4 years ago
Guillem Nieto 9269f009db Allow client to load history on newly joined rooms
On /sync, check if a room is a new join between `since` parameter and
now. If it's a newly joined room, set the limited flag to true, which will force
the client to load room messages via the `/messages` endpoint.

On `master`, I could not reproduce the messages not showing to others
when joining after being invited.

Fixes #39
4 years ago
timokoesters 8eedc12567
fix: edus will not be removed after timeout 4 years ago
Jonas Platte 7526fd8602
Switch to the ruma meta-crate 4 years ago
timokoesters d404f902bf
fix: send presence too often 4 years ago
timokoesters 32da76b9a2
feat: heroes, don't send notifications every time 4 years ago
timokoesters b7f7a39973
feat: kick,ban,unban user route 4 years ago
timokoesters a8df1acdfd
feat: load replies, forward pagination 4 years ago
timokoesters 168f2281fd
improvement: bundle typing events and only send on changes
Fixes #67 and #49
4 years ago
timokoesters 8328eeb5ac
Make sytest not fail 4 years ago
timokoesters 1c85b0fd05
remove tests in favor of sytests 4 years ago
timokoesters b192fddf2f
fix: show device display names 4 years ago
timokoesters 325e373684
refactor: small changes 4 years ago
timokoesters 19c9e4b916
fix: room version 6 4 years ago
gnieto 0883c44659
Implement devices API (#20)
small improvements

Cargo fmt

Simplify insert and update methods

Review feedback

Remove has_device method calls

Load all devices with a single db call

Remove device as in logout

Put all metadata on the same tree

Create userdevice key fucntion

Implement devices API

Implement all the devices endpoints. There's a couple of pending tasks:

- Integrate the "logout" logic once it lands to master (this should
  remove the given device from the database).
- Track and store last seen timestamp and IP.

Co-authored-by: timokoesters <timo@koesters.xyz>
Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com>
4 years ago
gnieto ed9b544ace Implement devices API (#20)
small improvements

Cargo fmt

Simplify insert and update methods

Review feedback

Remove has_device method calls

Load all devices with a single db call

Remove device as in logout

Put all metadata on the same tree

Create userdevice key fucntion

Implement devices API

Implement all the devices endpoints. There's a couple of pending tasks:

- Integrate the "logout" logic once it lands to master (this should
  remove the given device from the database).
- Track and store last seen timestamp and IP.

Co-authored-by: timokoesters <timo@koesters.xyz>
Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com>
4 years ago
Jean-Baptiste Petit 1222289c75 get_state_events_for_key_route return the content of the requested event instead of the all event. 4 years ago
timokoesters 5a47c75427
fix: make redactions permanent 4 years ago
timokoesters b519bc6962
fix: only show notifications for messages 4 years ago
timokoesters 4e507ef706
feat: room visibility and aliases 4 years ago
timokoesters 9c26e22ad7
improvement: load aliases from database 4 years ago
timokoesters 18bf67748c
feat: redaction 4 years ago
timokoesters ca77c79222
fix: /register lowercases user ids
fixes #24
4 years ago
Guillem Nieto 4b3b562347 Get device_id from body instead of auth data
Device_id was retrieved from the auth data instead of login's body and
this was causing that a new device was created on every login.

This is (I guess) provoking that some sytests are failing (for example,
"POST /login returns the same device_id as that in the request").
4 years ago
timokoesters 58683585cc
improvement: show more info in public rooms list 4 years ago
timokoesters b6c0e9bfb2
feat: access control 4 years ago
timokoesters c8ba9dce01
feat: proper room creation 4 years ago
josias b106d1393b Add logout route and database methods (#21)
Condense keys

Move remove methods to remove_device

Code cleanup

Add method for removing todevice events

Remove unnecessary existence checks

Add logout route and database methods

Co-authored-by: Josias <justjosias@tutanota.com>
4 years ago
timokoesters 1014388a9c
fix: one time keys are never removed 4 years ago
timokoesters d95e8b4880
fix: problem with to-device for all devices 4 years ago
timokoesters 43478a5870
fix: send correct membership events when joining / creating rooms 4 years ago
timokoesters 8df2a1a072
improvement: add room topic to public room dir 4 years ago
timokoesters e0fccffde0
fix: changing avatar url now sends room events 4 years ago
timokoesters ada260bf42
fix: use png for thumbnails 4 years ago
timokoesters eb4af85765
fix: riot sometimes freaks out when refreshing 4 years ago
timokoesters d544d28b6e
feat: image thumbnails 4 years ago
timokoesters 61f4f2c716
improvement: implement GET publicRooms 4 years ago
timokoesters 821c608c6a
feat: media 4 years ago
timokoesters 42ae433b25
fix: send devicekeyupdate users in /sync 4 years ago
timokoesters f0aed35ecf
improvement: user dir search also searches in displaynames 4 years ago
timokoesters 56dd6cb16f
improvement: get state 4 years ago
timokoesters 6215218c3c
fix: account data json 4 years ago
timokoesters 7fc71b3968
feat: end to end encryption 4 years ago
timokoesters 4fb79ebb4c
chore: update dependencies 4 years ago
timokoesters d08f91d1c3
fix: only allow valid usernames in /register 4 years ago
Rudi Floren 00a9424719
feat: sytests 4 years ago
timokoesters 8e041f90dd
refactor: make cargo clippy happier 4 years ago
timokoesters 1dbde0e1c1
improvement: add option to get device id from token 4 years ago
timokoesters ee0d6940bd
feat: presence updates 4 years ago
timokoesters 551308e9a8
Update dependencies and send displayname updates again 4 years ago
timokoesters 8f67c01efd
refactor: split database into multiple files, more error handling, cleaner code 4 years ago
timokoesters 4b191a9311
improvement: set default push rules on register 4 years ago
timo 3cd0f89729 Add /_matrix/client/r0/register/available endpoint 4 years ago
Marcel 4bc7712ee4 [ClientServer] Add /_matrix/client/r0/register/available endpoint
Took 1 hour 25 minutes
4 years ago
timokoesters 4ca1ada73e
update ruma 4 years ago
timokoesters b02c568941
feat: notifications, simple permission systems 4 years ago
timokoesters 169dbe6c37
fix: send full state after joining a room 4 years ago
timokoesters c769283953
Update readme 4 years ago
timokoesters fd1aea7e36
Update dependencies 4 years ago
timokoesters 1cdf30f38c
Add hostname to Rocket.toml config 4 years ago
timokoesters 23cb550d00
forget rooms, load history 4 years ago
timokoesters 4cc0a07092
feat: user renaming 4 years ago
timokoesters 720cc0cffc
feat: federated room directory 4 years ago
timokoesters 120b6f4b95
Bump dependencies and fixes 4 years ago
timokoesters 873d191569
fix: http body as content when signing 4 years ago
timokoesters 1af6dd984a
More work on federation 4 years ago
timokoesters b0d9ccdb2d
Signing, basis for federation 4 years ago
timokoesters 9b79798e56
start work on signing 4 years ago
timokoesters 80ddf80f17
work 4 years ago
TheCycoONE 6d858c39ca Fix typo in password message 4 years ago
gnieto fa9e127a1e Store hashed passwords (#7)
Use if let instead of unwrap

Default to invalid password if could not calculate

Move hash password methdo and return Result

Rename get_password method

Default to empty password when no pwd is received

Store hashed passwords

Store passwords hashed with Argon2 and verify password with that stored
hash.

Co-authored-by: Guillem Nieto <gnieto.talo@gmail.com>
4 years ago
timokoesters abcce95dd8
feat: invites, better public room dir, user search 4 years ago
timokoesters 3debb6203c
feat: handle typing events 4 years ago
timokoesters 3b9cadeec2
feat: read receipts 4 years ago
timokoesters ab8c2f1e5e
Rename pduid_pdus to pduid_pdu 4 years ago
timokoesters fd829bfa0d
move client_server code into own file 4 years ago
timokoesters 040296c711
Add test support and impl dummy /read_markers 4 years ago
timo 3f2bf208a9
Merge pull request 'Add displayname and avatar_url endpoints' (#5) from MTRNord/matrixserver:accountdata into master 4 years ago
Marcel 57264f72e9 Fix avatar_url error message if not starting with mxc://
Took 8 minutes
4 years ago
Marcel 8bcbc983c3 Change and add Comments to the profile endpoints
Add missing docs

Took 9 minutes
4 years ago
Marcel 49fe5e3271 Rename userid_avatar_url to userid_avatarurl and fix debug print
Run cargo fmt

Took 5 minutes
4 years ago
Marcel b1284fd509 Replace profile_* with userid_*
Add a missing dot in the errormessage
Require mxc:// to be present at the start of an avatar_url
Update mxc check TODO
Show displayname or avatar_url if either is available when getting the profile Endpoint
Return the correct data in case of a empty displayname or an empty avatar_url

Took 50 minutes

Took 34 seconds
4 years ago
timokoesters cd55220a75
fix: room directory duplicates 4 years ago
Marcel 062c5521f0 Add displayname and avatar_url endpoints
Add PUT and GET /_matrix/client/r0/profile/{userId}/displayname Endpoint
Add PUT and GET /_matrix/client/r0/profile/{userId}/avatar_url Endpoint
Add GET /_matrix/client/r0/profile/{userId} Endpoint

Took 2 hours 16 minutes
4 years ago
timokoesters 11e75e7081
make room directory work 4 years ago
timokoesters 5ac45eac59
public rooms dir 4 years ago
timokoesters 9214a62dde
better room creation 4 years ago
Jonas Platte 38ab7c843e
Update error type of /register route 4 years ago
Jonas Platte c60402bf0d
Update ruma-client-api 4 years ago
timokoesters 8557278b90
better riot.im support 4 years ago
timokoesters fdeee7fdb5
More dummy endpoints 4 years ago
timokoesters 215a31c513
Add a few dummy endpoints to make riot progress further 4 years ago
timokoesters ddcd423e6f
feat: random tokens, sessions, guest usernames and device ids 4 years ago
timokoesters 64223b8812
register login flow 4 years ago
timokoesters e55a63629c
feat: state event support 4 years ago
timokoesters 10bb96fcf7
feat: room joining, room based /sync responses 4 years ago
timokoesters 4d4cff7120
Allow all kinds of messages in /send 4 years ago
timokoesters 884dc2867d
Move to rocket's async branch 4 years ago
timokoesters 8b8381bcc0
New PduEvent struct 4 years ago
timokoesters f9cfede2a8
fix: deserialize sync event body 4 years ago
timokoesters fa3226898c
feat: save pdus
PDUs are saved in a pduid -> pdus map. roomid -> pduleaves keeps track
of the leaves of the event graph and eventid -> pduid maps event ids to
pdus.
4 years ago
timokoesters 22cca206ba
Todo: ruma signatures
This commit will get force pushed away later
4 years ago
timokoesters dba6c46667
Use sled::Tree::prefix_search for deviceids 4 years ago
timokoesters b508b4d1e7
Start work on message events 4 years ago
timokoesters 533260edd8
Add auth 4 years ago
Jonas Platte 1183105f15
Make Endpoint bound work for ruma_wrapper::Ruma 4 years ago
timokoesters 73e04e71d7
Start work on event creation 4 years ago
timokoesters 744e0adfcf
Try to impl auth in ruma_wrapper 4 years ago
timokoesters 34a53ce20a
Better database structure 4 years ago
timokoesters 6d27f15516
More logging 4 years ago
timokoesters 1679da7784 RUST_LOG=info by default 4 years ago
timokoesters c2c18b4651 feat: database 4 years ago
timokoesters cd777af41c feat: simple endpoint handlers 4 years ago
timokoesters 6264628c11 Initial commit 4 years ago