Valentin Tolmer
6c09af6479
app: Create CommonComponent
...
This is a utility that gathers common parts of components, like task
and error handling.
2021-10-31 15:52:17 +01:00
Valentin Tolmer
026a2f7eb0
app: Fix the login button not re-enabling after failed login
2021-10-28 18:20:01 +02:00
Valentin Tolmer
aa8bbf96f8
cargo: Bump the version to 0.2.0
2021-10-20 08:58:36 +02:00
Valentin Tolmer
3df3a96d46
app: Fix login cookie expiration format
2021-10-15 10:46:17 +02:00
Valentin Tolmer
f4edb99379
app: Add style.css, improve classes
...
Also change the server to be able to serve style.css.
2021-10-15 10:46:17 +02:00
Valentin Tolmer
3912d62623
app: Disable buttons while the task is running
2021-10-15 08:05:50 +02:00
Valentin Tolmer
ead501158d
app: Migrate change password to yew_form
...
Also disable submit while the password is being sent.
2021-10-15 08:05:50 +02:00
Valentin Tolmer
88019a42c9
app: Add a proper error message to the email field
2021-10-15 08:05:50 +02:00
Valentin Tolmer
29832574c1
app: disable the login button while logging in
2021-10-15 08:05:50 +02:00
Valentin Tolmer
c4c0bb8b8e
app: Truncate the user creation date to the day
2021-10-15 08:05:50 +02:00
Valentin Tolmer
9a68563c0b
app: Disable the add user/group buttons when relevant
2021-10-15 08:05:50 +02:00
Valentin Tolmer
01c82f09eb
app: Add a page to create a group
2021-10-15 08:05:50 +02:00
Valentin Tolmer
8bd1dec180
app: Implement group management
...
Except group creation
2021-10-15 08:05:50 +02:00
Valentin Tolmer
9e9129aa3a
app: Add navigation banner
...
Unstyled as of yet.
2021-10-15 08:05:50 +02:00
Valentin Tolmer
7d21cc5126
app: Add a page with the list of groups
2021-10-15 08:05:50 +02:00
Valentin Tolmer
1ec533bd9b
app: Fix login password prompt
2021-10-06 17:58:02 +02:00
Valentin Tolmer
402ef2f83a
app: Add a component to delete a user
...
Also adds a way to hook to the bootstrap modals to show or hide them.
2021-09-24 16:46:30 +02:00
Valentin Tolmer
dfe1607a3e
app: Migrate create_user to yew_form
2021-09-20 11:23:57 +02:00
Valentin Tolmer
fa6427e694
app: Migrate login to yew_form
2021-09-20 11:23:57 +02:00
Valentin Tolmer
a952968e9f
app: Add Bootstrap classes.
2021-09-20 11:23:57 +02:00
Valentin Tolmer
00efdb42af
app: Extract a RemoveUserFromGroup component
2021-09-20 11:23:57 +02:00
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