Commit Graph

4526 Commits

Author SHA1 Message Date
Albert Yi
1fa0aabbe0 Merge pull request #2896 from evazion/fix-username-whitespace
Disallow unicode whitespace in usernames (#2894).
2017-02-27 16:47:44 -08:00
Albert Yi
27a85cd066 Merge pull request #2895 from evazion/fix-modqueue-dtext
modqueue: link tags, optimize sql, use dtext in disapproval reasons.
2017-02-27 16:47:19 -08:00
r888888888
b332273378 fixes #2892: after_destroy callbacks should be fired upon comment deletion 2017-02-27 16:45:51 -08:00
r888888888
a90a1bd895 fix boolean checks in postarchive 2017-02-27 15:41:45 -08:00
r888888888
16cd879e08 potential fix for #2900: Post Versions JSON API failure - undefined method join 2017-02-27 15:22:15 -08:00
r888888888
398f58684f Merge branch 'post-archive' 2017-02-27 10:45:13 -08:00
evazion
6966b74e18 Disallow unicode whitespace in usernames (#2894). 2017-02-25 01:51:33 -06:00
evazion
b80976bce7 modqueue: link tags, like they are in /comments. 2017-02-24 21:03:14 -06:00
evazion
83915a5d46 modqueue: avoid N+1 queries for disapprovals, uploaders.
Fixes an N+1 queries problem in the /moderator/post/queue view by
prefetching disapprovals and uploaders.

Also the way disapproval messages were previously rendered triggered a bunch
of sql queries for each post:

    SELECT COUNT(*) FROM "post_disapprovals" WHERE "post_disapprovals"."post_id" = $1 [["post_id", 52]]
    SELECT COUNT(*) FROM "post_disapprovals" WHERE "post_disapprovals"."post_id" = $1 AND "post_disapprovals"."reason" = $2  [["post_id", 52], ["reason", "breaks_rules"]]
    SELECT COUNT(*) FROM "post_disapprovals" WHERE "post_disapprovals"."post_id" = $1 AND "post_disapprovals"."reason" = $2  [["post_id", 52], ["reason", "poor_quality"]]
    SELECT COUNT(*) FROM "post_disapprovals" WHERE "post_disapprovals"."post_id" = $1 AND "post_disapprovals"."reason" IN ('disinterest', 'legacy')  [["post_id", 52]]
    SELECT COUNT(*) FROM "post_disapprovals" WHERE "post_disapprovals"."post_id" = $1 AND (message is not null and message <> '')  [["post_id", 52]]
    SELECT "post_disapprovals".* FROM "post_disapprovals" WHERE "post_disapprovals"."post_id" = $1 AND (message is not null and message <> '')  [["post_id", 52]]

This refactors to bring it down to one:

    SELECT "post_disapprovals".* FROM "post_disapprovals" WHERE "post_disapprovals"."post_id" = $1  [["post_id", 52]]
2017-02-24 21:03:14 -06:00
evazion
9b40016895 /posts/NNN, modqueue: allow dtext in disapproval reasons. 2017-02-24 21:03:14 -06:00
r888888888
2ebdfd7ab3 add s3 methods to amazonbackup 2017-02-24 14:00:59 -08:00
r888888888
8a57d38f38 remove statement about responding in automated messages 2017-02-24 10:36:45 -08:00
evazion
b1af644f67 dmails: send automated dmails from Danbooru.config.system_user.
Sends automated dmails from `Danbooru.config.system_user`, rather than
whichever user is performing the action happens to be (usually User.admins.first).

Also adds a notice in the view that the dmail was automated.
2017-02-23 22:51:17 -06:00
evazion
1400f64338 dmails_controller.rb: convert to strong params. 2017-02-23 22:51:17 -06:00
evazion
0c4b687880 user_name_change_requests.rb: remove unused notify_admins callback. 2017-02-23 22:51:17 -06:00
evazion
865211b0b5 dmails: remove unused edit template and update route. 2017-02-23 22:51:17 -06:00
evazion
2d8a7ed93b /dmails: add help:dmail link to subnavbar. 2017-02-23 22:51:17 -06:00
evazion
d852f98e4f /dmails: remove unused search[owner_id] param.
/dmails is restricted to viewing dmails for CurrentUser only (due to
Dmail.visible in the index action). Remove owner_id from subnavbar links
in /dmails, and don't support it in /dmails?search[owner_id], since it
doesn't actually do anything.

Also removes related dead methods and fixes tests that didn't test owner_id properly.
2017-02-23 22:51:17 -06:00
evazion
6de350cd7d dmail.rb: remove dead new_blank method. 2017-02-23 22:51:17 -06:00
evazion
35bf995276 dmail.rb: make to_name= use User.name_to_id cache. 2017-02-23 22:51:17 -06:00
evazion
2736d31c67 dmail.rb: validate only on creation.
to/from/title/body don't need to be revalidated after creation since
they never change.
2017-02-23 22:51:16 -06:00
r888888888
851872f104 fix site map 2017-02-21 16:41:35 -08:00
r888888888
e699684c61 add css for highliting a specific forum post 2017-02-21 13:40:52 -08:00
Albert Yi
5404c1d231 implement postarchive 2017-02-21 13:40:52 -08:00
r888888888
6c9d5e4f9a remove advertisement code 2017-02-21 13:35:22 -08:00
r888888888
f4d9f76646 remove contributors report 2017-02-21 13:12:43 -08:00
r888888888
ce20a5b36a remove janitor trial report 2017-02-21 13:10:38 -08:00
r888888888
359f48d871 remove user promotions report 2017-02-21 13:09:43 -08:00
r888888888
6ca83a2f3c fixes #2890: Danbooru account upgrades reset permissions 2017-02-21 12:39:45 -08:00
r888888888
176510909a fixes #2891: Banned artists still show up in search listings 2017-02-21 11:34:01 -08:00
Albert Yi
8f49300187 Merge pull request #2889 from evazion/fix-dmail-indexes
Dmails: add indexes on is_read and is_deleted (fix #2886)
2017-02-21 11:31:20 -08:00
evazion
abae71c060 layouts/default.html.erb: optimize dmail notice sql.
* CurrentUser.dmail_count caused an unnecessary COUNT(*).
* CurrentUser.dmails.unread.present? caused *all* unread dmails to be
  loaded. We want to only load the first one.
2017-02-18 05:54:46 -06:00
evazion
17d4feaf15 dmail_notice.html.erb: use absolute urls in dtext links. 2017-02-18 03:11:35 -06:00
r888888888
291e9acdc7 fixes #2885: "Is Deleted" not being recorded correctly for Wiki Page Versions 2017-02-15 15:32:41 -08:00
r888888888
f374eec4a1 fixes #2869: Add way to differentiate Pool Descriptions from Pool History 2017-02-14 16:03:19 -08:00
r888888888
aa41c41572 fixes #2876: Changing approver/contributor privileges should log mod action 2017-02-14 12:46:54 -08:00
r888888888
ed8a8001f4 fixes #2859: search:uncategorized should search for uncategorized saved searches 2017-02-14 11:58:43 -08:00
r888888888
651dad473d fixes #2884: Comment unvoting is broken 2017-02-14 10:35:27 -08:00
Albert Yi
7aa0107e2b Merge pull request #2882 from evazion/fix-tag-name-validation
Enforce stricter rules for tag names
2017-02-10 12:02:55 -08:00
r888888888
dce57a8ae1 disable tag subscription updates 2017-02-09 15:38:42 -08:00
evazion
c926f75918 fixup! post.rb: validate newly added tags. 2017-02-09 02:14:48 -06:00
evazion
facf819620 post.rb: validate newly added tags.
Existing tags with invalid names are still permitted. This is to allow
for a gradual transition to good tag names.
2017-02-08 23:31:30 -06:00
evazion
347f11b935 post.rb: group validation methods together. 2017-02-08 23:31:30 -06:00
evazion
8e3296f3ea tag.rb: don't strip '%' or ',' from tags; split on unicode spaces.
Allows '%' and ',' in tag names. There's no technical need to forbid
these characters.

Fixes an issue with these characters being stripped away inside metatags
(e.g. tagging a post with `pool:ichigo_100%` strips away the '%').
2017-02-08 23:31:30 -06:00
evazion
853ddc7cda tag.rb: validate tag names.
Makes these tag names invalid when tagging posts:

* Blank names (e.g. ___).
* Non-ASCII characters (Japanese text).
* Non-printable characters (e.g. control characters < 0x20).
* Leading or trailing underscores, or consecutive underscores. Reason:
  `_foo__bar_` and `foo_bar` both render as `foo bar` in the tag list.
* Leading `-` or `~`, or '*' (-foo, ~foo, foo*bar). Previously
  these were silently stripped, but that meant tagging a post with e.g.
  `*-foo` tagged the post with the invalid tag `-foo`.
* Tag type prefixes (e.g. `character:character:hatsune_miku` no longer creates
  the literal tag `character:hatsune_miku`).
* Metatags (order:score, user:evazion, etc).
2017-02-08 23:30:23 -06:00
r888888888
f0a8598ba2 update aws gem, stub in rake tasks for s3 2017-02-08 15:06:54 -08:00
r888888888
b57b54113f add cdn hosted flag to posts 2017-02-07 17:26:16 -08:00
Albert Yi
1c837aba6e Merge pull request #2879 from evazion/fix-dead-code
Eliminate dead code
2017-02-07 13:56:05 -08:00
Albert Yi
b1c33f2379 Merge pull request #2878 from evazion/fix-test-coverage
Improve controller test coverage
2017-02-07 13:45:16 -08:00
r888888888
7a3d1c7d1d dont download original artstation images if they dont exist 2017-02-07 13:40:19 -08:00