Erik Johnston
c9d1ee24ca
Import SynapseError
2014-09-03 19:15:55 +01:00
Erik Johnston
9b18151104
Handle timeouts slightly nicer.
2014-09-03 19:13:41 +01:00
Erik Johnston
5b645f9d34
Don't do auth for change_membership in federation handler, it doesn't work and federation doesn't do auth in general either. Add a hacky timeout when trying to join a remote room.
2014-09-03 19:08:39 +01:00
Erik Johnston
dce6395395
When creating a room and a user supplies a room_alias but no name, use the room_alias as the name.
2014-09-03 18:52:34 +01:00
David Baker
d72ce4da64
Merge branch 'develop' of github.com:matrix-org/synapse into develop
...
Conflicts:
synapse/http/client.py
2014-09-03 18:25:17 +01:00
David Baker
d6ecbbdf0a
Add support for registering with a threepid to the HS (get credentials from the client and check them against an ID server).
2014-09-03 18:22:27 +01:00
Matthew Hodgson
8a7c1d6a00
fix the copyright holder from matrix.org to OpenMarket Ltd, as matrix.org hasn't been incorporated in time for launch.
2014-09-03 17:31:57 +01:00
Erik Johnston
30bcbc433a
Fix up directory server to not require uploading room hosts. Update the room hosts table with the current room hosts (if we have them) on GET.
2014-09-03 16:04:27 +01:00
Erik Johnston
e4c40158c5
Snapshot prev_state for generic events
2014-09-03 15:48:51 +01:00
Paul "LeoNerd" Evans
cda31fb755
Kill the state
...
... key from all the Presence messages
2014-09-03 15:37:10 +01:00
Paul "LeoNerd" Evans
dada11dc5f
Bugfix for back-pagination of presence
2014-09-03 15:28:03 +01:00
Kegan Dougal
7fc84c7019
Make retrying requests on DNS failures configurable, and turn off retrying only in directory.get_association
2014-09-03 14:26:52 +01:00
Paul "LeoNerd" Evans
da31b96b55
Implement presence state visibilty limiting when polling eventsource for stream
2014-09-03 13:46:52 +01:00
Kegan Dougal
c54d8df504
Update API docs to use 'presence' key not 'state'. Fixed error messages when setting presence.
2014-09-03 11:45:30 +01:00
Kegan Dougal
65693e9e15
Fixed GET /events/$id to be not broken.
2014-09-03 11:24:45 +01:00
Paul "LeoNerd" Evans
da3e04df8b
Rename the 'do_users_share_a_room' to something slightly less verb-sounding
2014-09-03 10:40:48 +01:00
Paul "LeoNerd" Evans
ddf3ca7ab3
Neater is_presence_visible() code
2014-09-03 10:40:21 +01:00
Mark Haines
c6eafdfbaf
Add copyright notices and fix pyflakes errors
2014-09-03 09:43:11 +01:00
Mark Haines
112c7ea315
Set status message for ratelimit error responses
2014-09-03 09:37:44 +01:00
Mark Haines
30ad0c5674
Merge branch 'ratelimiting' into develop
2014-09-03 09:15:52 +01:00
Mark Haines
683596f91e
Raise LimitExceedError when the ratelimiting is throttling requests
2014-09-03 08:58:48 +01:00
Mark Haines
780548b577
rate limiting for message sending
2014-09-02 18:22:15 +01:00
Mark Haines
c7a7cdf734
Add ratelimiting function to basehandler
2014-09-02 17:57:04 +01:00
Paul "LeoNerd" Evans
d9d6fbb085
Safer handling of incoming presence EDUs that may or maynot contain 'presence' or 'state'
2014-09-02 11:17:43 +01:00
Paul "LeoNerd" Evans
7b56a7a3cb
'continue' to go to the next item in a for loop, not 'break'
2014-09-02 11:15:46 +01:00
Erik Johnston
10e7821461
By default, only room ops can change the name and topic.
2014-09-02 11:11:47 +01:00
Erik Johnston
ed25abe05f
Add message to assertion
2014-09-02 10:58:33 +01:00
Erik Johnston
040d985908
Add support for setting room name and topic when creating rooms
2014-09-02 10:02:14 +01:00
Paul "LeoNerd" Evans
270d302834
Reënable presence visibility permission checking now it's not used on redundant code paths
2014-09-01 22:15:02 +01:00
Paul "LeoNerd" Evans
32fdf8efd6
No need to test is_presence_visible in _start_polling_local because we know it will be by when it's called
2014-09-01 22:15:02 +01:00
Erik Johnston
48142a01dd
Don't set a 'default' key in the creation event
2014-09-01 20:39:43 +01:00
Erik Johnston
6d28560626
Don't put required power levels on permission state events
2014-09-01 20:27:45 +01:00
Erik Johnston
b8ab9f1c0a
Add all the necessary checks to make banning work.
2014-09-01 18:24:56 +01:00
Erik Johnston
3faa2ae78c
Merge branch 'develop' of github.com:matrix-org/synapse into room_config
2014-09-01 18:21:29 +01:00
Paul "LeoNerd" Evans
1c6ab2d759
Bump a user's presence last_active time every time they send a message to a room
2014-09-01 16:16:35 +01:00
Erik Johnston
db7109c43b
Add beginnings of ban support.
2014-09-01 16:15:34 +01:00
Paul "LeoNerd" Evans
fd696f1243
Perform room unit tests with 'local' users actually in the right domain ;)
2014-09-01 15:58:30 +01:00
Paul "LeoNerd" Evans
468d94c920
Rename API-visible 'mtime' presence field to 'last_active'; slightly different semantics
2014-09-01 15:39:50 +01:00
Paul "LeoNerd" Evans
02f4e3b3ff
Rename 'state' presence key to the much more obvious 'presence'; maintain a legacy 'state' copy for now
2014-09-01 14:45:41 +01:00
Erik Johnston
865469f233
Implement power level lists, default power levels and send_evnet_level/add_state_level events.
2014-09-01 14:39:09 +01:00
Erik Johnston
10efca1a74
Merge branch 'develop' of github.com:matrix-org/synapse into room_config
2014-09-01 13:41:44 +01:00
Paul "LeoNerd" Evans
93407cf7cf
Bugfixes on presence pushes on user joining:
...
* No need to inform clients of status of remote users; as that will
arrive in due course anyway. We don't -have- the state currently, so
we'd only send an unknown message
* Remember to bump the presence serial for the event source, so the
notifiers will wake up and report it
2014-08-29 19:53:33 +01:00
Paul "LeoNerd" Evans
a8e8d1d06c
Renamed get_current_token_part to get_current_key
2014-08-29 19:15:23 +01:00
Paul "LeoNerd" Evans
eec67a675f
Have EventSource's get_new_events_for_user() API work only on keys within that source, not overall eventstream tokens
2014-08-29 19:13:55 +01:00
Paul "LeoNerd" Evans
6797c7f1b1
TypingNotificationEventSource has to return proper tokens, not int 0
2014-08-29 19:00:55 +01:00
Paul "LeoNerd" Evans
4bfdec1eb2
Rename 'events_key' to 'room_key' so it matches the name of the event source
2014-08-29 19:00:55 +01:00
Paul "LeoNerd" Evans
6dd50da54e
Define a new event stream data source for typing notifications (currently null)
2014-08-29 17:39:33 +01:00
Paul "LeoNerd" Evans
20d0db6cfb
Move the *EventSource classes into the handlers they relate to, so it's easier to find the code
2014-08-29 17:10:28 +01:00
Erik Johnston
8e2d4c6da5
Merge branch 'develop' of github.com:matrix-org/synapse into room_config
2014-08-29 14:22:04 +01:00
Erik Johnston
ee06023573
Get the equalities right.
2014-08-29 13:28:06 +01:00
Erik Johnston
47fb286184
Merge branch 'presence_logging' into develop
2014-08-29 12:10:00 +01:00
Erik Johnston
5dd38d579b
Fix a couple of bugs in presence handler related to pushing updatesto the correct user. Fix presence tests.
2014-08-29 12:08:33 +01:00
Erik Johnston
8113eb7c79
Turn of trace_function logging
2014-08-28 18:45:00 +01:00
Erik Johnston
aaf4fd98ee
Only poll remote users if they are in our presence list, rather than in a common room
2014-08-28 18:43:03 +01:00
Mark Haines
722c19d033
Fix FederationHandler to event.origin
2014-08-28 18:32:44 +01:00
Erik Johnston
1b7686329e
Don't query the rooms members table so much by using the new notifier api that allows you to specify room_ids to notify.
2014-08-28 17:43:15 +01:00
Erik Johnston
54d0a75573
Merge branch 'develop' of github.com:matrix-org/synapse into presence_logging
...
Conflicts:
synapse/handlers/presence.py
2014-08-28 16:52:46 +01:00
Erik Johnston
a8d318cf82
Up timeout to 10 minutes
2014-08-28 16:44:09 +01:00
Paul "LeoNerd" Evans
efc5f3440d
Only send presence "poll"/"unpoll" EDUs when changing from/to zero remotes
2014-08-28 16:43:55 +01:00
Paul "LeoNerd" Evans
c46c806126
Re-enable presence, un-skip presence tests
2014-08-28 16:00:14 +01:00
Erik Johnston
eb3094ed31
And more logging.
2014-08-28 15:58:38 +01:00
Mark Haines
7b079a26a5
Remove get_state_for_room function from federation handler
2014-08-28 15:32:38 +01:00
Erik Johnston
e0ba81344c
Add more logging. Up the event stream timer to 10s
2014-08-28 15:30:42 +01:00
Erik Johnston
b8b52ca09d
Add logging to try and figure out what is going on with the presence stuff
2014-08-28 14:58:51 +01:00
Mark Haines
7acede1e42
Fix pyflakes warnings
2014-08-28 13:51:50 +01:00
Mark Haines
15ab5f5ad8
Merge backfill_ and backfill in federation handler
2014-08-28 13:45:35 +01:00
Erik Johnston
b485d622cc
Fix bug where we used UserID objects instead of strigns
2014-08-28 13:40:27 +01:00
Erik Johnston
d2bc5d6f29
Create the correct events with the right configuration when creating a new room.
2014-08-28 10:59:15 +01:00
Erik Johnston
c2b4b73751
Split out MessageHandler
2014-08-27 17:59:36 +01:00
Mark Haines
357dd1871d
Merge branch 'develop' into storage_transactions
...
Conflicts:
tests/handlers/test_federation.py
tests/handlers/test_room.py
2014-08-27 17:28:55 +01:00
Mark Haines
2aeaa7b77c
Merge branch 'develop' into storage_transactions
...
Conflicts:
synapse/handlers/room.py
synapse/storage/stream.py
2014-08-27 17:15:58 +01:00
Mark Haines
1d95e78759
Merge branch 'develop' into storage_transactions
2014-08-27 16:54:12 +01:00
Mark Haines
b30358f439
add _get_room_member, fix datastore methods
2014-08-27 16:51:54 +01:00
Erik Johnston
52cb5e6324
Remove stale FIXMEs
2014-08-27 16:44:29 +01:00
Erik Johnston
8af5e360d6
Remove store_id from notifier.on_new_room_event calls.
2014-08-27 16:23:33 +01:00
Erik Johnston
7917ff1271
Turn off presence again.
2014-08-27 16:09:48 +01:00
Erik Johnston
bfe9faad5a
Index sources in a nicer fashion.
2014-08-27 15:33:52 +01:00
Erik Johnston
05672a6a8c
Convert get_paginat_rows to use PaginationConfig. This allows people to supply directions.
2014-08-27 15:25:27 +01:00
Mark Haines
a0d1f5a014
Start updating state handling to use snapshots
2014-08-27 15:11:51 +01:00
Mark Haines
a03c7f27a8
Fill out prev_events before calling persist_event
2014-08-27 14:32:19 +01:00
Erik Johnston
77a255c7c3
PEP8 tweaks.
2014-08-27 14:19:39 +01:00
Erik Johnston
47519cd8c2
Merge branch 'develop' of github.com:matrix-org/synapse into stream_refactor
...
Conflicts:
synapse/handlers/events.py
synapse/rest/events.py
synapse/rest/room.py
2014-08-27 14:13:06 +01:00
Erik Johnston
bd16b93e8f
Implement presence event source. Change the way the notifier indexes listeners
2014-08-27 14:03:27 +01:00
Paul "LeoNerd" Evans
5eff05a4ce
Initial typing notification support - EDU federation, but no timers, and no actual push to clients
2014-08-27 11:45:16 +01:00
Mark Haines
bf05218c4b
Merge branch 'develop' into storage_transactions
2014-08-27 11:19:37 +01:00
Kegan Dougal
c65885e166
Added support for GET /events/$eventid with auth checks.
2014-08-27 10:33:01 +01:00
Mark Haines
d2798de660
Fold federation/handler into handlers/federation
2014-08-26 19:49:42 +01:00
Erik Johnston
67c5f89244
Enable presence again. Fix up api to match old api.
2014-08-26 19:40:29 +01:00
Erik Johnston
3a2a5b959c
WIP: Completely change how event streaming and pagination work. This reflects the change in the underlying storage model.
2014-08-26 18:57:46 +01:00
Mark Haines
a498df0428
Move new event boilerplate in room handlers into a method on a base clase.
2014-08-26 18:49:51 +01:00
Erik Johnston
9a93e83d90
Respect 'limit' param in initialSync api
2014-08-26 16:26:30 +01:00
Mark Haines
47c1a3d454
Merge branch 'develop' into storage_transactions
2014-08-26 16:15:49 +01:00
Mark Haines
3281fec07a
Use state_key rather than target_user_id
2014-08-26 16:14:54 +01:00
Mark Haines
a29d12a18a
Use state_key rather than target_user_id
2014-08-26 16:13:32 +01:00
Mark Haines
4b63b06cad
Merge branch 'develop' into storage_transactions
...
Conflicts:
synapse/api/auth.py
synapse/handlers/room.py
synapse/storage/__init__.py
2014-08-26 16:07:05 +01:00
Mark Haines
ac21dfff6d
Fix pyflakes errors
2014-08-26 16:02:59 +01:00
Mark Haines
32347bfcc9
fix a few pyflakes errors
2014-08-26 16:01:29 +01:00
Erik Johnston
a664ec20e0
Add a do_users_share_a_room method and use that in the presence handler.
2014-08-26 13:38:26 +01:00
Kegan Dougal
47c3a089c5
Merge branch 'develop' of github.com:matrix-org/synapse into client_server_url_rename
2014-08-26 09:26:33 +01:00
Kegan Dougal
cab3095803
Removed member list servlet: now using generic state paths.
2014-08-26 09:26:07 +01:00
Erik Johnston
cda4ff8519
Oops, we need to use defer.returnValue.
2014-08-22 18:23:02 +01:00
Erik Johnston
5b058a79cb
Make is_presence_visible always return true as it was thrashing the database.
2014-08-22 18:21:21 +01:00
Erik Johnston
b18db63c06
Turn off more spammy logging.
2014-08-22 18:13:50 +01:00
Erik Johnston
9f514915af
Add indices to schema
2014-08-22 18:03:39 +01:00
Mark Haines
1379dcae6f
Take a snapshot of the state of the room before performing updates
2014-08-22 17:00:10 +01:00
Erik Johnston
e7ee0b9fc1
Change IM sync api to also return the current presence list.
2014-08-21 16:40:21 +01:00
Erik Johnston
3d1cae0e79
In the initial sync api, return the inviter for rooms in the 'invited' state
2014-08-21 15:07:08 +01:00
Erik Johnston
c6950b18cc
Return the current state in the initial sync api.
2014-08-21 15:06:22 +01:00
Erik Johnston
1587ea26fe
Wait for getting a Join in response to an invite/join dance.
2014-08-21 14:38:22 +01:00
Paul "LeoNerd" Evans
583add34fe
Use the "collect_presencelike_data" distributor signal instead of re-implementing its behaviour
2014-08-20 16:06:47 +01:00
Paul "LeoNerd" Evans
50718825bd
Fix exception name in _fill_out_join_content() exception
2014-08-20 16:06:47 +01:00
Paul "LeoNerd" Evans
9c0e570496
Kill the "_homeserver_" injected messages for room membership changes
2014-08-20 16:06:47 +01:00
Erik Johnston
5ef0948eaa
Better handle the edge cases of trying to remote join rooms
2014-08-20 14:42:47 +01:00
Erik Johnston
849627b82e
Don't generate room membership messages. Include previous state of in membership messages.
2014-08-20 11:53:57 +01:00
Erik Johnston
e2b861cc67
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
2014-08-19 16:41:13 +01:00
Erik Johnston
5c00614aab
PresenceStreamData was expecting *_key to be ints
2014-08-19 15:51:10 +01:00
Paul "LeoNerd" Evans
89cabba3e0
Don't delete OFFLINE users from the presence cache, so we can report on their offline mtime
2014-08-19 14:51:15 +01:00
Erik Johnston
347242a5c4
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
...
Conflicts:
tests/rest/test_presence.py
tests/rest/test_rooms.py
tests/utils.py
2014-08-19 14:48:19 +01:00
Erik Johnston
234128586b
Print out stacktrace when we failed to persist event.
2014-08-19 14:30:28 +01:00
Erik Johnston
75b6d982a0
Add a 'backfill room' button
2014-08-19 14:20:03 +01:00
Erik Johnston
598a1d8ff9
Change the way pagination works to support out of order events.
2014-08-19 14:19:48 +01:00
Paul "LeoNerd" Evans
88f7482b92
Perform the 'REST'-level tests of Presence against the real Presence handler as well, mocking out the datastore beneath it
2014-08-19 11:16:23 +01:00
Paul "LeoNerd" Evans
83f031207e
Implement and test presence dropping of remote users
2014-08-19 11:16:23 +01:00
Erik Johnston
1422a22970
Fix typos in SQL and where we still had rowid's (which no longer exist)
2014-08-18 16:25:18 +01:00
Erik Johnston
4eb8f84aa8
Make snapshot_all_rooms return results in the correct form, including start and end tokens.
2014-08-18 16:20:21 +01:00
Erik Johnston
b4a1f2ccb5
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
2014-08-18 15:53:40 +01:00
Paul "LeoNerd" Evans
faf25e3a83
Allow room presence visibility between users who share a room
2014-08-18 13:41:43 +01:00
Erik Johnston
1c2caacd67
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
2014-08-18 11:14:57 +01:00
Erik Johnston
dccb2f57be
Disable the ability to GET individualy messages. We need to think about the correct API to do this, as the current one doesn't make much sense.
2014-08-18 10:59:04 +01:00
Matthew Hodgson
98ed3d0222
improve comment
2014-08-16 01:52:03 +01:00
Matthew Hodgson
fc846aa771
emergency bodges to turn off presence ACLs in order to make
...
matrix.org:8080 actually work
2014-08-16 01:47:17 +01:00
Erik Johnston
7f5c7ddea9
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
2014-08-15 17:50:27 +01:00
Paul "LeoNerd" Evans
9c41f635a9
When starting to poll for presence, also include members of all shared rooms
2014-08-15 17:12:07 +01:00
Erik Johnston
6efc688917
Fix typo of key name
2014-08-15 16:47:26 +01:00
Erik Johnston
d260a42ca2
PEP8 cleanups
2014-08-15 16:17:36 +01:00
Erik Johnston
8d1f763209
Fix pagination to work with new db schema
2014-08-15 15:53:06 +01:00
Erik Johnston
01f089d9fb
Correctly return new token when returning events. Serialize events correctly.
2014-08-15 15:28:54 +01:00
Erik Johnston
114984a236
Start chagning the events stream to work with the new DB schema
2014-08-15 13:58:28 +01:00
Erik Johnston
d72f897f07
Merge branch 'master' of github.com:matrix-org/synapse into sql_refactor
...
Conflicts:
synapse/storage/stream.py
2014-08-15 11:50:14 +01:00
Erik Johnston
5002efa31b
Reimplement the get public rooms api to work with new DB schema
2014-08-15 10:26:35 +01:00
Erik Johnston
2c46bb6208
Fix up typos and correct sql queries
2014-08-14 18:40:50 +01:00
Erik Johnston
661c711765
Start fixing places that use the data store.
2014-08-14 17:34:37 +01:00
Kegan Dougal
fef3183461
Pass back the user_id in the response to /login in case it has changed. Store and use that on the webclient rather than the input field.
2014-08-14 16:40:15 +01:00
Kegan Dougal
ca3747fb2f
hs: Make /login accept full user IDs or just local parts. webclient: Only enable Register button when both password fields match.
2014-08-14 16:29:51 +01:00
Paul "LeoNerd" Evans
53147e5ae4
Reflect user's messages up to themselves before pushing it to federatoin; also release roomlock before touching federation so we don't halt progress on the world
2014-08-14 16:22:08 +01:00
Kegan Dougal
5a5f37ca17
Send forbidden codes when doing login attempts.
2014-08-14 14:29:06 +01:00
Paul "LeoNerd" Evans
0fa05ea331
Round Presence mtime and mtime_age to nearest msec; avoids floats for msec values over the wire
2014-08-14 14:16:01 +01:00
Kegan Dougal
c75add6ec8
Added a urls module for keeping client and federation prefixes.
2014-08-14 11:52:56 +01:00
Paul "LeoNerd" Evans
d05aa651f8
An initial hack at storing presence state-change mtimes in database and presenting age durations to clients/federation events
2014-08-13 19:19:15 +01:00
Paul "LeoNerd" Evans
3a1cfe18cf
Implement directory service federation by Federation Queries; avoid local_only hack; add unit tests
2014-08-13 18:03:41 +01:00