Commit Graph

310 Commits

Author SHA1 Message Date
Noah Petherbridge
656710035b Revert "Add notification banners about upcoming Public Avatar change"
This reverts commit 91a3cc27ba.
2024-06-29 20:52:23 -07:00
Noah Petherbridge
91a3cc27ba Add notification banners about upcoming Public Avatar change 2024-06-29 19:28:51 -07:00
Noah Petherbridge
4f04323d5a Public Avatar Consent Page
The nonshy website is changing the policy on profile pictures. From August 30,
the square cropped avatar images will need to be publicly viewable to everyone.

This implements the first pass of the rollout:

* Add the Public Avatar Consent Page which explains the change to users and
  asks for their acknowledgement. The link is available from their User Settings
  page, near their Certification Photo link.
* When users (with non-public avatars) accept the change: their square cropped
  avatar will become visible to everybody, instead of showing a placeholder
  avatar.
* Users can change their mind and opt back out, which will again show the
  placeholder avatar.
* The Certification Required middleware will automatically enforce the consent
  page once the scheduled go-live date arrives.

Next steps are:

1. Post an announcement on the forum about the upcoming change and link users
   to the consent form if they want to check it out early.
2. Update the nonshy site to add banners to places like the User Dashboard for
   users who will be affected by the change, to link them to the forum post
   and the consent page.
2024-06-29 16:44:18 -07:00
Noah Petherbridge
8754ed8592 Search users by "Liked" 2024-06-26 21:27:03 -07:00
Noah Petherbridge
a0f3083e15 Update wording on the Shy Account chat kick message 2024-06-19 15:50:34 -07:00
Noah Petherbridge
88663d48a4 Member Search: Usually apply certified-only filter
Always filter for certified members unless the user specifically
searches for non-certified or "all users".

Admin searches for banned/disabled also search all users.
2024-06-19 15:03:58 -07:00
Noah Petherbridge
02ec0a9116 Optimize Site Gallery query for massive friend lists
Instead of selecting the full array of friend user IDs and pasting that
into the main query, use subselects for hopefully better performance.
2024-06-19 14:42:57 -07:00
Noah Petherbridge
616f6ae76b Full text profile search for the member directory 2024-06-19 14:12:25 -07:00
Noah Petherbridge
6ac121b345 Rename username field on Member Directory 2024-06-15 17:10:43 -07:00
Noah Petherbridge
42aeb60853 Various tweaks and improvements
* Inner circle: users have the ability to remove themselves and can avoid being
  invited again in the future.
* Admin actions: add a "Reset Password" ability to user accounts.
* Admin "Create New User" page.
* Rate limit error handling improvements for the login page.
2024-06-15 15:05:50 -07:00
Noah Petherbridge
cc82fec108 Unit tests and code cleanup for cold storage 2024-05-30 16:59:21 -07:00
Noah Petherbridge
6f5127dd56 Cold Storage with One-Way RSA Encryption 2024-05-29 23:20:24 -07:00
Noah Petherbridge
5db1c03fd9 Clean up admin permission checks around the site 2024-05-27 13:02:05 -07:00
Noah Petherbridge
f0e69f78da Certification: Secondary Photo ID Workflow
* Add an Admin Certification Photo workflow where we can request the user to
  upload a secondary form of ID (government issued photo ID showing their
  face and date of birth).
* An admin rejection option can request secondary photo ID.
* It sends a distinct e-mail to the user apart from the regular rejection email
* It flags their cert photo as "Secondary Needed" forever: even if the user
  removes their cert photo and starts from scratch, it will immediately request
  secondary ID when uploading a new primary photo.
* Secondary photos are deleted from the server on both Approve and Reject by
  the admin account, for user privacy.
* If approved, a Secondary Approved=true boolean is stored in the database. This
  boolean is set to False if the user deletes their cert photo in the future.
2024-05-26 12:34:00 -07:00
Noah Petherbridge
af76c251c6 Cloudflare CAPTCHA for account signup page 2024-05-20 13:29:02 -07:00
Noah Petherbridge
c566e444c7 Warn recipient in DMs about possible scams 2024-05-13 19:41:11 -07:00
Noah Petherbridge
ed008a99e6 Admin: don't search for banned users without the scope
An admin must have the admin.user.ban scope in order to search for
banned or disabled users in the member directory.
2024-05-11 14:10:59 -07:00
Noah Petherbridge
9db7343370 Private forums (admin only for now) 2024-05-11 12:23:06 -07:00
Noah Petherbridge
20d04fc370 Admin Transparency Page
* Add a transparency page where regular user accounts can list the roles and
  permissions that an admin user has access to. It is available by clicking on
  the "Admin" badge on that user's profile page.
