Commit Graph

53 Commits

Author SHA1 Message Date
reivilibre aaa7cf3fe9 Add Self-service Password Change (#2863)
Co-authored-by: Quentin Gliech <quenting@element.io>
2024-06-25 13:25:33 +00:00
reivilibre 121966ccce GraphQL API: Add password_change_allowed to SiteConfig (#2857) 2024-06-20 15:16:50 +01:00
reivilibre d76b54b13f Add a setPassword GraphQL mutation for setting a user's password (#2820)
* Feed `PasswordManager` through to the GraphQL `State`

* Add `setPassword` GraphQL mutation to update a user's password
2024-06-05 18:04:17 +01:00
Quentin Gliech ee68521792 Hide the displayname edit button if disabled in the config 2024-04-30 13:33:47 +02:00
Quentin Gliech 49cf6dc5cc Expose the site config in the GraphQL API 2024-04-30 13:33:47 +02:00
Quentin Gliech 452f4c17f5 graphql: check that the username is available when creating them
This calls the HS to make sure the username isn't reserved.
This check can be bypassed using the `skipHomeserverCheck` flag on the
`addUser` mutation.
2024-02-29 11:21:24 +01:00
Quentin Gliech f3cbd3b315 Parse User Agents on the backend side (#2388)
* Parse user agents on the server side

* Parse and expose user agents on the backend

* Use the parsed user agent in the device consent page

* Fix the device icon tests

* Fix clippy warnings

* Box stuff to avoid large enum variants

* Ignore a clippy warning

* Fix the requester boxing
2024-02-23 16:47:48 +01:00
Quentin Gliech ed5893eb20 Save which user session created a compat session
This also exposes the user session in the GraphQL API, and allow
filtering on browser session ID on the app session list.
2024-02-21 11:55:58 +01:00
Quentin Gliech e041f47dfe Replace Jotai with @tanstack/router (#2359)
* Start replacing jotai with @tanstack/router

* Remove jotai completely

* Move the common layout & reimplement the ?action parameter

This also makes sure everything is properly loaded in the route loader,
and we use fragment where it makes sense

* Change the default error component

* GraphQL API: make the sessions fetchable through node(id: ID!)
2024-02-15 17:19:05 +01:00
Quentin Gliech f8d745d308 Add a GraphQL mutation to allow cross-signing reset 2023-12-05 17:47:36 +01:00
Quentin Gliech 3cb8a26d95 "Can request admin" flag on user 2023-10-09 18:52:30 +02:00
Quentin Gliech 2a100ab927 graphql: allow filtering appsessions on device_id 2023-10-06 16:05:26 +02:00
Quentin Gliech d91b0e20e4 Expose a unified session list in the GraphQL API 2023-09-20 20:27:08 +02:00
Quentin Gliech 50558a7319 Make the last activity timestamp and IP available through the API 2023-09-19 21:57:54 +02:00
Quentin Gliech 83ca90ee3d Add a GraphQL mutation to create arbitrary OAuth2 sessions. 2023-09-11 12:03:42 +02:00
Quentin Gliech 7e247830c9 data-model: Make the user_id optional in the OAuth 2.0 sessions 2023-09-06 09:35:34 +02:00
Quentin Gliech bc3f665739 graphql: expose the logo_uri in the OAuth 2.0 client
Fixes #1705
2023-09-06 09:28:47 +02:00
Quentin Gliech 15ade8e1c8 Update the graphql schema after the async-graphql update. 2023-09-04 09:37:26 +02:00
Quentin Gliech be5b527403 graphql: admin API to add a user, lock them, and add emails without verification 2023-09-01 11:34:58 +02:00
Quentin Gliech 7fcd022eea Make sure we validate passwords & emails by the policy at all stages
Also refactors the way we get the policy engines in requests
2023-08-30 19:39:39 +02:00
Quentin Gliech a19f405e53 graphql: Expose the BrowserSession User-Agent 2023-08-29 17:38:01 +02:00
Quentin Gliech ba98b7c448 graphql: API to query client sessions out of a device_id and a user ID 2023-08-29 16:53:38 +02:00
Quentin Gliech 438a10332a Add the user_id directly on oauth2_sessions and make the scope a text list 2023-08-29 12:52:24 +02:00
Quentin Gliech 85629820fd api: Add a finishedAt property to the BrowserSession and a state property to all 3 session types 2023-08-29 08:34:07 +02:00
Quentin Gliech 096386e9b9 Save the application_type and the contacts in the OAuth 2.0 clients
This also removes the dedicated "redirect_uris" table and makes it a field of the "oauth2_clients" table
2023-08-28 14:41:49 +02:00
Quentin Gliech 1c372da6b8 Update GraphQL schema 2023-08-11 14:56:21 +02:00
Quentin Gliech 1e474518f5 graphql: API to set the user displayname (#1412) 2023-08-03 14:45:59 +00:00
Quentin Gliech c454f5604b frontend: show pagination total count in more lists 2023-07-21 19:50:30 +02:00
Quentin Gliech 517438471c Better upstream OAuth provider pagination and filtering 2023-07-21 19:50:30 +02:00
Quentin Gliech 6767c93a75 Better OAuth 2.0 sessions pagination and filtering 2023-07-21 19:50:30 +02:00
Quentin Gliech a75a53cc24 Better user emails pagination and filtering 2023-07-21 19:50:30 +02:00
Quentin Gliech 12ad572db8 Better SSO login pagination and filtering 2023-07-21 19:50:30 +02:00
Quentin Gliech 24b29498a7 Better compatibility sessions pagination and filtering 2023-07-21 19:50:30 +02:00
Quentin Gliech 802cf142fd Remove the last authentication from the browser session model 2023-07-21 19:50:30 +02:00
Quentin Gliech 7e82ae845c WIP: use sea-query for dynamic paginated queries 2023-07-21 19:50:30 +02:00
Quentin Gliech ca520dfd9a frontend: Show all compatibilities sessions, not just SSO logins
Also cleans up a bunch of things in the frontend
2023-07-06 18:12:34 +02:00
Quentin Gliech f67cc0d6d0 Frontend cleanups
Mainly:

 - better handling of GraphQL errors
 - better logout state
 - dependencies update
 - a way to end browser sessions in the GraphQL API
2023-06-20 16:53:53 +02:00
Quentin Gliech 4181cbc9d5 Refactor the matrix connection logic
Also make the display name available through the graphql api
2023-06-16 19:52:39 +02:00
Quentin Gliech 7e90564d16 Bump Rust dependencies 2023-06-14 12:02:16 +02:00
Quentin Gliech b56c2350a4 Buttons to end compat and OAuth2 sessions 2023-06-14 09:24:49 +02:00
Quentin Gliech 119e3300de Schema update 2023-06-14 09:24:49 +02:00
Quentin Gliech 63d4bfd0d4 Ability to set the primary email and cleanup the email lists 2023-06-14 09:24:49 +02:00
Quentin Gliech 741873b84e Ability to remove emails 2023-06-14 09:24:49 +02:00
Quentin Gliech ed5c367df6 Have better output types on mutations 2023-04-25 16:39:15 +02:00
Quentin Gliech 3b0f2ea1b0 Have a new viewer and viewerSession graphql query member
This deprecates `currentUser` and `currentBrowserSession`, but doesn't remove them (yet).

Also start to split the root query in multiple objects
2023-04-25 16:39:15 +02:00
Quentin Gliech 047a91907d Split the mutations and make them use an input object instead of different parameters 2023-04-25 16:39:15 +02:00
Quentin Gliech be765fe04f Setup GraphQL mutations to add and verify email addresses
This refactors a bit how the connection to the repository is done in the
graphql handler, so that we can properly commit transactions.
2023-04-25 16:39:15 +02:00
Quentin Gliech 82421c493c Remove the dependency mas-axum-utils <- mas-graphql
This is done by loading the browser session earlier
Also removes the GraphQL subscription logic
2022-12-15 16:51:43 +01:00
Quentin Gliech 1655080b8f GraphQL: query upstream links from users 2022-12-05 19:39:51 +01:00
Quentin Gliech 2e7112ef13 GraphQL API 2022-12-05 19:39:51 +01:00