Commit Graph

31 Commits

Author SHA1 Message Date
evazion
6424a4de74 Do full page counts on small index pages.
Normally we skip doing page counts on index pages when there aren't any
search filters. This is on the assumption that most index pages have
more than 1000 pages (20,000 results), so it's not worth counting them
exactly. This isn't always true, so here we turn on full counts on
certain index pages known to be small.
2019-10-28 15:18:54 -05:00
evazion
dfbf4f3f0a Remove single alias/implication requests.
* Remove the single alias and implication request forms. From now
  on, bulk update requests are the only way to request aliases or
  implications.

* Remove the forum topic ID field from the bulk update request form.
  Instead, to attach a BUR to an existing topic you go to the topic then
  you click "Request alias/implication" at the top of the page.

* Update the bulk update request form to give better examples for the
  script format and to explain the difference between aliases and
  implications.
2019-10-28 01:36:28 -05:00
evazion
b5a40aa233 bulk update requests: list upvotes/downvotes on index page. 2019-10-28 01:06:23 -05:00
evazion
a5ab25d0ba pagination: avoid counting pages outside searches.
Replace this common pattern in controllers:

    @tags = Tag.search(search_params).paginate(params[:page], :limit => params[:limit], :search_count => params[:search])

with this:

    @tags = Tag.paginated_search(params)

`search_count` is used to skip doing a full page count when we're not
doing a search (on the assumption that the number of results will be
high when not constrained by a search). We didn't do this consistently
though. Refactor to do this in every controller.
2019-10-07 22:02:03 -05:00
evazion
d4c43af1dd app controller: replace calls to access_denied with PrivilegeError.
Standardize controllers to raise User::PrivilegeError instead of calling
`access_denied` directly.
2019-08-24 23:10:22 -05:00
evazion
a284d3fb4a BURs: allow only pending BURs to be rejected.
Fix it being possible to reject approved BURs, or to re-reject already
rejected BURs.

Rejecting an approved BUR wouldn't revert the aliases/implications, but
it would change the BUR's status to rejected.
2019-01-15 21:20:28 -06:00
Albert Yi
8b0af19f7f fixes #3824: render tag requests dynamically in the forum post
refactoring
2019-01-08 12:57:37 -08:00
evazion
705217d337 Fix new dtext shortlinks redirecting to nonexistent pages.
Fix the following dtext shortlinks redirecting to nonexistent pages:

* flag #1
* appeal #1
* mod action #1
* bur #1
2018-10-25 23:00:43 -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
4bc5cc8ccd bulk update requests: allow admins to edit forum topic/post ids (#3554). 2018-02-18 13:08:53 -06:00
evazion
f07aa1b170 bulk update requests: convert to strong params. 2018-02-18 12:12:12 -06:00
evazion
f2351766c6 Fix #3374: List approver in BUR approval messages. 2017-11-15 19:12:12 -06:00
Albert Yi
1cc9abc2db Merge pull request #3204 from evazion/fix-3203
Fix #3203: Overly restrictive permissions
2017-07-07 18:59:13 -07:00
evazion
9e39d292a6 Fix /bulk_update_requests/1234.json. 2017-07-07 14:33:16 -05:00
evazion
e6a5d1e9e8 /bulk_update_requests: make available to anonymous users. 2017-07-06 19:20:38 -05:00
evazion
614bf44086 /bulk_update_requests: add search form. 2017-05-23 17:23:32 -05:00
evazion
6dd8ec909d Set approver of aliases/implications in BURs.
Previously only the BUR's approver was set when a BUR was approved. Set
the approver for each alias/implication in the BUR as well.

Additionally:

* Refactor `approve!` to take a user instead of just a user id.
* Be mass-assignment permissions aware when setting approver_id.
2016-10-26 21:52:19 -05:00
r888888888
55494c30bb show error messages on bur failures 2016-06-15 13:03:29 -07:00
r888888888
df9b53715f fixes #2599: Show more info when a BUR is approved/rejected 2016-06-14 10:45:15 -07:00
r888888888
cab6768b4b fix bug with approving bulk update requests 2016-06-12 17:34:13 -07:00
r888888888
110569708e fix tests 2016-05-26 13:17:18 -07:00
r888888888
ee4c19a0dd improve bulk update req ui 2015-04-21 17:22:16 -07:00
Toks
2d99501f91 fix bur rejection 2015-04-06 18:30:02 -04:00
Toks
9d53bdfa17 fix bulk req index 2014-06-19 02:37:50 -04:00
r888888888
f65691b5e6 fix tests 2014-06-18 16:51:55 -07:00
Toks
b5ab3e1a30 fix bulk req search 2014-06-18 14:04:31 -04:00
r888888888
4ab6a2417f fixes #2199 2014-06-17 18:07:19 -07:00
Toks
a8a1d5e783 Order bulk reqs index by pending first 2014-06-17 02:44:30 -04:00
Toks
ec4e7d39ac bulk update req api 2014-06-17 02:38:37 -04:00
r888888888
87ef2b8e0f fixes #2190 2014-06-16 17:29:35 -07:00
r888888888
7b97ca192c fixes #2190 2014-06-12 21:16:21 -07:00