* Add additional admin scopes to lock down more functionality:
  * User feedback and reports
  * Change logs
  * User notes and admin notes
* Add friendly descriptions to what all the scopes mean in practice.
* Don't show admin notification badges to admins who aren't allowed to act on
  those notifications.
* Update the admin dashboard page and documentation for admins.
2024-05-09 15:50:46 -07:00
Noah Petherbridge
fdf0aee5da Certification Photo to log IP address in changelog 2024-04-28 11:27:06 -07:00
Noah Petherbridge
198849eebc Correctly revoke AlsoPosted notification on comment deletion 2024-04-27 19:46:22 -07:00
Noah Petherbridge
2f352f8664 Ability to find your "Likes" on the Site Gallery 2024-04-27 19:06:17 -07:00
Noah Petherbridge
106ca56198 Search users by admin, privacy policy update 2024-04-25 21:52:43 -07:00
Noah Petherbridge
ff2eb285eb Collect distinct visitor IP addresses 2024-04-25 18:55:02 -07:00
Noah Petherbridge
382c6df96c Fix User model json fields 2024-04-25 11:31:04 -07:00
Noah Petherbridge
f4721d65da HTMX lazy load for user statistics card 2024-04-24 20:36:37 -07:00
Noah Petherbridge
4623cdca50 Update some text copy 2024-04-13 15:10:15 -07:00
Noah Petherbridge
32b054cacf Remove from inner circle when deleting all your pictures 2024-04-13 10:44:09 -07:00
Noah Petherbridge
2126c5ab84 Clear BareRTC DMs history on account deletion 2024-04-11 23:27:20 -07:00
Noah Petherbridge
763b9e4404 Text search for the change log 2024-04-04 23:05:16 -07:00
Noah Petherbridge
2d0fd25a08 Upgrade to Bulma CSS 1.0 and theme picker support 2024-03-30 13:49:36 -07:00
Noah Petherbridge
535e96b491 Rate limit the user Mark Explicit endpoint 2024-03-29 22:59:13 -07:00
Noah Petherbridge
2ab34a39a3 Better UX for Who's Nearby feature 2024-03-29 20:35:41 -07:00
Noah Petherbridge
d623f0bc3c User endpoint to flag photos that should be Explicit 2024-03-16 13:29:28 -07:00
Noah Petherbridge
04a7616299 Alt Text Tweaks + Video site link detection 2024-03-15 23:19:26 -07:00
Noah Petherbridge
9c4ec85f8a Bugfix with photo alt text not saving on new upload 2024-03-15 22:42:38 -07:00
Noah Petherbridge
cf6249c415 Alt Text for Photos
* Add an Alt Text field for users to describe their photos for accessibility.
* Alt texts appear on mouse over on Gallery pages, in the lightbox modal (on
  mouse over or by clicking the ALT button that appears), and in a box on the
  permalink page below the photo caption.
* Max length of Alt Text is 5,000 characters.
* Fix a bug with the right-click blocker not working on the lightbox modal.
2024-03-15 22:02:24 -07:00
Noah Petherbridge
742a5fa1af Auto-Disconnect Users from Chat
Users whose accounts are no longer eligible to be in the chat room will be
disconnected immediately from chat when their account status changes.

The places in nonshy where these disconnects may happen include:

* When the user deactivates or deletes their account.
* When they modify their settings to mark their profile as 'private,' making
  them become a Shy Account.
* When they edit or delete their photos in case they have moved their final
  public photo to be private, making them become a Shy Account.
* When the user deletes their certification photo, or uploads a new cert photo
  to be reviewed (in both cases, losing account certified status).
* When an admin user rejects their certification photo, even retroactively.
* On admin actions against a user, including: banning them, deleting their
  user account.

Other changes made include:

* When signing up an account and e-mail sending is not enabled (e.g. local
  dev environment), the SignupToken is still created and logged to the console
  so you can continue the signup manually.
* On the new account DOB prompt, add a link to manually input their birthdate
  as text similar to on the Age Gate page.
2024-03-15 15:57:05 -07:00
Noah Petherbridge
80c4471017 Add DB indexes and request time to page footer 2024-03-03 17:58:18 -08:00
Noah Petherbridge
28111585ef Notification Filters 2024-02-28 20:49:16 -08:00
Noah Petherbridge
2820cf581e Dedicated ChangeLog events for ban/lifecycle/admin changes 2024-02-25 17:36:01 -08:00
Noah Petherbridge
3142e0ce84 Change Log Updates
* Delete all change logs AboutUserID on account deletion, and export
  them in the data export zip.
* Log admin changes to ban/admin status of other users.
* Log user deactivations/reactivations and deletions (self serve or
  admin deletion).
