Commit Graph
100 Commits
Author SHA1 Message Date
evazion e79910431f emails: validate that email addresses are deliverable.
Reject email addresses that known to be undeliverable during signup.
Some users signup with invalid email addresses, which causes the welcome
email (which contains the email confirmation link) to bounce. Too many
bounces hurt our ability to send mail.

We check that an email address is undeliverable by checking if the
domain has a mail server and if the server returns an invalid address
error when attempting to send mail. This isn't foolproof since some
servers don't return an error if the address doesn't exist. If the
checks fail we know the address is bad, but if the checks pass that
doesn't guarantee the address is good. However, this is still good
enough to filter out bad addresses for popular providers like Gmail and
Microsoft that do return nonexistent address errors.

The address existence check requires being able to connect to mail
servers over port 25. This may fail if your network blocks port 25,
which many home ISPs and hosting providers do by default.
2020-03-23 23:45:18 -05:00
evazion 27f10d53d6 Update ruby gems and yarn packages. 2020-03-23 01:48:59 -05:00
evazion a45c7f46be Interlink bans, ip bans, and user feedbacks pages.
* Make the bans, ip bans, ip addresses, and user feedbacks pages all
  link to one another in the secondary links.
* Add quick search bars to the secondary links on these pages.
2020-03-23 01:48:59 -05:00
evazion c24ae0a2a6 ip addresses: add secondary links. 2020-03-23 01:48:59 -05:00
evazion f23df47c09 ip addresses: add ip address show page.
* Add IP address show page at /ip_addresses/1.2.3.4.
* Add "Details", "Ban IP", "Ban User" options to the /ip_addresses listing.
2020-03-23 01:48:59 -05:00
evazion 13dab1510c ip addresses: add ip lookup api client. 2020-03-23 01:48:59 -05:00
evazion 6a0799fec0 posts: allow approvers to see uploader names. 2020-03-22 15:25:45 -05:00
evazion 8492979ecb post policy: fix typo in is_note_locked. 2020-03-21 23:21:16 -05:00
evazion f464163885 users: allow all users to use the posts per page setting. 2020-03-21 23:06:50 -05:00
evazion 88a8f459ed comments: remove 10 comment votes per hour limit. 2020-03-21 23:06:47 -05:00
evazion 63f7311489 comments: allow new users to comment.
Remove the rule that users less than a week old can't leave comments.
2020-03-21 23:06:47 -05:00
evazion aefbed57b8 pools: allow new users to remove posts from pools.
Remove the rule that users less than a week old can't remove posts from
pools.
2020-03-21 23:06:47 -05:00
evazion 92e4635af8 ip addresses: fix reference to CurrentUser inside visible. 2020-03-21 23:06:42 -05:00
evazion 94aff2c777 moderation reports: pass CurrentUser to visible explicitly.
This is for consistency with how `visible` works in other models.
2020-03-21 23:06:42 -05:00
evazion 2445e8b82f favorites: convert user.hide_favorites? to pundit. 2020-03-21 23:06:42 -05:00
evazion 5bc82bf07b users: remove user is not ip banned validation.
This is handled on the controller level now.
2020-03-21 23:06:42 -05:00
evazion b21e1d219c users: remove as_admin and as_current methods. 2020-03-21 23:06:42 -05:00
evazion 94d78287eb bulk update request pruner: fix forum posts reference. 2020-03-21 23:06:42 -05:00
evazion e4d63eb0da post versions: fix index action when no versions exist.
Fix a nil dereference error during testing when no post versions exist.
2020-03-21 23:06:42 -05:00
evazion 41ab3c9f63 post versions: fix undo action. 2020-03-21 23:06:42 -05:00
evazion ca27929249 tests: add more posts/show tests. 2020-03-21 23:06:42 -05:00
evazion 3656063a6b tests: fix unit tests.
* Move old post archive tests to post version tests.

