Commit Graph

328 Commits (4afac883900fe07c99552bbb6f56414b8b0ec81d)

Author SHA1 Message Date
Erik Johnston a8e565eca8 Add an EventValidator. Fix bugs in auth ++ storage 2014-11-10 18:25:42 +00:00
Erik Johnston 5d439b127b PEP8 2014-11-10 13:46:44 +00:00
Erik Johnston 003668cfaa Add auth to the various server-server APIs 2014-11-10 13:37:24 +00:00
Erik Johnston 6447db063a Fix backfill to work. Add auth to backfill request 2014-11-10 11:59:51 +00:00
Erik Johnston 65f846ade0 Notify users about invites. 2014-11-10 11:15:02 +00:00
Erik Johnston 07286a73b1 Use current state to get room hosts, rather than querying the database 2014-11-07 16:03:31 +00:00
Erik Johnston 02c3b1c9e2 Add '/event_auth/' federation api 2014-11-07 15:35:53 +00:00
Erik Johnston d2fb2b8095 Implement invite part of invite join dance 2014-11-07 13:41:00 +00:00
Erik Johnston 3b4dec442d Return auth chain when handling send_join 2014-11-07 11:22:12 +00:00
Erik Johnston 49948d72f3 Fix joining over federation 2014-11-07 10:53:38 +00:00
Erik Johnston bf6b72eb55 Start implementing auth chains 2014-11-07 10:53:38 +00:00
Erik Johnston 351c64e99e Amalgamate all power levels.
Remove concept of reqired power levels, something similiar can be done
using the new power level event.
2014-11-06 16:59:13 +00:00
Erik Johnston 233969bb58 Update to use replaces_state rather than prev_state 2014-11-06 15:25:03 +00:00
Erik Johnston 4317c8e583 Implement new replace_state and changed prev_state
`prev_state` is now a list of previous state ids, similiar to
prev_events. `replace_state` now points to what we think was replaced.
2014-11-06 15:10:55 +00:00
Erik Johnston 96c001e668 Fix auth checks to all use the given old_event_state 2014-11-05 11:07:54 +00:00
Erik Johnston dfb3d21a6d Fix room handler tests 2014-11-04 17:12:39 +00:00
Erik Johnston da4a09f977 Don't bother locking 2014-11-04 16:51:23 +00:00
Erik Johnston 2a49f177fe On AuthError, raise a FederationError 2014-11-04 15:10:43 +00:00
Erik Johnston aa76bf39ab Remove unused imports 2014-11-04 14:14:02 +00:00
Erik Johnston ad6eacb3e9 Rename PDU fields to match that of events. 2014-11-03 13:06:58 +00:00
Erik Johnston 7249785bcb Sign events we create. 2014-11-03 11:33:28 +00:00
Erik Johnston 7a07263281 Merge branch 'develop' of github.com:matrix-org/synapse into federation_authorization 2014-11-03 10:17:37 +00:00
Erik Johnston 1c6825cc7a Use python logger, not the twisted logger 2014-11-03 10:16:28 +00:00
Erik Johnston 21fe249d62 Actually don't store any PDUs 2014-10-31 10:47:34 +00:00
Erik Johnston f2de2d644a Move the impl of backfill to use events. 2014-10-31 09:59:02 +00:00
Erik Johnston 12ce441e67 Convert event ids to be of the form :example.com 2014-10-30 17:00:11 +00:00
Erik Johnston da511334d2 Make federation return the old current state, so that we can use it to do auth 2014-10-30 11:53:35 +00:00
Erik Johnston ef9c4476a0 Merge branch 'develop' of github.com:matrix-org/synapse into federation_authorization 2014-10-30 11:18:28 +00:00
Mark Haines 7d709542ca Fix pep8 warnings 2014-10-30 11:10:17 +00:00
Erik Johnston e7858b6d7e Start filling out and using new events tables 2014-10-29 16:59:24 +00:00
Paul "LeoNerd" Evans b1ee6fd7ed Fix an off-by-one bug in presence event stream pagination; this might be responsible for any number of bug reports 2014-10-29 16:16:01 +00:00
Paul "LeoNerd" Evans d6bcffa929 Construct a source-specific 'SourcePaginationConfig' to pass into get_pagination_rows; meaning each source doesn't have to care about its own name any more 2014-10-29 16:16:01 +00:00
Paul "LeoNerd" Evans c5a25f610a Remove redundant (and incorrect) presence pagination fetching code 2014-10-29 16:16:01 +00:00
Mark Haines 4841b6d4ba Remove duplicate join_event from create_room 2014-10-27 16:55:51 +00:00
Erik Johnston bb4a20174c Merge branch 'develop' of github.com:matrix-org/synapse into federation_authorization
Conflicts:
	synapse/federation/transport.py
	synapse/handlers/message.py