2024-02-25 17:28:40 -08:00
Noah Petherbridge
f4d176a538 Change Logs
* Add a ChangeLog table to collect historic updates to various database tables.
* Created, Updated (with field diffs) and Deleted actions are logged, as well
  as certification photo approves/denies.
* Specific items added to the change log:
  * When a user photo is marked Explicit by an admin
  * When users block/unblock each other
  * When photo comments are posted, edited, and deleted
  * When forums are created, edited, and deleted
  * When forum comments are created, edited and deleted
  * When a new forum thread is created
  * When a user uploads or removes their own certification photo
  * When an admin approves or rejects a certification photo
  * When a user uploads, modifies or deletes their gallery photos
  * When a friend request is sent
  * When a friend request is accepted, ignored, or rejected
  * When a friendship is removed
2024-02-25 17:03:36 -08:00
Noah Petherbridge
62d56d5924 Better "Newest" tab for forums 2024-02-15 19:53:25 -08:00
Noah Petherbridge
3c0473c633 WIP: Deduplicate threads on Newest forum tab 2024-02-14 21:38:20 -08:00
Noah Petherbridge
7ceb14053b Don't show banned friends on friend page 2024-02-14 20:25:24 -08:00
Noah Petherbridge
7da650ffc4 Go 1.22 upgrade 2024-02-10 16:17:15 -08:00
Noah Petherbridge
588de52252 Add orientation options 2024-02-08 13:02:19 -08:00
Noah Petherbridge
fedfbed4eb Ability to change username 2024-01-27 13:57:24 -08:00
Noah Petherbridge
ef8abec7bf Fix removing likes notification 2024-01-20 15:08:36 -08:00
Noah Petherbridge
a9cc758624 On signup: tell user to check their spam folder too for the email 2024-01-13 11:26:47 -08:00
Noah Petherbridge
b4cd57c8c3 Tweak friends-only pic notification revoke 2024-01-10 18:08:17 -08:00
Noah Petherbridge
eed971d997 FAQ update and notifications fix 2024-01-10 17:47:41 -08:00
Noah Petherbridge
19006877a2 Fix limited logged-out view profile picture 2024-01-07 15:32:51 -08:00
Noah Petherbridge
7a6b21fee5 Lazy compute UserRelationships on CanSeeProfilePicture function 2024-01-07 14:25:00 -08:00
Noah Petherbridge
8fca36836c Add notice of private profile pic, inner circle placeholder
* On a user gallery page: if the current user can not see their default
  profile pic (friends-only or private), include a notice and link to
  the FAQ about this.
* Add a new placeholder avatar for profile pics that are set to
  "Inner circle only" when viewed by members outside the circle.
2024-01-07 14:20:01 -08:00
Noah Petherbridge
9a854e5679 New inner circle invite workflow 2024-01-06 20:07:36 -08:00
Noah Petherbridge
cca449090a Forum Search, User Profile Statistics
* Add a Search page to the forums to filter by user ID and find threads and
  replies matching your search terms, with "quoted phrases" and -negation
  support.
* On user profile pages, add an "Activity" box showing statistics on their
  forum threads/comments, likes given/received, photo counts, etc.
* On the "Newest" and Search page for Forums: show an indicator whenever a
  post includes an attached photo.
2024-01-06 16:44:05 -08:00
Noah Petherbridge
64ce5a9d7c Couple bugfixes with /go/comment links 2024-01-05 22:25:05 -08:00
Noah Petherbridge
70402b42c9 Go to Comment endpoint + notification fixes
* Add endpoint /go/comment?id= that finds the right page that a comment
  can be seen on for the current user and redirects there.
* Resolves issues with link discrepancies in comment notifications, if
  the recipient sees different page numbers depending on blocklist
  status.
