Kegan Dougal
|
c707b7d128
|
SYWEB-3 : Added 'visibility' key to rooms returned via /initialSync
|
2014-09-17 16:09:07 +01:00 |
|
Paul "LeoNerd" Evans
|
9973298e2a
|
Print expected-vs-actual data types on typecheck failure from check_json()
|
2014-09-17 15:27:45 +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
|
c099b36af3
|
Comment out password reset for now, until the mechanism is fully discussed (IS token auth vs HS auth)
|
2014-09-16 13:32:33 +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
|
1e4b971f95
|
Fix bug where we didn't always get 'prev_content' key
|
2014-09-15 17:43:46 +01:00 |
|
Erik Johnston
|
40d2f38abe
|
Fix bug where we incorrectly calculated 'age_ts' from 'age' key rather than the reverse. Don't transmit age_ts to clients for now.
|
2014-09-15 16:55:39 +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 |
|
Erik Johnston
|
6ac0b4ade8
|
Fix 'age' key to update on retries
|
2014-09-15 16:24:03 +01:00 |
|
Kegan Dougal
|
34d7896b06
|
More helpful 400 error messages.
|
2014-09-15 16:05:51 +01:00 |
|
Kegan Dougal
|
2c00e1ecd9
|
Be consistent when associating keys with login types for registration/login.
|
2014-09-15 15:38:29 +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 |
|
Kegan Dougal
|
04fbda46dd
|
Make captcha work again with the new registration logic.
|
2014-09-15 14:52:39 +01:00 |
|
Paul "LeoNerd" Evans
|
b0406b9ead
|
Merge remote-tracking branch 'origin/develop' into test-sqlite-memory
|
2014-09-15 14:15:10 +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
|
34878bc26a
|
Added LoginType constants. Created general structure for processing registrations.
|
2014-09-15 10:23:20 +01:00 |
|
Erik Johnston
|
afb7f173cf
|
Bump version and change log
|
2014-09-12 18:13:05 +01:00 |
|
Erik Johnston
|
14975ce5bc
|
Fix bug where we relied on the current_state_events being updated when we are handling type specific persistence
|
2014-09-12 17:57:02 +01:00 |
|
Erik Johnston
|
667e747ed1
|
Fix bug where we no longer stored user_id on Pdus
|
2014-09-12 17:56:21 +01:00 |
|
Paul "LeoNerd" Evans
|
1c51c8ab7d
|
Merge remote-tracking branch 'origin/develop' into test-sqlite-memory
Conflicts:
synapse/storage/pdu.py
|
2014-09-12 17:20:06 +01:00 |
|
Erik Johnston
|
39e3fc69e5
|
Make the state resolution use actual power levels rather than taking them from a Pdu key.
|
2014-09-12 17:11:09 +01:00 |
|
Erik Johnston
|
b42fe05c51
|
Fix bug where we incorrectly removed a remote host from the list of hosts in a room when any user from that host left that room even if they weren't the last user from that host in that room
|
2014-09-12 17:11:09 +01:00 |
|
Erik Johnston
|
ca1ae7cf9b
|
Fix bug where we didn't return a tuple when expected.
|
2014-09-12 17:11:09 +01:00 |
|
Paul "LeoNerd" Evans
|
aa525e4a63
|
More accurate docs / clearer paramter names in RoomMemberStore
|
2014-09-12 16:43:49 +01:00 |
|
Paul "LeoNerd" Evans
|
a87eac4308
|
Revert recent changes to RoomMemberStore
|
2014-09-12 15:51:51 +01:00 |
|
Paul "LeoNerd" Evans
|
a840ff8f3f
|
Now don't need the other logger.debug() call in _execute
|
2014-09-12 14:38:27 +01:00 |
|
Paul "LeoNerd" Evans
|
1c20249884
|
Logging of all SQL queries via the 'synapse.storage.SQL' logger
|
2014-09-12 14:37:55 +01:00 |
|
Paul "LeoNerd" Evans
|
e53d77b501
|
Add a .runInteraction() method on SQLBaseStore itself to wrap the .db_pool
|
2014-09-12 14:28:07 +01:00 |
|
Paul "LeoNerd" Evans
|
249e8f2277
|
Add a better _store_room_member_txn() method that takes separated fields instead of an event object; also add FIXME comment about a big bug in the logic
|
2014-09-11 18:52:35 +01:00 |
|
Paul "LeoNerd" Evans
|
aaf9ab68c6
|
Rename _store_room_member_txn to _store_room_member_from_event_txn so we can create another, more sensible function of that name
|
2014-09-11 18:44:04 +01:00 |
|
Paul "LeoNerd" Evans
|
55397f6347
|
prepare_database() on db_conn, not plain name, so we can pass in the connection from outside
|
2014-09-10 16:23:58 +01:00 |
|
Paul "LeoNerd" Evans
|
2faffc52ee
|
Make sure not to open our TCP ports until /after/ the DB is nicely prepared ready for use
|
2014-09-10 16:16:24 +01:00 |
|
Paul "LeoNerd" Evans
|
6c1f0055dc
|
No need for a tiny run() function any more, just use reactor.run() directly
|
2014-09-10 16:07:44 +01:00 |
|
Paul "LeoNerd" Evans
|
ce55a8cc4b
|
Move database preparing code out of homserver.py into storage where it belongs
|
2014-09-10 15:42:15 +01:00 |
|
Erik Johnston
|
a75f8686ba
|
Fix bug where we used an unbound local variable if we ended up rolling back the persist_event transaction
|
2014-09-09 16:27:59 +01:00 |
|
Erik Johnston
|
e062f2dfa8
|
Apparently we can't do txn.rollback(), so raise and catch an exception instead.
|
2014-09-08 22:37:19 +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
|
942d8412c4
|
Handle the case where we don't have a common ancestor
|
2014-09-08 20:13:27 +01:00 |
|
Erik Johnston
|
83ce57302d
|
Fix bug in state handling where we incorrectly identified a missing pdu. Update tests to catch this case.
|
2014-09-08 19:50:59 +01:00 |
|
Erik Johnston
|
c0577ea87a
|
Rollback if we try and insert duplicate events
|
2014-09-08 18:34:18 +01: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 |
|
Erik Johnston
|
7735aad9d6
|
Bump version and changelog
|
2014-09-08 11:28:50 +02:00 |
|
Erik Johnston
|
2205aba3ed
|
Fix bug where we used an event_id as a pdu_id
|
2014-09-06 07:41:51 +01: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
|
6d19fe1481
|
Fix generation of event ids so that they are consistent between local and remote ids
|
2014-09-06 02:48:13 +01:00 |
|
Erik Johnston
|
781ff713ba
|
When getting a state event also include the previous content
|
2014-09-06 02:23:36 +01:00 |
|
Kegan Dougal
|
0b9e1e7b56
|
Added a captcha config to the HS, to enable registration captcha checking and for the recaptcha private key.
|
2014-09-05 17:58:06 -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
|
480438eee6
|
Validate power levels event changes. Change error messages to be more helpful. Fix bug where we checked the wrong power levels
|
2014-09-05 21:54:16 +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
|
982604fbf2
|
Empty string is not a valid JSON object, so don't return them in HTTP responses.
|
2014-09-05 17:13:26 +01:00 |
|
Erik Johnston
|
250ee2ea7d
|
AUth the contents of power level events
|
2014-09-05 17:13:19 +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
|
300816ffa1
|
Bump versions. Update change logs.
|
2014-09-03 19:39:45 +01:00 |
|
Paul "LeoNerd" Evans
|
4c3512a45c
|
Added a TODO note about YAML modeline for editors
|
2014-09-03 19:30:48 +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 |
|
Paul "LeoNerd" Evans
|
d703e712f7
|
Add support to _simple_insert() to do INSERT OR REPLACE
|
2014-09-03 18:18:41 +01:00 |
|
Erik Johnston
|
1b491e50c9
|
Implement a kick api
|
2014-09-03 17:46:52 +01:00 |
|
Paul "LeoNerd" Evans
|
4081413876
|
Default PID file should be 'homeserver.pid' to match the other 'homeserver.*' naming convention
|
2014-09-03 17:34:07 +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 |
|
Mark Haines
|
ee2bcdec65
|
Limit the size of uploads
|
2014-09-03 17:04:16 +01:00 |
|
Kegan Dougal
|
beaf50f5c6
|
Bubble up SynapseErrors so expected failures aren't masked.
|
2014-09-03 16:31:01 +01:00 |
|
Kegan Dougal
|
581c54bebe
|
Add exception handling to directory servlet, so we don't 500. Mark directory API as volatile in the api docs.
|
2014-09-03 16:27:01 +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
|
b5f9d47c89
|
Handle new state events which don't have a common ancestor
|
2014-09-03 15:50:05 +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
|
756e171ad0
|
Store SQL DDL deltas as well; attempt to upgrade the database on startup if it's too old
|
2014-09-03 14:14:39 +01:00 |
|
Kegan Dougal
|
b1195c125f
|
hs: Updated synapse.http.client to handle DNSLookupErrors and bail immediately.
|
2014-09-03 13:51:17 +01:00 |
|
Paul "LeoNerd" Evans
|
da31b96b55
|
Implement presence state visibilty limiting when polling eventsource for stream
|
2014-09-03 13:46:52 +01:00 |
|
Paul "LeoNerd" Evans
|
86d6232236
|
Don't eat federation transmit errors during unit tests; fix remote presence EDU-sending test because of this
|
2014-09-03 13:46:52 +01:00 |
|
Paul "LeoNerd" Evans
|
061e814195
|
Make sure to print exceptions properly from notifier failures
|
2014-09-03 13:46:52 +01:00 |
|
Kegan Dougal
|
cd0afb85c4
|
Updated feedback api docs and fixed feedback content template bug
|
2014-09-03 13:08:17 +01:00 |
|
Kegan Dougal
|
dfea1730dc
|
apidocs: mtime_age > last_active_ago. Presence REST: Sanity check values in invite/drop arrays.
|
2014-09-03 12:09:20 +01:00 |
|
Erik Johnston
|
b50ea730b1
|
Merge branch 'develop' of github.com:matrix-org/synapse into develop
Conflicts:
synapse/http/server.py
synapse/http/content_repository.py
|
2014-09-03 12:01:14 +01:00 |
|
Erik Johnston
|
bc21350298
|
Add option to change content repo location
|
2014-09-03 11:57:23 +01:00 |
|
Kegan Dougal
|
10afd895c4
|
Edited /presence REST servlet to raise SynapseErrors to return a standard error response, rather than a string.
|
2014-09-03 11:56:47 +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
|
acfabfff9c
|
Fixed /presence APIs to urldecode user IDs.
|
2014-09-03 11:31:48 +01:00 |
|
Kegan Dougal
|
65693e9e15
|
Fixed GET /events/$id to be not broken.
|
2014-09-03 11:24:45 +01:00 |
|
Mark Haines
|
bf10cf5f1a
|
move contentrepo class to it's own file
|
2014-09-03 11:10:44 +01:00 |
|
Kegan Dougal
|
2385d396c3
|
URL decode user IDs for /profile REST path segments.
|
2014-09-03 11:05:29 +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
|
967b45bc1a
|
Allow optional non-suppression of exceptions through the Distributor
|
2014-09-03 10:40:21 +01:00 |
|
Paul "LeoNerd" Evans
|
ddf3ca7ab3
|
Neater is_presence_visible() code
|
2014-09-03 10:40:21 +01:00 |
|
Erik Johnston
|
ddc16d8642
|
Merge branch 'master' into develop
|
2014-09-03 09:46:39 +01:00 |
|
Kegan Dougal
|
c77add6d21
|
Add ban support: /rooms/$roomid/ban with { user_id : foo }
|
2014-09-03 09:43:32 +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
|
0a1260b03a
|
Add ratelimiting config
|
2014-09-02 18:00:15 +01:00 |
|
Mark Haines
|
c7a7cdf734
|
Add ratelimiting function to basehandler
|
2014-09-02 17:57:04 +01:00 |
|
Erik Johnston
|
e166e29e87
|
Bump version and changelog
|
2014-09-02 16:57:10 +01:00 |
|
Erik Johnston
|
235f686da9
|
Update default endpoint port to match the default ports in the config
|
2014-09-02 16:56:57 +01:00 |
|
Erik Johnston
|
464e1fcfa5
|
Merge branch 'master' of github.com:matrix-org/synapse into release-v0.2.0
Conflicts:
synapse/notifier.py
webclient/room/room-controller.js
webclient/room/room.html
|
2014-09-02 15:26:11 +01:00 |
|
Mark Haines
|
dd2cd9312a
|
Test ratelimiter
|
2014-09-02 15:16:26 +01:00 |
|
Paul "LeoNerd" Evans
|
aa337f588c
|
Order matters when adding REST servlets
|
2014-09-02 12:53:36 +01:00 |
|
Erik Johnston
|
4b8244fbf8
|
Fix bug where we didn't correctly store the ops power levels event.
|
2014-09-02 12:12:14 +01:00 |
|
David Baker
|
5c778f2f15
|
Add rest endpoint for the whole user profile
|
2014-09-02 11:49:17 +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 |
|
Mark Haines
|
436b3c7d0c
|
Ratelimiter object
|
2014-09-02 11:16:21 +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 |
|
Mark Haines
|
cf890e9d43
|
Remove option for disabling webclient because it was confusing
|
2014-09-02 11:09:41 +01:00 |
|
Erik Johnston
|
db02021aba
|
Implement auth for kicking.
|
2014-09-02 10:58:33 +01:00 |
|
Erik Johnston
|
ed25abe05f
|
Add message to assertion
|
2014-09-02 10:58:33 +01:00 |
|
Erik Johnston
|
08d2f902dd
|
Default HTTP and HTTPS ports to 8008 and 8448
|
2014-09-02 10:58:33 +01:00 |
|
Mark Haines
|
45570e4695
|
os.makedirs is almost but not entirely unlike mkdir -p
|
2014-09-02 10:58:05 +01:00 |
|
Mark Haines
|
64b341cc10
|
Fix typo when reading TLS config
|
2014-09-02 10:54:56 +01:00 |
|
Mark Haines
|
30572e28c2
|
Make the config directory if the directory doesn't exisit when generating config
|
2014-09-02 10:52:25 +01:00 |
|
Mark Haines
|
d45f89c95b
|
More helpful error messages for missing config
|
2014-09-02 10:49:11 +01:00 |
|
Erik Johnston
|
040d985908
|
Add support for setting room name and topic when creating rooms
|
2014-09-02 10:02:14 +01:00 |
|
Matthew Hodgson
|
68a04b9282
|
given everything's apparently gone https:// by default for c-s, change this hardcoding...
|
2014-09-01 23:28:43 +01:00 |
|
Mark Haines
|
399e004884
|
Add unsecure listener port to homeserver
|
2014-09-01 22:38:52 +01:00 |
|
Mark Haines
|
79650f795f
|
enable ECDHE ciphers
|
2014-09-01 22:29:44 +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 |
|
Matthew Hodgson
|
61e28cdb6f
|
specify metavars in argparse
|
2014-09-01 22:11:08 +01:00 |
|
Mark Haines
|
6fd730c96b
|
Use yaml for config file
|
2014-09-01 20:44:51 +01:00 |
|
Erik Johnston
|
48142a01dd
|
Don't set a 'default' key in the creation event
|
2014-09-01 20:39:43 +01:00 |
|
Mark Haines
|
8b69468e5f
|
Use pregenerated DH params when generating config
|
2014-09-01 20:35:18 +01:00 |
|
Erik Johnston
|
bcfaaf7da6
|
That was a breaking db change. You need to recreate the databases. (In reality, it's enough to just run the im.sql through your db and change the schema version)
|
2014-09-01 20:34:07 +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
|
f452899fe2
|
Merge branch 'develop' of github.com:matrix-org/synapse into room_config
|
2014-09-01 19:57:28 +01:00 |
|
Mark Haines
|
5452a8ee29
|
Fix SSL for federation http client
|
2014-09-01 18:43:08 +01:00 |
|
Mark Haines
|
a53946a8a1
|
Enable SSL for s2s http client
|
2014-09-01 18:30:00 +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 |
|
Mark Haines
|
6200630904
|
Add server TLS context factory
|
2014-09-01 17:55:35 +01:00 |
|
Mark Haines
|
46dcb0d890
|
Merge branch 'develop' into server2server_tls
|
2014-09-01 16:31:09 +01:00 |
|
Mark Haines
|
ef6a8e4f32
|
Listen using SSL
|
2014-09-01 16:30:43 +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 |
|