dendrite/clientapi/routing
tommie c36e4546c3
Support for m.login.token (#2014)
* Add GOPATH to PATH in find-lint.sh.

The user doesn't necessarily have it in PATH.

* Refactor LoginTypePassword and Type to support m.login.token and m.login.sso.

For login token:

* m.login.token will require deleting the token after completeAuth has
  generated an access token, so a cleanup function is returned by
  Type.Login.
* Allowing different login types will require parsing the /login body
  twice: first to extract the "type" and then the type-specific parsing.
  Thus, we will have to buffer the request JSON in /login, like
  UserInteractive already does.

For SSO:

* NewUserInteractive will have to also use GetAccountByLocalpart. It
  makes more sense to just pass a (narrowed-down) accountDB interface
  to it than adding more function pointers.

Code quality:

* Passing around (and down-casting) interface{} for login request types
  has drawbacks in terms of type-safety, and no inherent benefits. We
  always decode JSON anyway. Hence renaming to Type.LoginFromJSON. Code
  that directly uses LoginTypePassword with parsed data can still use
  Login.
* Removed a TODO for SSO. This is already tracked in #1297.
* httputil.UnmarshalJSON is useful because it returns a JSONResponse.

This change is intended to have no functional changes.

* Support login tokens in User API.

This adds full lifecycle functions for login tokens: create, query, delete.

* Support m.login.token in /login.

* Fixes for PR review.

* Set @matrix-org/dendrite-core as repository code owner

* Return event NID from `StoreEvent`, match PSQL vs SQLite behaviour, tweak backfill persistence (#2071)

Co-authored-by: kegsay <kegan@matrix.org>
Co-authored-by: Neil Alexander <neilalexander@users.noreply.github.com>
2022-02-10 10:27:26 +00:00
..
account_data.go Use NotFound instead of Forbidden for missing account data (#1872) 2021-06-14 14:06:14 +01:00
admin_whois.go Implemented whois endpoint (#1573) 2020-11-17 10:07:03 +00:00
aliases.go Various alias fixes (#1934) 2021-07-21 16:53:50 +01:00
auth_fallback.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
capabilities.go Finish implementing the capabilities endpoint (#1449) 2020-09-29 10:06:59 +01:00
createroom.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
deactivate.go Read the right username field when performing account deactivation (#1954) 2021-08-02 13:11:23 +01:00
device.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
directory_public_test.go Implement ExtraPublicRoomsProvider for p2p demos (#1180) 2020-07-03 12:59:00 +01:00
directory_public.go "Enable" remote room search (#2099) 2022-01-28 11:07:47 +00:00
directory.go Merge federationapi, federationsender, signingkeyserver components (#2055) 2021-11-24 10:45:23 +00:00
getevent.go Send events to appservice based on room membership (#1680) 2021-03-03 16:27:44 +00:00
joinroom.go Return 200 on join before time out (#1493) 2020-10-07 15:29:14 +01:00
key_backup.go Add missing HTTP mode for userapi (#1982) 2021-12-03 17:18:35 +00:00
key_crosssigning.go Hopefully fix UIA for cross-signing setup (closes #1983) (#1986) 2021-08-24 11:44:03 +01:00
keys.go Cross-signing groundwork (#1953) 2021-08-04 17:56:29 +01:00
leaveroom.go Make userapi responsible for checking access tokens (#1133) 2020-06-16 14:10:55 +01:00
login.go Support for m.login.token (#2014) 2022-02-10 10:27:26 +00:00
logout.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
membership.go Allow user to forget a room, even if they never were a member (#2166) 2022-02-10 10:05:37 +00:00
memberships.go Don't send null in joined_rooms response (#1659) 2020-12-18 13:33:08 +00:00
openid.go Implement OpenID module (#599) (#1812) 2021-04-07 13:26:20 +01:00
password.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
peekroom.go Peeking updates (#1607) 2020-12-03 11:11:46 +00:00
profile.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
receipt.go Implement read receipts (#1528) 2020-11-09 18:46:11 +00:00
redaction.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
register_secret_test.go Implement /_synapse/admin/v1/register (#1911) 2021-07-09 16:52:31 +01:00
register_secret.go - Removed double imports (#1989) 2021-09-08 17:31:03 +01:00
register_test.go Don't populate config defaults where it doesn't make sense (#2058) 2021-11-24 11:57:39 +00:00
register.go Implement /_synapse/admin/v1/register (#1911) 2021-07-09 16:52:31 +01:00
room_tagging.go Refactor account data (#1150) 2020-06-18 18:36:03 +01:00
routing.go Support for m.login.token (#2014) 2022-02-10 10:27:26 +00:00
sendevent.go Roomserver/federation input refactor (#2104) 2022-01-27 14:29:14 +00:00
sendtodevice.go Make userapi responsible for checking access tokens (#1133) 2020-06-16 14:10:55 +01:00
sendtyping.go Remove QueryCurrentState from current-state-server (#1395) 2020-09-04 12:30:56 +01:00
state.go Increase gocyclo complexity to 25 (and remove all but 2 golint directives related to it) (#1783) 2021-03-03 14:35:57 +00:00
threepid.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
userdirectory.go Remove QueryKnownUsers from current state server (#1393) 2020-09-04 11:46:01 +01:00
voip.go Top-level setup package (#1605) 2020-12-02 17:41:00 +00:00
whoami.go Make userapi responsible for checking access tokens (#1133) 2020-06-16 14:10:55 +01:00