* Supports copyable permalinks to any comment on the site reliably.
2024-01-05 22:14:42 -08:00
Noah Petherbridge
7555dee944 Update admin feedback visitation links 2024-01-05 19:58:52 -08:00
Noah Petherbridge
384638de09 Site Gallery throttle 2024-01-05 19:08:44 -08:00
Noah Petherbridge
be835ca8f9 Easy Mark Explicit button for admin users 2023-12-26 16:26:23 -08:00
Noah Petherbridge
90270572f1 Look & Feel settings for profile pages 2023-12-26 15:44:34 -08:00
Noah Petherbridge
cadb759ff4 Messages: Threaded view for better user experience 2023-12-25 21:36:41 -08:00
Noah Petherbridge
319fab3da9 Fix type assertions in FormatNumberShort 2023-12-21 17:30:34 -08:00
Noah Petherbridge
b43fec144b Fix duration pretty printing and number shortening 2023-12-21 17:12:34 -08:00
Noah Petherbridge
13775b9722 Admin view for User Notes page 2023-12-21 14:59:41 -08:00
Noah Petherbridge
483e5a2db3 Photo edit/delete fixes, lazy load images 2023-12-21 14:37:55 -08:00
Noah Petherbridge
fc8014913d Admin insights block lists page 2023-12-04 19:57:14 -08:00
Noah Petherbridge
f23a787d32 Tweak right-click modal 2023-11-27 21:53:02 -08:00
Noah Petherbridge
8130ce4845 Right-click dissuasion 2023-11-27 21:23:31 -08:00
Noah Petherbridge
22e8c9129b PWA Manifest JSON 2023-11-25 17:15:21 -08:00
Noah Petherbridge
3d4c728d75 Certification photo admin updates 2023-11-25 14:28:16 -08:00
Noah Petherbridge
7ef22db5e2 Can't accept a friend request after you ignored it 2023-11-25 13:39:38 -08:00
Noah Petherbridge
d72f0b1d2d Site Gallery: Remember last 'Whose photos' preference 2023-11-24 11:37:01 -08:00
Noah Petherbridge
f0373285eb 2FA: Ability to see original QR code again 2023-11-15 18:01:34 -08:00
Noah Petherbridge
ebd63bcb0d Bugfix on QueryPlus function 2023-11-07 11:24:14 -08:00
Noah Petherbridge
fae995e486 Gallery: Retain search filters when toggling card types 2023-11-07 11:24:08 -08:00
Noah Petherbridge
3d01fc55f4 Scale profile pictures to a consistent size 2023-10-29 12:42:21 -07:00
Noah Petherbridge
bb0e7fa2fc More profile fields for BareRTC cards 2023-10-29 12:35:00 -07:00
Noah Petherbridge
f9a2d471f5 My User Notes page 2023-10-29 12:29:11 -07:00
Noah Petherbridge
c0bff8ee18 Settings to opt-out of certain notification types 2023-10-28 14:34:35 -07:00
Noah Petherbridge
64d2749299 Fix site gallery userID + visibility filters 2023-10-26 17:33:08 -07:00
Noah Petherbridge
0143fd752f Bugfixes on user profile pages 2023-10-23 21:55:55 -07:00
Noah Petherbridge
c701dd831f Add command to export user data for privacy regulations 2023-10-23 19:05:34 -07:00
Noah Petherbridge
47a4ebb0ad Bugfix on viewing other users friends and relationship booleans 2023-10-23 00:04:25 -07:00
Noah Petherbridge
a97ed4562e Ability to ignore friend requests 2023-10-22 19:57:18 -07:00
Noah Petherbridge
61c47c032d Site Gallery: Default to friends only 2023-10-22 19:17:49 -07:00
Noah Petherbridge
39c825d4ca Filters on User Gallery Pages 2023-10-22 16:03:17 -07:00
Noah Petherbridge
481bd0ae61 Deactivate Account; Friends Lists on Profiles
* Add a way for users to temporarily deactivate their accounts, in a
  recoverable way should they decide to return later.
* A deactivated account may log in but have limited options: to
  reactivate their account, permanently delete it, or log out.
* Fix several bugs around the display of comments, messages and
  forum threads for disabled, banned, or blocked users:
  * Messages (inbox and sentbox) will be hidden and the unread indicator
    will not count unread messages the user can't access.
  * Comments on photos and forum posts are hidden, and top-level threads
    on the "Newest" tab will show "[unavailable]" for their text and
    username.
  * Your historical notifications will hide users who are blocked, banned
    or disabled.
* Add a "Friends" tab to user profile pages, to see other users' friends.
  * The page is Certification Required so non-cert users can't easily
    discover any members on the site.
2023-10-22 15:02:24 -07:00
Noah Petherbridge
0f35f135d2 Inner circle removal requests 2023-10-14 11:37:01 -07:00
Noah Petherbridge
85c945579b Fix '0 years ago' bug 2023-10-10 20:19:52 -07:00
Noah Petherbridge
f21af625c1 Adjust birthday window 2023-10-11 03:03:52 +00:00
Noah Petherbridge
16eca589e5 Adjust birthday window 2023-10-10 19:38:02 -07:00
Noah Petherbridge
59338d510f Birthday cake emoji for the chat room 2023-10-10 19:30:39 -07:00
Noah Petherbridge
09ba634556 Bugfix on user search page 2023-10-10 18:03:05 -07:00
Noah Petherbridge
de5059c51c Birthdate display bugfix 2023-10-09 11:54:07 -07:00
Noah Petherbridge
189ffbb61a Sort the friends list on chat 2023-10-08 13:36:59 -07:00
Noah Petherbridge
a16894a1b1 Chat landing page: show online friends 2023-10-08 13:35:11 -07:00