Commit Graph

162 Commits

Author SHA1 Message Date
Albert Yi
72f319ccf3 rename lambda references to use shorthand syntax 2018-05-10 11:18:02 -07:00
evazion
216d735f24 Fix #3696: API: handle boolean params consistently
* Use ApplicationRecord#attribute_matches to handle boolean attributes
  consistently in search methods.

* Add support for searching various boolean attributes that previously
  weren't supported.
2018-05-03 19:57:14 -05:00
evazion
c7492343ce String: add truthy? & falsy? core extensions.
* Add `truthy?` and `falsy?` core extensions to String.

* Use `truthy?` and `falsy?` to replace ad-hoc parsing of boolean
  parameters in various places.
2018-05-03 19:57:14 -05:00
Albert Yi
06559c4ae4 fix missing urls in artists (fixes #3632) 2018-04-13 12:25:49 -07:00
evazion
af9a09c2cb Fix #3626: Artist creation page doesn't autocomplete the name anymore. 2018-04-12 16:23:59 -05:00
r888888888
abce4d2551 Raise error on unpermitted params.
Fail loudly if we forget to whitelist a param instead of silently
ignoring it.

misc models: convert to strong params.

artist commentaries: convert to strong params.

* Disallow changing or setting post_id to a nonexistent post.

artists: convert to strong params.

* Disallow setting `is_banned` in create/update actions. Changing it
  this way instead of with the ban/unban actions would leave the artist in
  a partially banned state.

bans: convert to strong params.

* Disallow changing the user_id after the ban has been created.

comments: convert to strong params.

favorite groups: convert to strong params.

news updates: convert to strong params.

post appeals: convert to strong params.

post flags: convert to strong params.

* Disallow users from setting the `is_deleted` / `is_resolved` flags.

ip bans: convert to strong params.

user feedbacks: convert to strong params.

* Disallow users from setting `disable_dmail_notification` when creating feedbacks.
* Disallow changing the user_id after the feedback has been created.

notes: convert to strong params.

wiki pages: convert to strong params.

* Also fix non-Builders being able to delete wiki pages.

saved searches: convert to strong params.

pools: convert to strong params.

* Disallow setting `post_count` or `is_deleted` in create/update actions.

janitor trials: convert to strong params.

post disapprovals: convert to strong params.

* Factor out quick-mod bar to shared partial.
* Fix quick-mod bar to use `Post#is_approvable?` to determine visibility
  of Approve button.

dmail filters: convert to strong params.

password resets: convert to strong params.

user name change requests: convert to strong params.

posts: convert to strong params.

users: convert to strong params.

* Disallow setting password_hash, last_logged_in_at, last_forum_read_at,
  has_mail, and dmail_filter_attributes[user_id].

* Remove initialize_default_image_size (dead code).

uploads: convert to strong params.

* Remove `initialize_status` because status already defaults to pending
  in the database.

tag aliases/implications: convert to strong params.

tags: convert to strong params.

forum posts: convert to strong params.

* Disallow changing the topic_id after creating the post.
* Disallow setting is_deleted (destroy/undelete actions should be used instead).
* Remove is_sticky / is_locked (nonexistent attributes).

forum topics: convert to strong params.

* merges https://github.com/evazion/danbooru/tree/wip-rails-5.1
* lock pg gem to 0.21 (1.0.0 is incompatible with rails 5.1.4)
* switch to factorybot and change all references

Co-authored-by: r888888888 <r888888888@gmail.com>
Co-authored-by: evazion <noizave@gmail.com>

add diffs
2018-04-06 18:09:57 -07:00
evazion
5113aec937 artist finder: fix bogus matches for nijie. 2018-03-03 11:26:15 -06:00
Albert Yi
47bd812811 Merge pull request #3525 from BrokenEagle/fix-index-default-order
Fix index default order
2018-01-29 13:11:24 -08:00
BrokenEagle
d829ab3a00 Move all order logic to models
- Have a default order for each model
-- The overall default is ID DESC
- Allow for custom orderings
-- When comma-separated IDs are used
2018-01-29 11:42:53 -08:00
evazion
64186c004f Add pbs.twimg.com to artist finder blacklist.
ref: https://danbooru.donmai.us/forum_topics/14938.
2018-01-26 18:30:18 -06:00
evazion
f8a5620768 Partial fix for #3514: Handle https://twitter.com/i/web/status/:id URL. 2018-01-23 23:07:21 -06:00
Albert Yi
dfd343f70e Merge pull request #3496 from BrokenEagle/feat-mod-action-event-ids
Add categories to mod actions
2018-01-15 11:09:38 -08:00
BrokenEagle
f1bf1440b4 Don't save wiki page when notes value is null 2018-01-14 20:15:29 -08:00
BrokenEagle
85f04a826a Added additional mod actions 2018-01-14 00:07:20 -08:00
evazion
952b5f9245 Fix bogus artist finder matches for http://www.nicovideo.jp/user/1234. 2017-12-26 14:31:42 -06:00
evazion
86f1ec5919 Fix #3459: Batch Bookmarklet for Artstation returns wrong results. 2017-12-26 14:05:41 -06:00
Albert Yi
fb6d692c37 Merge pull request #3429 from evazion/fix-bogus-find-artist
Fix #2696: Bogus results on non-matching URL searches for Artists
2017-12-18 10:28:32 -08:00
evazion
859fe99a80 Fix #2696: Bogus results on non-matching URL searches for Artists 2017-12-17 21:00:34 -06:00
evazion
0ca726802f Fix #3430: Accept the search[id] param in all controllers.
* Allow every controller to take the `search[id]` param.

* Parse the `search[id]` param the same way that the `id:<N>` metatag is
  parsed. So `search[id]=1,2,3`, `search[id]=<42`, `search[id]=1..10`, for
  example, are all accepted.
2017-12-17 17:36:52 -06:00
evazion
86936f7200 Artist#find_all_by_url: refactor hardcoded bogus urls to blacklist. 2017-12-17 14:14:21 -06:00
r888888888
483c8ba795 fix ambiguities in artist search 2017-11-22 15:41:50 -08:00
evazion
58018aeb2b artists: move artist finding code from controller to model. 2017-11-14 23:27:47 -06:00
r888888888
4b2dcca8a2 use tag name validator for artist names #3328 2017-10-09 16:24:09 -07:00
r888888888
d12f082f9a fixes #3300 2017-09-14 11:37:42 -07:00
evazion
a56c1bbb76 artists: fix validation error when url_string has leading spaces.
Bug: if the url_string had leading spaces, when it was split the
resulting array contained the empty string, which led to a validation
error when trying to save the urls.

Fixup for #3247.
2017-08-04 01:05:25 -05:00
evazion
10614d2152 artists: show success/error message when updating artists. 2017-07-29 01:44:05 -05:00
evazion
6121b8cb25 artists: simplify artist url saving code.
Refactor the way artist urls are saved so that artist url validations
run before the artist is saved, not after.
2017-07-29 01:41:37 -05:00
evazion
af35c82d96 Remove unused Artist#legacy_api_hash method (#3206).
Added in 0e0d83c7 but never used. app/views/legacy/artists.{json,xml}.erb
is what *would* use this, but neither does.
2017-07-09 13:49:20 -05:00
evazion
dc36476d50 nijie: don't return bogus artists when artist finder finds no match. 2017-06-20 17:09:57 -05:00
evazion
3560bbbd47 pawoo: don't return bogus artists when artist finder doesn't find a match. 2017-06-19 17:10:02 -05:00
evazion
c1834ab8dd Inherit models from ApplicationRecord instead of ActiveRecord::Base. 2017-06-16 13:28:31 -05:00
r888888888
216ca06fee fixes #3100 2017-05-30 15:38:01 -07:00
r888888888
f38810bd1c fixes #3086 2017-05-24 15:57:06 -07:00
evazion
2c29a7ac19 /artists: only include domains in /artists/1234.json, not /artists.json. 2017-05-14 10:38:26 -05:00
r888888888
5ad7f1af91 cache artist domains, show artist domains in wiki excerpt on post listing 2017-05-12 14:50:37 -07:00
r888888888
66458c34b0 fixes #3014 2017-05-02 15:39:16 -07:00
r888888888
440c5219bd memoize domains 2017-05-01 15:52:32 -07:00
r888888888
62c9beafc2 fixes #2993: Artist URL breakdown 2017-05-01 15:48:04 -07:00
r888888888
48e9856f37 fixes #3007: Eliminate Janitor role 2017-05-01 14:38:30 -07:00
evazion
d1188d8184 /artists: add search params: has_tag, name/other_names/group_name/any_name/url_matches. 2017-04-26 14:08:18 -05:00
evazion
30872ebb41 Fix #2990: Wiki Autocomplete Misses On Certain Meta-wikis
/wiki_pages?search[order]=post_count didn't include wiki pages that
didn't belong to a tag. This was due to doing an inner join on the tags
table instead of a left outer join.
2017-04-23 16:55:15 -05:00
r888888888
68f057e7ba refactor how artist notes are updated 2017-04-18 17:07:12 -07:00
r888888888
19b8d41d09 refactor forum notifications for tag changes 2017-04-12 16:43:15 -07:00
r888888888
75bca7341b remove status init on artist create 2017-04-10 14:30:34 -07:00
evazion
6b462c865e /artists: sort autocomplete by post count.
* Add search[order]=post_count param to /artists.
* Make autocomplete do a prefix match ordered by post count, so that it
  works the same way that tag autocomplete does elsewhere.
2017-04-07 18:25:31 -05:00
evazion
fbba167f0c artist.rb: fix ambiguous column references.
Using `search[empty_only]=true` caused certain queries to throw an
exception due to ambiguous column references after joining on the tags
table.

Example:

    https://danbooru.donmai.us/artists?search[empty_only]=true&search[name]=hammer*

    PG::AmbiguousColumn exception raised
    ERROR: column reference "name" is ambiguous LINE 1: ...ags"."name" = "artists"."name" WHERE (true) AND ((name LIKE ... ^
    lib/danbooru/paginator/active_record_extension.rb:108:in `total_count'
    lib/danbooru/paginator/active_record_extension.rb:63:in `block in paginate_numbered'
    lib/danbooru/paginator/active_record_extension.rb:60:in `tap'
    lib/danbooru/paginator/active_record_extension.rb:60:in `paginate_numbered'
    lib/danbooru/paginator/active_record_extension.rb:15:in `paginate'
    app/controllers/artists_controller.rb:41:in `index'
2017-04-07 18:25:31 -05:00
evazion
e67194c19d Set approver when creating banned_artist implication. 2016-10-26 21:52:19 -05:00
Albert Yi
2a5343b8cf add more intelligent js for artist forms 2016-10-18 14:56:40 -07:00
evazion
c46b31aa9c Prevent reverting to foreign versions (fixes #2711). 2016-10-11 06:57:46 +00:00
evazion
98f16b7105 Artist finder: Don't return bogus results for non-matching twitter artists. 2016-10-05 08:13:27 +00:00