Valentin Tolmer
14be1170f2
app: Extract the form component from the user details page
2021-09-20 11:23:57 +02:00
Valentin Tolmer
5943df6443
app: Extract a Select component
2021-09-20 11:23:57 +02:00
Valentin Tolmer
37c6e8ef30
app: Extract the AddUserToGroup component
2021-09-20 11:23:57 +02:00
Valentin Tolmer
7aab9e8cf5
app: Add a way to manage a user's group memberships
2021-09-20 11:23:57 +02:00
Valentin Tolmer
480f48f820
graphql: Add a method to list groups
2021-09-20 11:23:57 +02:00
Valentin Tolmer
a54e73bded
app: Add the group memberships
2021-09-20 11:23:57 +02:00
Valentin Tolmer
718da71d0d
app: Allow admins to change passwords
2021-09-20 11:23:57 +02:00
Valentin Tolmer
005e18472e
app: reorganize and add a page to change the password
2021-09-13 10:35:39 +02:00
Valentin Tolmer
d647be793a
app: Add a way for users to edit their info
2021-09-03 14:32:33 +02:00
Valentin Tolmer
2954109d96
graphql: Add a method to update a user
2021-09-03 14:32:33 +02:00
Valentin Tolmer
0ac9e134de
schema: make user fields non-nullable
...
They can always be empty. This simplifies mutation, since graphql_client
doesn't have an easy way to conditionally leave out fields (we could do
that with `@include`, but that's one bool per field in addition to the
field, a bit ugly).
2021-09-03 14:32:33 +02:00
Valentin Tolmer
564c09d6ab
app: Fix the user detail view
2021-09-03 14:32:33 +02:00
Valentin Tolmer
3eb53ba5bf
model: rename to auth
...
Since the "model" doesn't contain any message from the API anymore, and
instead contains only the structures needed for authentication, it was
renamed as such.
2021-08-31 20:32:55 +02:00
Valentin Tolmer
6efafa99c8
user_table: refactor to clarify view()
2021-08-31 20:32:55 +02:00
Valentin Tolmer
9c4f8931a0
app: Fix local timezone not taken into account
2021-08-31 20:32:55 +02:00
Valentin Tolmer
2aca9dbe62
app: migrate user creation to GraphQL
2021-08-31 20:32:55 +02:00
Valentin Tolmer
37f61ce212
app: fix registration URLs
2021-08-31 20:32:55 +02:00
Valentin Tolmer
40ba65dca7
app: make a graphql argument required
2021-08-31 20:32:55 +02:00
Valentin Tolmer
dd7e9c9283
app: migrate user_details to graphql endpoint
2021-08-31 20:32:55 +02:00
Valentin Tolmer
0ecd9ed263
Migrate datetimes to UTC
2021-08-30 09:27:00 +02:00
Valentin Tolmer
848cc86d73
api: add the rest of the fields to User
2021-08-30 09:27:00 +02:00
Valentin Tolmer
a1f40a32a5
app: refactor API methods with empty responses
2021-08-30 09:27:00 +02:00
Valentin Tolmer
f860b8fe43
app: Migrate list_users to use the graphql client
2021-08-30 09:27:00 +02:00
Valentin Tolmer
83ed58bff2
errors: use anyhow::Context everywhere
2021-08-30 09:27:00 +02:00
Valentin Tolmer
04b9e97527
Implement client view for the user details
2021-07-05 13:41:36 +02:00
Valentin Tolmer
5e0b41998f
Propagate the admin status to the top component
2021-07-05 13:41:36 +02:00
Valentin Tolmer
d891529da9
Add allow warnings for nonstandard macro braces
...
The warnings come from the macros of libraries that we use, so we can't
change them.
2021-07-05 10:10:27 +02:00
Valentin Tolmer
e09c73efce
Register clients' passwords using OPAQUE
2021-06-25 10:10:55 +02:00
Valentin Tolmer
8b73de0df7
Update opaque and implement it without DB
2021-06-23 20:46:55 +02:00
Valentin Tolmer
0a761ff11f
Create a workspace for the packages
2021-06-23 11:13:05 +02:00
Valentin Tolmer
2f7019433d
Fix clippy warnings
2021-06-23 10:57:34 +02:00
Valentin Tolmer
eec0903052
Refactor API client
2021-06-23 10:27:59 +02:00
Valentin Tolmer
659eab3706
Implement opaque login flow in the client
2021-06-23 10:27:59 +02:00
Valentin Tolmer
c3bbcce6a3
Simplify KeyPair handling
2021-06-23 10:27:59 +02:00
Valentin Tolmer
f918debc2e
Simplify opaque types
2021-06-23 10:27:59 +02:00
Valentin Tolmer
973fac4bb8
Make passwords optional when registering a new user
2021-06-23 10:27:59 +02:00
Valentin Tolmer
86bfd37b70
Opaque: use argon2 as slow hash
2021-06-23 10:27:59 +02:00
Valentin Tolmer
973fa40dd1
Add OPAQUE implementation
2021-06-23 10:27:59 +02:00
Valentin Tolmer
d5f84cd588
Add cargo.lock and fix some dependencies
...
Note that the auth_service handler has become less generic, but it's
enough for our purposes.
2021-06-22 17:27:43 +02:00
Valentin Tolmer
0d8e317490
build.sh: Detect local installs of rollup and improve error messages
2021-06-22 15:32:20 +02:00
Valentin Tolmer
0469252277
Add Bootstrap CSS
2021-06-08 18:48:27 +02:00
Valentin Tolmer
7465a6b93f
Add a form to create users
2021-06-01 17:31:18 +02:00
Valentin Tolmer
e3ff3b7b0a
App: Display users in a table
2021-05-30 17:51:28 +02:00
Valentin Tolmer
ac492f987d
App: Various cleanups (clippy)
2021-05-30 17:07:34 +02:00
Valentin Tolmer
c1cb5792fe
Introduce a router for the app
2021-05-30 17:02:09 +02:00
Valentin Tolmer
6ebd18d1e0
Return not found when a cookie is empty
2021-05-30 17:01:14 +02:00
Valentin Tolmer
9899c6f5aa
app: Refactor API calls
2021-05-25 10:03:33 +02:00
Valentin Tolmer
e07efc9585
Implement client-side logout
2021-05-23 17:07:02 +02:00
Valentin Tolmer
6cb06b0e9f
Change the authentication address to /auth
2021-05-20 17:41:30 +02:00
Valentin Tolmer
312d9b7a6f
Mark cookies as sameSite=Strict
2021-05-19 18:08:26 +02:00
Valentin Tolmer
4d9f554fe6
Implement logout
...
Also introduce a library to handle cookies
2021-05-18 19:04:06 +02:00
Valentin Tolmer
d57cd1230c
Turn the login form into a regular form
2021-05-18 17:44:46 +02:00
Valentin Tolmer
e524fb0f55
clippy: fix warnings
2021-05-14 10:30:55 +02:00
Valentin Tolmer
e0bcb58d36
Tidy up dependencies
2021-05-14 09:24:23 +02:00
Valentin Tolmer
2de589d05c
app: implement login and authorization
2021-05-14 09:24:23 +02:00
Valentin Tolmer
5615ef8e1f
Split the user table into a sub-component
2021-05-11 09:54:54 +02:00
Valentin Tolmer
e1047124fa
Fine-tune passing errors from the server to the client
2021-05-10 10:21:24 +02:00
Valentin Tolmer
25027f7614
Add a method to fetch users from the client
2021-05-09 13:26:50 +02:00
Valentin Tolmer
4ae94839f2
Setup a basic API route
2021-05-09 11:52:53 +02:00
Valentin Tolmer
f8951d3b82
Add index and main
2021-05-08 12:00:52 +02:00
Valentin Tolmer
c58459547b
Split the crate in 3, introduce JS frontend
2021-05-08 11:34:55 +02:00