eBooru/app/controllers/static_controller.rb

84 lines
1.8 KiB
Ruby
Raw Permalink Normal View History

# frozen_string_literal: true
2010-11-19 16:24:17 -05:00
class StaticController < ApplicationController
2022-05-04 14:33:31 -04:00
def privacy
@page = format_wiki_page("help:privacy_policy")
2022-05-04 14:33:31 -04:00
end
2011-12-29 17:34:46 -05:00
def terms_of_service
@page = format_wiki_page("help:terms_of_service")
end
def contact
@page = format_wiki_page("help:contact")
end
def takedown
@page = format_wiki_page("help:takedown")
end
def avoid_posting
@page = format_wiki_page("help:avoid_posting_notice")
2011-12-29 17:34:46 -05:00
end
2019-09-25 18:56:17 -04:00
def subscribestar
@page = format_wiki_page("e621:subscribestar")
end
2016-08-30 17:42:01 -04:00
def not_found
render "static/404", formats: [:html], status: 404
2016-08-30 17:42:01 -04:00
end
2013-02-22 14:45:39 -05:00
def error
end
def site_map
end
2020-02-02 16:50:20 -05:00
2020-03-15 04:37:12 -04:00
def home
render layout: "blank"
end
2020-03-30 19:48:24 -04:00
def theme
end
def disable_mobile_mode
if CurrentUser.is_member?
user = CurrentUser.user
user.disable_responsive_mode = !user.disable_responsive_mode
user.save
else
if cookies[:nmm]
cookies.delete(:nmm)
else
cookies.permanent[:nmm] = '1'
end
end
redirect_back fallback_location: posts_path
end
2020-02-02 16:50:20 -05:00
def discord
unless CurrentUser.can_discord?
2020-03-05 16:55:00 -05:00
raise User::PrivilegeError.new("You must have an account for at least one week in order to join the Discord server.")
2020-02-02 16:50:20 -05:00
return
end
if request.post?
time = (Time.now + 5.minute).to_i
secret = Danbooru.config.discord_secret
# TODO: Proper HMAC
hashed_values = Digest::SHA256.hexdigest("#{CurrentUser.name} #{CurrentUser.id} #{time} #{secret}")
user_hash = "?user_id=#{CurrentUser.id}&username=#{CurrentUser.name}&time=#{time}&hash=#{hashed_values}"
redirect_to(Danbooru.config.discord_site + user_hash, allow_other_host: true)
2020-02-02 16:50:20 -05:00
end
end
private
def format_wiki_page(name)
wiki = WikiPage.titled(name)
return WikiPage.new(body: "Wiki page \"#{name}\" not found.") if wiki.blank?
wiki
end
2010-11-19 16:24:17 -05:00
end