Commit Graph

249 Commits

Author SHA1 Message Date
Noah Petherbridge
b8be14ea8d Search By Location
* Add a world cities database with type-ahead search on the Member Directory.
* Users can search for a known city to order users by distance from that city
  rather than from their own configured location on their settings page.
* Users must opt-in their own location before this feature may be used, in order
  to increase adoption of the location feature and to enforce fairness.
* The `nonshy setup locations` command can import the world cities database.
2024-08-03 14:54:22 -07:00
Noah Petherbridge
5c5367c557 Fix orphaned comment photo worker 2024-07-26 17:35:49 -07:00
Noah Petherbridge
40b1f2f57a Database cleanup tasks 2024-07-26 17:15:53 -07:00
Noah Petherbridge
a314aab7ec Web Push Notifications
* Add support for Web Push Notifications when users receive a new Message or
  Friend Request on the main website.
* Users opt in or out of this on their Notification Settings. They can also
  individually opt out of Message and Friend Request push notifications.
2024-07-20 19:44:22 -07:00
Noah Petherbridge
a0320714c4 Search terms and admin features 2024-07-13 12:05:36 -07:00
Noah Petherbridge
1c01aad80f Normal users can not search non-certified profiles
* Remove the ability for regular (non-admin) users to search the Member
  Directory for non-certified profiles.
* Profiles who don't certify can be a risk to contact, as the likelihood
  of fake pictures and scams/spam is much higher.
2024-07-09 22:21:28 -07:00
Noah Petherbridge
22b8cf0594 Pinned photo gallery support 2024-07-07 14:00:58 -07:00
Noah Petherbridge
1134128a71 Revert "Public Avatar Consent Page"
This reverts commit 4f04323d5a.
2024-06-29 21:42:35 -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
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
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
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
f4721d65da HTMX lazy load for user statistics card 2024-04-24 20:36:37 -07:00
Noah Petherbridge
32b054cacf Remove from inner circle when deleting all your pictures 2024-04-13 10:44:09 -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
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
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
3c0473c633 WIP: Deduplicate threads on Newest forum tab 2024-02-14 21:38:20 -08:00
Noah Petherbridge
7da650ffc4 Go 1.22 upgrade 2024-02-10 16:17:15 -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
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
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
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
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
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
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
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
59338d510f Birthday cake emoji for the chat room 2023-10-10 19:30:39 -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
Noah Petherbridge
eb571e1933 BareRTC user profile webhook 2023-10-07 13:24:07 -07:00
Noah Petherbridge
a19e52c03f Instantly block user in chat, search improvements 2023-09-30 15:24:14 -07:00
Noah Petherbridge
e5b5b9435b Fix compose page when replying to messages 2023-09-25 18:13:13 -07:00
Noah Petherbridge
8456c5d0f5 Messages: if thread already open, go directly there instead of dedicated Compose page 2023-09-24 14:29:54 -07:00
Noah Petherbridge
a856b9d01b Blur explicit videos + GIF auto-play option 2023-09-24 11:41:19 -07:00
Noah Petherbridge
50ce31f6ac Blur explicit photos option 2023-09-19 18:24:57 -07:00
Noah Petherbridge
07feaaa4e7 Minor fixes 2023-09-18 17:31:02 -07:00
Noah Petherbridge
c3a3b7e35c Two Factor Authentication 2023-09-18 17:22:50 -07:00
Noah Petherbridge
41beba54f2 Don't show blocked users on Likes lists 2023-09-17 22:28:21 -07:00
Noah Petherbridge
b788480eb6 Tighten up user blocking in Notifications & Comments
The following bugs are resolved:
* A blocked user comments on a Photo that you have also commented on
  (are subscribed to), and you would be notified about their comment.
* A blocked user comments on a Forum Thread that you are subscribed to,
  and you would be notified about their post.
* Comments by blocked users (on photos and forum threads) were visible
  to you after you have blocked them.
2023-09-16 23:07:32 -07:00
Noah Petherbridge
49b5387750 User Notes + Bring Back Online Chatters List
New feature: User Notes
* Add a "Notes" tab to user profile pages and galleries.
* Users can create one private note about another user.
* Admins can see all notes left about a user.
* Admins also see Feedback & Reports regarding the user on that page.

Bring back the online chatters list
* The Usernames are filtered down based on blocklist status.
2023-09-16 13:46:26 -07:00
Noah Petherbridge
a70e1c2b73 Minor bugfixes
- Revoke photo notifications if visibility moving to inner circle
- No longer show usernames in chat on the landing page
2023-09-14 17:40:12 -07:00
Noah Petherbridge
fdc6c5c0a7 Show currently on chat indicators 2023-09-13 23:13:02 -07:00
Noah Petherbridge
de30f5e952 See who has "Liked" something 2023-09-13 21:28:38 -07:00
Noah Petherbridge
3543dd3e42 Allow updating birthdate, with admin report 2023-09-11 19:24:09 -07:00
Noah Petherbridge
7d3e04b869 Fix age min/max filter on search page 2023-09-10 12:07:16 -07:00
Noah Petherbridge
1e7ea6830c Reserved username check on signup page 2023-09-09 12:26:51 -07:00
Noah Petherbridge
de71d65be6 Only admin users can see banned accounts on search 2023-09-09 11:16:43 -07:00
Noah Petherbridge
b619e0c02e Send inner circle status as VIP to BareRTC 2023-09-03 12:08:45 -07:00
Noah Petherbridge
6b0246edad Tweak private share badges 2023-09-01 23:07:15 -07:00
Noah Petherbridge
2d7f8c0d87 Fix private grants page 2023-09-01 22:41:33 -07:00
Noah Petherbridge
944dbb749b Private photos: see who shares back 2023-09-01 22:27:18 -07:00
Noah Petherbridge
577c92386e Filter for expressly non-certified 2023-09-01 17:20:34 -07:00
Noah Petherbridge
67a54c866e New search filters and friendship sent icon 2023-09-01 17:13:10 -07:00