* Fix pool tests that assumed that multiple edits by the same user
  weren't merged.

* Fix references to `is_active` and `notes` on artist model.
2020-03-21 21:07:35 -05:00
evazion 94ae10b1a6 tests: fix post and pool version tests helpers.
* Fix the pool version SQS service to always be mocked before every
  test. Before we had to manually set it up before every test dealing
  with pool versions.

* Fix it so that we reconnect to the post/pool version databases before
  every test. Before using $ARCHIVE_DATABASE_URL to set the database url
  failed because environment variables weren't loaded by dotenv yet when
  connections were first established.
2020-03-21 19:28:10 -05:00
evazion 3cb2c10be8 Merge pull request #4349 from danbooru/refactor-pundit
Refactor authorization logic to use Pundit
2020-03-20 18:47:33 -05:00
evazion d775c625bb application controller: remove role_only! methods. 2020-03-20 18:03:50 -05:00
evazion 79e7b9308e pundit: convert misc privilege checks in views to pundit. 2020-03-20 18:03:50 -05:00
evazion 7f742242e4 pundit: convert uploads to pundit. 2020-03-20 18:03:01 -05:00
evazion d51b0dfe17 pundit: convert moderator/post/posts to pundit. 2020-03-20 18:03:01 -05:00
evazion 1344d4c161 pundit: convert moderator/dashboard to pundit.
Make it visible to everyone since there's no non-public information here.
2020-03-20 18:03:01 -05:00
evazion a5418abb31 pundit: convert posts to pundit. 2020-03-20 18:03:01 -05:00
evazion dd39913e55 pundit: convert post replacements to pundit. 2020-03-20 18:03:01 -05:00
evazion 3bb3c0b990 pundit: convert saved searches to pundit. 2020-03-20 18:03:01 -05:00
evazion 415d9591c5 pundit: convert post votes to pundit.
Side effects:

