Remove the enable_sequential_post_navigation option. This option was used to disable the next/previous post navbar below posts. This option was originally added in issue #674 because of people complaining about the navbar when it was originally added. Also there were complaints about URLs being uglier because of search params in the URL (e.g. /posts/1234?q=touhou). There were also various minor bugs with it at the time, such as keyboard shortcuts not working correctly, or the page not remembering your search after a tag edit. These complaints are irrelevant nowadays because a) people are used to the navbar by now (and more often complain about it *not* being there for order:score searches), b) post URLs always contain the search now, this option hasn't disabled that for years, and c) the initial bugs with it were fixed years ago. Only ~1000 users disabled this option and only ~600 were seen in the last year. Users still wishing to hide the search navbar can use custom CSS instead.
83 lines
2.1 KiB
Ruby
83 lines
2.1 KiB
Ruby
class UserPolicy < ApplicationPolicy
|
|
def create?
|
|
true
|
|
end
|
|
|
|
def new?
|
|
true
|
|
end
|
|
|
|
def update?
|
|
record.id == user.id || user.is_admin?
|
|
end
|
|
|
|
def promote?
|
|
user.is_moderator?
|
|
end
|
|
|
|
def upgrade?
|
|
!user.is_anonymous?
|
|
end
|
|
|
|
def reportable?
|
|
false
|
|
end
|
|
|
|
def fix_counts?
|
|
!user.is_anonymous?
|
|
end
|
|
|
|
def can_see_last_logged_in_at?
|
|
user.is_moderator?
|
|
end
|
|
|
|
def can_see_favorites?
|
|
user.is_admin? || record.id == user.id || !record.enable_private_favorites?
|
|
end
|
|
|
|
def permitted_attributes_for_create
|
|
[:name, :password, :password_confirmation, { email_address_attributes: [:address] }]
|
|
end
|
|
|
|
def permitted_attributes_for_update
|
|
[
|
|
:comment_threshold, :default_image_size, :favorite_tags,
|
|
:blacklisted_tags, :time_zone, :per_page, :custom_style, :theme,
|
|
:receive_email_notifications, :always_resize_images,
|
|
:enable_post_navigation, :new_post_navigation_layout,
|
|
:enable_private_favorites, :hide_deleted_posts, :style_usernames,
|
|
:enable_auto_complete, :show_deleted_children,
|
|
:disable_categorized_saved_searches, :disable_tagged_filenames,
|
|
:disable_cropped_thumbnails, :disable_mobile_gestures, :enable_safe_mode,
|
|
:enable_desktop_mode, :disable_post_tooltips,
|
|
].compact
|
|
end
|
|
|
|
def api_attributes
|
|
attributes = %i[
|
|
id created_at name inviter_id level
|
|
post_upload_count post_update_count note_update_count is_banned
|
|
can_approve_posts can_upload_free level_string
|
|
]
|
|
|
|
if record.id == user.id
|
|
attributes += User::BOOLEAN_ATTRIBUTES
|
|
attributes += %i[
|
|
updated_at last_logged_in_at last_forum_read_at
|
|
comment_threshold default_image_size
|
|
favorite_tags blacklisted_tags time_zone per_page
|
|
custom_style favorite_count api_regen_multiplier
|
|
api_burst_limit remaining_api_limit statement_timeout
|
|
favorite_group_limit favorite_limit tag_query_limit
|
|
is_comment_limited?
|
|
max_saved_searches theme
|
|
]
|
|
end
|
|
|
|
attributes
|
|
end
|
|
|
|
alias_method :profile?, :show?
|
|
alias_method :settings?, :edit?
|
|
end
|