2014-10-27 10:20:44 +00:00
Mark Haines 4be99c2989 Add get_json method to 3pid http client. Better logging for errors in 3pid requests 2014-10-20 14:10:08 +01:00
Erik Johnston bf8cdda2f5 It doesn't want a dict 2014-10-17 20:10:34 +01:00
Erik Johnston b3b1961496 Fix bug where people could join private rooms 2014-10-17 19:37:41 +01:00
Erik Johnston 5ffe5ab43f Use state groups to get current state. Make join dance actually work. 2014-10-17 18:56:42 +01:00
Mark Haines 456017e0ae SPEC-7: Don't stamp event contents with 'hsob_ts' 2014-10-17 16:55:55 +01:00
Erik Johnston f71627567b Finish implementing the new join dance. 2014-10-17 15:04:17 +01:00
Erik Johnston 1116f5330e Start implementing the invite/join dance. Continue moving auth to use event.state_events 2014-10-16 16:56:51 +01:00
Erik Johnston e7bc1291a0 Begin making auth use event.old_state_events 2014-10-15 16:06:59 +01:00
Mark Haines b9cdc443d7 Fix pyflakes errors 2014-10-02 14:37:30 +01:00
Mark Haines 574377636e Add a keyword argument to get_json to avoid retrying on DNS failures. Rather than passing MatrixHttpClient.RETRY_DNS_LOOKUP_FAILURES as a fake query string parameter 2014-10-02 14:26:13 +01:00
Mark Haines 4f11518934 Split PlainHttpClient into separate clients for talking to Identity servers and talking to Capatcha servers 2014-10-02 14:03:26 +01:00
Erik Johnston e06adc6d7e SYN-2: Allow server admins to delete room aliases 2014-09-30 11:31:42 +01:00
Erik Johnston 3ccb17ce59 SYN-48: Implement WHOIS rest servlet 2014-09-29 14:59:52 +01:00
Erik Johnston 37bfe44046 Merge branch 'deletions' of github.com:matrix-org/synapse into develop 2014-09-25 17:02:53 +01:00
Erik Johnston 1ca51c8586 SYN-46: An invite received from fedearation didn't wake up the event stream for the invited user. 2014-09-25 13:01:05 +01:00
Erik Johnston 72eb360f2d Don't set the room name to be the room alias on room creation if the client didn't supply a name 2014-09-24 16:59:57 +01:00
Erik Johnston 70899d3ab2 Rename deletions to redactions 2014-09-24 15:27:59 +01:00
Erik Johnston bc250a6afa SYN-12: Implement auth for deletion by adding a 'delete_level' on the ops levels event
SYN-12 # comment Auth has been added.
2014-09-23 17:36:24 +01:00
Kegan Dougal 0c4ae63ad5 Implemented /rooms/$roomid/state API. 2014-09-23 15:35:58 +01:00
Kegan Dougal c707b7d128 SYWEB-3 : Added 'visibility' key to rooms returned via /initialSync 2014-09-17 16:09:07 +01:00
Erik Johnston b6818fd4d2 SYN-40: When a user updates their displayname or avatar update all their join events for all the rooms they are currently in. 2014-09-17 15:05:14 +01:00
Kegan Dougal cc83b06cd1 Added support for the HS to send emails. Use it to send password resets. Added email_smtp_server and email_from_address config args. Added emailutils. 2014-09-16 12:36:39 +01:00
Kegan Dougal 5f30a69a9e Added PasswordResetRestServlet. Hit the IS to confirm the email/user. Need to send email. 2014-09-16 11:22:40 +01:00
Erik Johnston 59516a8bb1 Correctly handle receiving 'missing' Pdus from federation, rather than just discarding them. 2014-09-15 16:40:44 +01:00
Erik Johnston e639a3516d Improve logging in federation handler. 2014-09-15 16:24:03 +01:00
Kegan Dougal 14bc4ed59f Merge branch 'develop' of github.com:matrix-org/synapse into registration-api-changes in preparation for re-merge to develop. 2014-09-15 15:27:58 +01:00
Erik Johnston 5bd9369a62 Correctly handle the 'age' key in events and pdus 2014-09-15 13:26:11 +01:00
Kegan Dougal 285ecaacd0 Split out password/captcha/email logic. 2014-09-15 12:42:36 +01:00
Kegan Dougal 76fe7d4eba Added num_joined_users key to /publicRooms for each room. Show this information in the webclient. 2014-09-08 12:15:29 -07:00
Erik Johnston 768ff1a850 Fix race in presence handler where we evicted things from cache while handling a key therein 2014-09-08 11:28:50 +02:00
Kegan Dougal 1a298aad9c Added captcha support on both the HS and web client.
Merge branch 'captcha' of github.com:matrix-org/synapse into develop
2014-09-05 23:32:51 -07:00
Kegan Dougal b5749c75d9 Reload captchas when they fail. Cleanup on success. 2014-09-05 23:08:39 -07:00
Kegan Dougal 3ea6f01b4e 80 chars please 2014-09-05 22:55:29 -07:00
Kegan Dougal 37e53513b6 Add config opion for XFF headers when performing ReCaptcha auth. 2014-09-05 22:51:11 -07:00
Kegan Dougal 1829b55bb0 Captchas now work on registration. Missing x-forwarded-for config arg support. Missing reloading a new captcha on the web client / displaying a sensible error message. 2014-09-05 19:18:23 -07:00
Erik Johnston f47f42090d Add support for inviting people when you create a room 2014-09-06 01:10:07 +01:00
Erik Johnston 9dd4570b68 Generate m.room.aliases event when the HS creates a room alias 2014-09-05 21:35:56 +01:00
Erik Johnston 95037d8d9d Change the default power levels to be 0, 50 and 100 2014-09-05 17:13:03 +01:00
Erik Johnston bcaea74352 Error code must be an integer 2014-09-03 19:19:24 +01:00
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