* The data-current-user-is-voter <body> attribute has been removed.
* {{upvote:self}} no longer works. {{upvote:<name>}} should be used instead.
2020-03-20 18:03:01 -05:00
evazion 33d81d0d1b pundit: convert post flags to pundit. 2020-03-20 18:03:01 -05:00
evazion ffae64f127 pundit: convert post versions to pundit. 2020-03-20 18:03:01 -05:00
evazion ba0a5dda8a pundit: convert post disapprovals to pundit. 2020-03-20 18:03:01 -05:00
evazion 84c654464d pundit: convert post approvals to pundit. 2020-03-20 18:03:01 -05:00
evazion cbee23f9ad pundit: convert post appeals to pundit. 2020-03-20 18:03:01 -05:00
evazion ab5432d149 pundit: convert pools to pundit. 2020-03-20 18:03:01 -05:00
evazion 83eae1bf11 pundit: convert passwords to pundit. 2020-03-20 18:03:01 -05:00
evazion 62835ac9fc pundit: convert notes to pundit. 2020-03-20 18:03:01 -05:00
evazion 2c4c29b81a pundit: convert favorite groups to pundit. 2020-03-20 18:03:01 -05:00
evazion 50fa674a3e pundit: convert emails to pundit. 2020-03-20 18:03:01 -05:00
evazion a440c56ed8 pundit: convert comment votes to pundit. 2020-03-20 18:03:01 -05:00
evazion ce1133dd69 pundit: convert artist commentaries to pundit. 2020-03-20 18:03:01 -05:00
evazion 3d83c3154e pundit: convert forum topic visits to pundit. 2020-03-20 18:03:01 -05:00
evazion f1f489c40b pundit: convert favorites to pundit. 2020-03-20 18:03:01 -05:00
evazion cc2b4abd09 pundit: convert forum post votes to pundit. 2020-03-20 18:03:01 -05:00
evazion be59e85d25 pundit: convert ip addresses to pundit. 2020-03-20 18:03:01 -05:00
evazion 92aeb8728f pundit: convert ip bans to pundit. 2020-03-20 18:03:01 -05:00
evazion 9242bf522b pundit: convert moderation reports to pundit. 2020-03-20 18:03:01 -05:00
evazion 480f39c34a pundit: convert dmails to pundit. 2020-03-20 18:03:01 -05:00
evazion 15ba2f6cd7 tests: fix email delivery tests.
Setting deliver_later_queue_name inside config/application.rb broke
tests because assert_enqueued_email_with assumes that the deliver_later
queue is called `mailers`.
2020-03-20 18:03:00 -05:00
evazion 19817a6f85 pundit: convert modqueue to pundit. 2020-03-20 18:03:00 -05:00
evazion 3d72e62c77 pundit: convert bans to pundit. 2020-03-20 18:03:00 -05:00
evazion ff1d71af2e pundit: convert artists to pundit. 2020-03-20 18:03:00 -05:00
evazion 79a365abe0 pundit: convert bulk update requests to pundit. 2020-03-20 18:03:00 -05:00
evazion b83c612246 pundit: convert delayed jobs to pundit. 2020-03-20 18:03:00 -05:00
evazion 4a36b99614 pundit: convert tag aliases / implications to pundit. 2020-03-20 18:03:00 -05:00
evazion 4bb036aff1 pundit: convert tags to pundit. 2020-03-20 18:03:00 -05:00
evazion 4cd0b2cbfe pundit: convert user feedbacks to pundit.
Allow users to delete feedbacks they've given to other users, not just
mods.
2020-03-20 18:03:00 -05:00
evazion 565a6572a7 pundit: convert user name change requests to pundit.
Fix discrepancy between index action and show action. The index
action allowed members to see name changes for undeleted users, but the
show action didn't.
2020-03-20 18:03:00 -05:00
evazion db63b6d44f pundit: convert forum topics / forum posts to pundit.
Fix it being possible for users to delete or undelete their own forum
posts and topics, even if they were deleted by a mod.
2020-03-20 18:03:00 -05:00
evazion b3ff08fedf pundit: convert wiki pages to pundit. 2020-03-20 18:03:00 -05:00
evazion 5c6d26ea24 pundit: convert users to pundit. 2020-03-20 18:03:00 -05:00
evazion a0c4617057 pundit: convert comments to pundit. 2020-03-20 18:03:00 -05:00
evazion d8e4a26906 pundit: convert news updates to pundit. 2020-03-20 18:03:00 -05:00
evazion 1d16034144 pundit: add initial application policy. 2020-03-20 18:03:00 -05:00
evazion d10925eb95 post query builder: fix deprecated raw sql warning. 2020-03-20 17:55:08 -05:00
evazion bb9ee6e394 uploads: remove dead "Force update" link for mods. 2020-03-20 17:55:08 -05:00
evazion ca2d25c042 reltags: remove mark inactive button from artist urls.
In related tags, remove the (X) button next to artist urls for marking
them as inactive. This was broken because it didn't record the change
to the is_active flag in the artist history.
2020-03-20 17:55:08 -05:00
evazion 4d49bf053f tests: fix only param test. 2020-03-20 17:53:59 -05:00
evazion 8aac108e6b tests: fix password reset tests. 2020-03-20 17:53:59 -05:00
evazion 2d260f509d tests: remove upload tags test. 2020-03-20 16:33:00 -05:00
evazion c2b2349472 Merge pull request #4339 from BrokenEagle/version-reports
Add alternate version comparisons
2020-03-20 16:32:28 -05:00
evazion 2bc99a813c Merge pull request #4320 from BrokenEagle/note-dimension-percentages
Convert notes to use percentages instead of exact coordinates
2020-03-20 16:26:02 -05:00
evazion 31424ce545 twitter: add test for video thumbnails (#4262). 2020-03-20 16:19:07 -05:00
evazion 31ee88796c Merge pull request #4346 from BrokenEagle/fix-twitter-video-links
Allow video thumbnails as direct Twitter images
2020-03-20 16:17:15 -05:00
evazion 9a3b855cf6 bulk update requests: fix reference to title attribute.
Also remove non-nullable and default options from migration. The column
didn't originally have these options so they shouldn't be added if the
migration is reverted.
2020-03-20 16:08:20 -05:00
evazion 09f021daf7 Merge pull request #4341 from BrokenEagle/bur-fixes
Various BUR fixes
2020-03-20 15:58:27 -05:00
evazion 844bacb890 Merge pull request #4342 from BrokenEagle/fix-blacklist-with-children
Only count unique post IDs for blacklist menu
2020-03-20 15:48:01 -05:00
evazion f7175d3b12 emails: fix migrate emails fix script. 2020-03-18 15:11:32 -05:00
evazion e70eb0221e emails: fix deliver_later mails not being sent.
By default, mails sent by deliver_later are added to the `mailers` job
queue. These mails weren't being sent because workers were only
configured to process the `default` queue.
2020-03-18 15:10:59 -05:00
evazion d211264239 emails: add show endpoint. 2020-03-18 03:46:01 -05:00
evazion f34f740c54 Fix #4338: meta description of pools lists "pages" instead of "posts" 2020-03-18 03:38:12 -05:00
evazion 96085f17dd Fix #4334: db:migrate hangs.
Possible fix for #4334. Running fix scripts inside migrations is bad practice.
2020-03-18 03:32:40 -05:00
evazion ef43b276b3 Update ruby gems and yarn packages. 2020-03-18 03:31:45 -05:00
evazion c2360919c4 tests: fix parse_query test. 2020-03-18 03:09:14 -05:00
evazion 7d028f67e9 structure.sql: resynchronize. 2020-03-18 03:09:08 -05:00
evazion 8253df84d9 forum: make status labels into clickable filters.
* Make it so that you can click the stickied / locked / deleted icons or
  the new / approved / pending / rejected labels to filter topics by
  that status.

* Replace the `mod_only` search param with `is_private`.
2020-03-16 21:23:27 -05:00
evazion 95d65b25e2 forum: add back 'new' label, move status labels to right-side column.
Also prevent long usernames from wrapping.

Fixes #4332.
2020-03-16 21:22:27 -05:00
evazion 93a60eebed ip bans: forbid all non-GET actions for ip banned users.
Previously only actions that were marked member_only or above were
subject to IP ban restrictions. This meant that certain actions that
weren't marked member_only, like creating new accounts, could still be
done by IP banned users.

Now IP banned users can't do any non-GET actions, which means they're
not allowed to even login to their accounts.
2020-03-16 15:35:46 -05:00
evazion ea96295940 autocomplete: fix autocomplete returning empty tags.
Fix regression caused by 57ba5c59. Autocomplete implicitly relied on
Tag.search filtering out nonempty tags by default.
2020-03-16 15:35:08 -05:00
evazion 9389fee726 forum: fixup broken tests.
Fix tests broken by recent addition of BUR status indicators.
2020-03-16 14:33:52 -05:00
evazion 4b30e644bb Update ruby gems and yarn packages. 2020-03-14 21:17:58 -05:00
evazion 0f0e7cedf3 dmails: fixup exceptions when verifying dmail keys.
Fix show action throwing exceptions when viewing a dmail without a dmail key.
2020-03-14 21:09:25 -05:00
evazion dc1742321d dmails: send email notifications in background job. 2020-03-14 21:06:29 -05:00
evazion 0ef9d6e417 emails: send welcome mail on signup. 2020-03-14 19:18:28 -05:00
evazion d860fab7f5 emails: send verification mail when user changes address. 2020-03-14 18:32:00 -05:00
evazion 167fe51a8a emails: move edit email flow to emails controller. 2020-03-14 17:42:47 -05:00