Commit Graph

138 Commits

Author SHA1 Message Date
Valentin Tolmer
232a41d053 app: Migrate AddGroupMember to CommonComponent 2021-10-31 15:52:17 +01:00
Valentin Tolmer
540ac5d241 app: Migrate Login to CommonComponent 2021-10-31 15:52:17 +01:00
Valentin Tolmer
29962881cf app: Migrate user_details to CommonComponent 2021-10-31 15:52:17 +01:00
Valentin Tolmer
65dd1d1fd3 app,infra: Move more functionality in CommonComponent 2021-10-31 15:52:17 +01:00
Valentin Tolmer
ba72e622c2 app: Migrate group_details to CommonComponent 2021-10-31 15:52:17 +01:00
Valentin Tolmer
5a5baf883f app: Migrate change_password to CommonComponent 2021-10-31 15:52:17 +01:00
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