Commit Graph

29 Commits

Author SHA1 Message Date
Ben Visness 04bc4e5035 Remove light/dark theme settings entirely
There is simply no need any more; system light/dark preferences handle this fine.
2024-06-20 18:09:16 -05:00
Asaf Gartner 7410fbcd4a EsBuild with on-request rebuild and hot-reloading 2024-06-07 10:30:02 -04:00
Ben Visness 1a0be1912e Implement new header / footer (mostly) 2024-06-07 10:27:20 -04:00
Ben Visness 19a8c6bf0d Mostly convert old styles to plain CSS
wow there is a lot of garbage in here
2024-06-07 10:27:20 -04:00
Ben Visness 04db4ad709 Add email newsletter signup to blogs 2024-05-20 17:00:03 -05:00
Asaf Gartner b5d4fe9ba2 Learning jam scaffolding 2024-02-08 22:21:01 +02:00
Asaf Gartner 8bc4b5a66c Added calendars 2024-01-28 19:12:59 +02:00
Ben Visness 25cc5ef11b Rework structure of project index. Need new copy. 2023-09-25 02:40:45 -05:00
bvisness 0210a0784b Add Discord login (#106)
This leverages our existing Discord OAuth implementation. Any users with a linked Discord account will be able to log in immediately. When logging in, we request the `email` scope in addition to `identity`, so existing users will be prompted one time to accept the new permissions. On subsequent logins, Discord will skip the prompt.

When linking your Discord account to an existing HMN account, we continue to only request the `identity` scope, so we do not receive the user's Discord email.

Both login and linking go through the same Discord OAuth callback. All flows through the callback try to achieve the same end goal: a logged-in HMN user with a linked Discord account.

Linking works the same as it ever has. Login, however, is different because we do not have a session ID to use as the OAuth state. To account for this, I have added a `pending_login` table that stores a secure unique ID and the eventual destination URL. These pending logins expire after 10 minutes. When we receive the OAuth callback, we look up the pending login by the OAuth `state` and immediately delete it. The destination URL will be used to redirect the user to the right place.

If we have a `discord_user` entry for the OAuth'd Discord user, we immediately log the user into the associated HMN account. This is the typical login case. If we do not have a `discord_user`, but there is exactly one HMN user with the same email address as the Discord user, we will link the two accounts and log into the HMN account.

(It is possible for multiple HMN accounts to have the same email, because we don't have a uniqueness constraint there. We fail the login in this case rather than link to the wrong account.)

Finally, if no associated HMN user exists, a new one will be created. It will use the Discord user's username, email, and avatar. This user will have no password, but they can set or reset a password through the usual flows.

Co-authored-by: Ben Visness <bvisness@gmail.com>
Reviewed-on: hmn/hmn#106
2023-05-06 19:38:50 +00:00
Ben Visness e4dd15d248 Add all jams index 2023-04-22 11:26:07 -05:00
Ben Visness 9b3a972e37 Rework about page, finally
Start foundation / about page work

Add some job descriptions

Add Advocacy role

Make things look barely tolerable

Cloin'd

Better About intro

no fundo

Link from manifesto

swanky changes
2022-12-14 17:49:08 -06:00
Ben Visness 084b13ae34 ...including the nav and stuff 2022-11-05 16:23:12 -05:00
Ben Visness 168b210c5b Restore the library since we're not actually rolling out education yet 2022-09-10 12:54:26 -05:00
bvisness d2b34cb87d Initial version of education content (#90)
Co-authored-by: Ben Visness <bvisness@gmail.com>
Reviewed-on: hmn/hmn#90
2022-09-10 16:29:57 +00:00
Ben Visness d7b43fdea0 Use the register destination when coming from the login page 2022-08-13 15:07:37 -05:00
AllanRegush cc731d77a6 Add Conferences Page (#75)
This PR implements the conferences page.

![image](/attachments/fe7b8df7-0833-4b5b-9f61-a9558b70a98f)

![image](/attachments/10f380d6-81ed-4850-87c4-70a84d31e26b)

closes #69

Co-authored-by: Allan Regush <17693494+AllanRegush@users.noreply.github.com>
Reviewed-on: hmn/hmn#75
Co-authored-by: AllanRegush <allan@allanregush.com>
Co-committed-by: AllanRegush <allan@allanregush.com>
2022-07-26 15:07:57 +00:00
bvisness d1e63f745b Add Fishbowl archive (#41)
Refs #33

Co-authored-by: Ben Visness <bvisness@gmail.com>
Co-authored-by: ilidemi <belk94@gmail.com>
Reviewed-on: hmn/hmn#41
2022-06-12 12:45:56 +00:00
Ben Visness 1cfb9e4033 Fix mailto on crash page 2022-06-01 20:49:19 -05:00
Ben Visness 7a6f2a7d4b Remove the code of conduct, tweak the communication guidelines
The code of conduct has historically not been of much use, while the
communication guidelines are more tangible. The two are also just kind
of redundant.
2022-02-13 16:24:01 -06:00
Asaf Gartner 8e7c20fffa Removed old project logo url fields 2022-02-13 22:07:09 +02:00
Asaf Gartner b2a2b49abe Added the search bar to the footer 2022-02-10 22:27:28 +02:00
Ben Visness 73824a027b Add tag management to projects
Also rearrange that ProjectAndLogos stuff because agh it was so weird
2021-12-07 21:37:52 -06:00
Asaf Gartner cf46e16df5 Edit project 2021-12-04 16:55:45 +02:00
Asaf Gartner 950e84d53a Personal project creation 2021-12-02 12:53:36 +02:00
Ben Visness 0cc879df21 Add tags to snippets on timelines 2021-11-11 11:00:46 -08:00
Ben Visness a84ec79ee2 Disable forum/blog actions for projects that don't have them enabled
I implemented this for personal projects, but I think it was actually
affecting official projects too that didn't have forums or blogs
enabled.
2021-11-10 09:13:56 -08:00
Ben Visness dfbcfbeacc Use new UrlContext for project URLs
Wow that was a lot to change
2021-11-09 20:11:39 -08:00
Ben Visness ff901e4fb8 Add route grouping stuff for projects (needs thorough testing) 2021-11-09 11:14:38 -08:00
Ben Visness 4e47c51fa1 Add back project nav 2021-10-27 21:55:42 -05:00