2019-08-15 02:32:32 +02:00
|
|
|
defmodule PhilomenaWeb.Router do
|
|
|
|
use PhilomenaWeb, :router
|
2019-08-17 20:58:36 +02:00
|
|
|
use Pow.Phoenix.Router
|
2019-11-13 04:12:46 +01:00
|
|
|
use Pow.Extension.Phoenix.Router, otp_app: :philomena
|
2019-08-15 02:32:32 +02:00
|
|
|
|
|
|
|
pipeline :browser do
|
|
|
|
plug :accepts, ["html"]
|
|
|
|
plug :fetch_session
|
|
|
|
plug :fetch_flash
|
|
|
|
plug :protect_from_forgery
|
|
|
|
plug :put_secure_browser_headers
|
2019-12-06 18:41:02 +01:00
|
|
|
plug PhilomenaWeb.ContentSecurityPolicyPlug
|
2019-11-17 19:18:21 +01:00
|
|
|
plug PhilomenaWeb.CurrentFilterPlug
|
|
|
|
plug PhilomenaWeb.ImageFilterPlug
|
|
|
|
plug PhilomenaWeb.PaginationPlug
|
|
|
|
plug PhilomenaWeb.EnsureUserEnabledPlug
|
|
|
|
plug PhilomenaWeb.CurrentBanPlug
|
2019-11-17 19:52:59 +01:00
|
|
|
plug PhilomenaWeb.NotificationCountPlug
|
2019-11-18 18:32:23 +01:00
|
|
|
plug PhilomenaWeb.SiteNoticePlug
|
2019-11-28 03:57:25 +01:00
|
|
|
plug PhilomenaWeb.ForumListPlug
|
2019-11-17 20:47:01 +01:00
|
|
|
plug PhilomenaWeb.FilterSelectPlug
|
2019-11-30 07:30:45 +01:00
|
|
|
plug PhilomenaWeb.ChannelPlug
|
2019-12-05 00:15:54 +01:00
|
|
|
plug PhilomenaWeb.AdminCountersPlug
|
2019-08-15 02:32:32 +02:00
|
|
|
end
|
|
|
|
|
2019-12-04 01:50:23 +01:00
|
|
|
pipeline :api do
|
2019-12-01 00:11:24 +01:00
|
|
|
plug PhilomenaWeb.ApiTokenPlug
|
|
|
|
plug PhilomenaWeb.EnsureUserEnabledPlug
|
|
|
|
plug PhilomenaWeb.CurrentFilterPlug
|
2019-12-04 02:00:48 +01:00
|
|
|
plug PhilomenaWeb.FilterIdPlug
|
2019-12-01 00:11:24 +01:00
|
|
|
plug PhilomenaWeb.ImageFilterPlug
|
|
|
|
plug PhilomenaWeb.PaginationPlug
|
|
|
|
end
|
|
|
|
|
2019-12-04 01:50:23 +01:00
|
|
|
pipeline :accepts_rss do
|
|
|
|
plug :accepts, ["rss"]
|
|
|
|
end
|
|
|
|
|
|
|
|
pipeline :accepts_json do
|
2019-08-15 02:32:32 +02:00
|
|
|
plug :accepts, ["json"]
|
|
|
|
end
|
|
|
|
|
2019-11-13 04:12:46 +01:00
|
|
|
pipeline :ensure_totp do
|
2019-11-17 19:18:21 +01:00
|
|
|
plug PhilomenaWeb.TotpPlug
|
2019-11-13 04:12:46 +01:00
|
|
|
end
|
|
|
|
|
2019-12-23 19:57:14 +01:00
|
|
|
pipeline :ensure_tor_authorized do
|
|
|
|
plug PhilomenaWeb.TorPlug
|
|
|
|
end
|
|
|
|
|
2019-12-08 21:45:28 +01:00
|
|
|
pipeline :ensure_not_banned do
|
|
|
|
plug PhilomenaWeb.FilterBannedUsersPlug
|
|
|
|
end
|
|
|
|
|
2020-04-19 02:15:18 +02:00
|
|
|
pipeline :ensure_password_not_compromised do
|
|
|
|
plug PhilomenaWeb.CompromisedPasswordCheckPlug
|
|
|
|
end
|
|
|
|
|
2019-11-13 05:49:37 +01:00
|
|
|
pipeline :protected do
|
|
|
|
plug Pow.Plug.RequireAuthenticated,
|
|
|
|
error_handler: Pow.Phoenix.PlugErrorHandler
|
|
|
|
end
|
|
|
|
|
2019-12-08 21:45:28 +01:00
|
|
|
scope "/" do
|
2020-04-19 02:15:18 +02:00
|
|
|
pipe_through [
|
|
|
|
:browser,
|
|
|
|
:ensure_totp,
|
|
|
|
:ensure_not_banned,
|
|
|
|
:ensure_tor_authorized,
|
|
|
|
:ensure_password_not_compromised
|
|
|
|
]
|
2019-12-08 21:45:28 +01:00
|
|
|
|
|
|
|
pow_registration_routes()
|
|
|
|
end
|
|
|
|
|
2019-10-31 18:57:39 +01:00
|
|
|
scope "/" do
|
2019-11-13 04:12:46 +01:00
|
|
|
pipe_through [:browser, :ensure_totp]
|
2019-12-23 19:57:14 +01:00
|
|
|
|
2019-12-08 21:45:28 +01:00
|
|
|
pow_session_routes()
|
2019-12-23 19:57:14 +01:00
|
|
|
end
|
|
|
|
|
|
|
|
scope "/" do
|
|
|
|
pipe_through [:browser, :ensure_totp, :ensure_tor_authorized]
|
|
|
|
|
2019-11-13 04:12:46 +01:00
|
|
|
pow_extension_routes()
|
2019-10-31 18:57:39 +01:00
|
|
|
end
|
2019-08-17 20:58:36 +02:00
|
|
|
|
2019-08-15 02:32:32 +02:00
|
|
|
scope "/", PhilomenaWeb do
|
2019-11-13 06:28:02 +01:00
|
|
|
pipe_through [:browser, :protected]
|
2019-11-13 04:12:46 +01:00
|
|
|
|
|
|
|
# Additional routes for TOTP
|
2019-11-15 03:40:35 +01:00
|
|
|
scope "/registrations", Registration, as: :registration do
|
2019-11-13 04:12:46 +01:00
|
|
|
resources "/totp", TotpController, only: [:edit, :update], singleton: true
|
2020-05-03 00:17:55 +02:00
|
|
|
resources "/name", NameController, only: [:edit, :update], singleton: true
|
2019-11-13 04:12:46 +01:00
|
|
|
end
|
|
|
|
|
2019-11-15 03:40:35 +01:00
|
|
|
scope "/sessions", Session, as: :session do
|
2019-11-13 04:12:46 +01:00
|
|
|
resources "/totp", TotpController, only: [:new, :create], singleton: true
|
|
|
|
end
|
2019-11-13 06:28:02 +01:00
|
|
|
end
|
|
|
|
|
2019-12-04 01:50:23 +01:00
|
|
|
scope "/api/v1/rss", PhilomenaWeb.Api.Rss, as: :api_rss do
|
2019-12-20 18:44:45 +01:00
|
|
|
pipe_through [:accepts_rss, :api, :protected]
|
2019-12-01 00:11:24 +01:00
|
|
|
resources "/watched", WatchedController, only: [:index]
|
|
|
|
end
|
|
|
|
|
2019-12-04 01:50:23 +01:00
|
|
|
scope "/api/v1/json", PhilomenaWeb.Api.Json, as: :api_json do
|
2019-12-23 19:57:14 +01:00
|
|
|
pipe_through [:accepts_json, :api, :ensure_tor_authorized]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2020-01-06 02:09:45 +01:00
|
|
|
scope "/images", Image, as: :image do
|
|
|
|
resources "/featured", FeaturedController, only: [:show], singleton: true
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2020-05-01 06:40:57 +02:00
|
|
|
resources "/images", ImageController, only: [:show, :create]
|
2019-12-04 01:50:23 +01:00
|
|
|
|
|
|
|
scope "/search", Search, as: :search do
|
|
|
|
resources "/reverse", ReverseController, only: [:create]
|
2019-12-24 09:26:01 +01:00
|
|
|
resources "/images", ImageController, only: [:index]
|
|
|
|
resources "/tags", TagController, only: [:index]
|
|
|
|
resources "/posts", PostController, only: [:index]
|
|
|
|
resources "/comments", CommentController, only: [:index]
|
|
|
|
resources "/galleries", GalleryController, only: [:index]
|
2019-12-04 01:50:23 +01:00
|
|
|
end
|
2019-12-24 09:26:01 +01:00
|
|
|
|
|
|
|
# Convenience alias
|
|
|
|
get "/search", Search.ImageController, :index
|
|
|
|
|
2019-12-04 02:27:58 +01:00
|
|
|
resources "/oembed", OembedController, only: [:index]
|
2019-12-08 06:04:45 +01:00
|
|
|
resources "/tags", TagController, only: [:show]
|
2020-01-01 00:25:11 +01:00
|
|
|
resources "/comments", CommentController, only: [:show]
|
2020-01-07 16:35:24 +01:00
|
|
|
resources "/posts", PostController, only: [:show]
|
2020-03-03 04:49:02 +01:00
|
|
|
resources "/profiles", ProfileController, only: [:show]
|
2020-03-25 16:32:25 +01:00
|
|
|
|
|
|
|
scope "/filters", Filter, as: :filter do
|
|
|
|
resources "/user", UserFilterController, only: [:index]
|
|
|
|
resources "/system", SystemFilterController, only: [:index]
|
|
|
|
end
|
|
|
|
|
2020-03-12 17:53:25 +01:00
|
|
|
resources "/filters", FilterController, only: [:show]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2020-01-02 23:47:12 +01:00
|
|
|
resources "/forums", ForumController, only: [:show, :index] do
|
2020-01-07 08:02:49 +01:00
|
|
|
resources "/topics", Forum.TopicController, only: [:show, :index] do
|
|
|
|
resources "/posts", Forum.Topic.PostController, only: [:show, :index]
|
2020-01-02 23:47:12 +01:00
|
|
|
end
|
|
|
|
end
|
2019-12-04 01:50:23 +01:00
|
|
|
end
|
|
|
|
|
2020-05-05 04:34:10 +02:00
|
|
|
scope "/", PhilomenaWeb do
|
|
|
|
pipe_through [:browser, :ensure_totp, :ensure_tor_authorized]
|
|
|
|
|
|
|
|
# A curiosity due to the fact that Phoenix routes cannot have constraints
|
|
|
|
scope "/channels", Channel, as: :channel do
|
|
|
|
resources "/nsfw", NsfwController, only: [:create, :delete], singleton: true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2019-11-16 04:50:58 +01:00
|
|
|
scope "/", PhilomenaWeb do
|
|
|
|
pipe_through [:browser, :ensure_totp, :protected]
|
|
|
|
|
2019-12-02 15:55:48 +01:00
|
|
|
scope "/notifications", Notification, as: :notification do
|
|
|
|
resources "/unread", UnreadController, only: [:index]
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-16 04:50:58 +01:00
|
|
|
resources "/notifications", NotificationController, only: [:index, :delete]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-18 17:00:08 +01:00
|
|
|
resources "/conversations", ConversationController, only: [:index, :show, :new, :create] do
|
2019-12-04 14:19:33 +01:00
|
|
|
resources "/reports", Conversation.ReportController, only: [:new, :create]
|
2019-11-18 17:00:08 +01:00
|
|
|
resources "/messages", Conversation.MessageController, only: [:create]
|
2019-12-08 00:24:37 +01:00
|
|
|
resources "/read", Conversation.ReadController, only: [:create, :delete], singleton: true
|
|
|
|
resources "/hide", Conversation.HideController, only: [:create, :delete], singleton: true
|
2019-11-18 17:00:08 +01:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-17 03:20:33 +01:00
|
|
|
resources "/images", ImageController, only: [] do
|
|
|
|
resources "/vote", Image.VoteController, only: [:create, :delete], singleton: true
|
|
|
|
resources "/fave", Image.FaveController, only: [:create, :delete], singleton: true
|
|
|
|
resources "/hide", Image.HideController, only: [:create, :delete], singleton: true
|
2020-01-11 05:20:19 +01:00
|
|
|
|
|
|
|
resources "/subscription", Image.SubscriptionController,
|
|
|
|
only: [:create, :delete],
|
|
|
|
singleton: true
|
|
|
|
|
2019-11-29 20:29:01 +01:00
|
|
|
resources "/read", Image.ReadController, only: [:create], singleton: true
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-10 21:29:48 +01:00
|
|
|
resources "/comments", Image.CommentController, only: [:edit, :update] do
|
|
|
|
resources "/hide", Image.Comment.HideController, only: [:create, :delete], singleton: true
|
2019-12-12 05:41:33 +01:00
|
|
|
resources "/delete", Image.Comment.DeleteController, only: [:create], singleton: true
|
2019-12-10 21:29:48 +01:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2020-02-01 17:04:11 +01:00
|
|
|
resources "/delete", Image.DeleteController,
|
|
|
|
only: [:create, :delete, :update],
|
|
|
|
singleton: true
|
2019-12-16 06:25:06 +01:00
|
|
|
|
2019-12-30 13:50:02 +01:00
|
|
|
resources "/tamper", Image.TamperController, only: [:create], singleton: true
|
2019-12-16 06:25:06 +01:00
|
|
|
resources "/hash", Image.HashController, only: [:delete], singleton: true
|
|
|
|
resources "/source_history", Image.SourceHistoryController, only: [:delete], singleton: true
|
|
|
|
resources "/repair", Image.RepairController, only: [:create], singleton: true
|
|
|
|
resources "/feature", Image.FeatureController, only: [:create], singleton: true
|
|
|
|
resources "/file", Image.FileController, only: [:update], singleton: true
|
|
|
|
resources "/scratchpad", Image.ScratchpadController, only: [:edit, :update], singleton: true
|
2019-12-17 19:53:41 +01:00
|
|
|
resources "/uploader", Image.UploaderController, only: [:update], singleton: true
|
2020-04-30 06:14:14 +02:00
|
|
|
resources "/anonymous", Image.AnonymousController, only: [:create, :delete], singleton: true
|
2019-12-16 06:25:06 +01:00
|
|
|
|
2020-01-11 05:20:19 +01:00
|
|
|
resources "/comment_lock", Image.CommentLockController,
|
|
|
|
only: [:create, :delete],
|
|
|
|
singleton: true
|
|
|
|
|
|
|
|
resources "/description_lock", Image.DescriptionLockController,
|
|
|
|
only: [:create, :delete],
|
|
|
|
singleton: true
|
|
|
|
|
2019-12-16 06:25:06 +01:00
|
|
|
resources "/tag_lock", Image.TagLockController, only: [:create, :delete], singleton: true
|
2019-11-17 03:20:33 +01:00
|
|
|
end
|
2019-11-17 19:05:50 +01:00
|
|
|
|
|
|
|
resources "/forums", ForumController, only: [] do
|
2020-05-07 04:58:03 +02:00
|
|
|
resources "/topics", TopicController, only: [:new, :create, :update] do
|
2020-01-11 05:20:19 +01:00
|
|
|
resources "/subscription", Topic.SubscriptionController,
|
|
|
|
only: [:create, :delete],
|
|
|
|
singleton: true
|
|
|
|
|
2019-11-29 20:29:01 +01:00
|
|
|
resources "/read", Topic.ReadController, only: [:create], singleton: true
|
2019-12-14 00:31:42 +01:00
|
|
|
resources "/move", Topic.MoveController, only: [:create], singleton: true
|
|
|
|
resources "/stick", Topic.StickController, only: [:create, :delete], singleton: true
|
|
|
|
resources "/lock", Topic.LockController, only: [:create, :delete], singleton: true
|
2019-12-14 19:03:11 +01:00
|
|
|
resources "/hide", Topic.HideController, only: [:create, :delete], singleton: true
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-12 00:58:00 +01:00
|
|
|
resources "/posts", Topic.PostController, only: [:edit, :update] do
|
|
|
|
resources "/hide", Topic.Post.HideController, only: [:create, :delete], singleton: true
|
2019-12-12 05:41:33 +01:00
|
|
|
resources "/delete", Topic.Post.DeleteController, only: [:create], singleton: true
|
2019-12-12 00:58:00 +01:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2020-04-30 23:24:24 +02:00
|
|
|
resources "/poll", Topic.PollController, only: [:edit, :update], singleton: true do
|
|
|
|
resources "/votes", Topic.Poll.VoteController, only: [:index, :create, :delete]
|
|
|
|
end
|
2019-11-17 19:05:50 +01:00
|
|
|
end
|
2019-11-29 20:29:01 +01:00
|
|
|
|
2020-01-11 05:20:19 +01:00
|
|
|
resources "/subscription", Forum.SubscriptionController,
|
|
|
|
only: [:create, :delete],
|
|
|
|
singleton: true
|
|
|
|
|
2019-11-29 20:29:01 +01:00
|
|
|
resources "/read", Forum.ReadController, only: [:create], singleton: true
|
2019-11-17 19:05:50 +01:00
|
|
|
end
|
2019-11-17 20:47:01 +01:00
|
|
|
|
2019-12-04 15:28:17 +01:00
|
|
|
resources "/profiles", ProfileController, only: [] do
|
2020-01-11 05:20:19 +01:00
|
|
|
resources "/commission", Profile.CommissionController,
|
|
|
|
only: [:new, :create, :edit, :update, :delete],
|
|
|
|
singleton: true do
|
|
|
|
resources "/items", Profile.Commission.ItemController,
|
|
|
|
only: [:new, :create, :edit, :update, :delete]
|
|
|
|
|
2019-12-04 18:14:41 +01:00
|
|
|
resources "/reports", Profile.Commission.ReportController, only: [:new, :create]
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
|
|
|
resources "/description", Profile.DescriptionController,
|
|
|
|
only: [:edit, :update],
|
|
|
|
singleton: true
|
|
|
|
|
|
|
|
resources "/scratchpad", Profile.ScratchpadController,
|
|
|
|
only: [:edit, :update],
|
|
|
|
singleton: true
|
|
|
|
|
2019-12-10 02:21:49 +01:00
|
|
|
resources "/user_links", Profile.UserLinkController
|
2019-12-15 21:02:13 +01:00
|
|
|
resources "/awards", Profile.AwardController, except: [:index, :show]
|
2019-12-17 03:26:43 +01:00
|
|
|
|
|
|
|
resources "/details", Profile.DetailController, only: [:index]
|
|
|
|
resources "/ip_history", Profile.IpHistoryController, only: [:index]
|
|
|
|
resources "/fp_history", Profile.FpHistoryController, only: [:index]
|
|
|
|
resources "/aliases", Profile.AliasController, only: [:index]
|
2019-12-04 15:28:17 +01:00
|
|
|
end
|
|
|
|
|
2019-11-17 20:47:01 +01:00
|
|
|
scope "/filters", Filter, as: :filter do
|
|
|
|
resources "/spoiler_type", SpoilerTypeController, only: [:update], singleton: true
|
2019-12-06 18:12:55 +01:00
|
|
|
resources "/hide", HideController, only: [:create, :delete], singleton: true
|
|
|
|
resources "/spoiler", SpoilerController, only: [:create, :delete], singleton: true
|
|
|
|
end
|
|
|
|
|
|
|
|
resources "/tags", TagController, only: [] do
|
|
|
|
resources "/watch", Tag.WatchController, only: [:create, :delete], singleton: true
|
2019-12-17 19:12:58 +01:00
|
|
|
resources "/details", Tag.DetailController, only: [:index]
|
2019-11-17 20:47:01 +01:00
|
|
|
end
|
2019-12-04 05:14:56 +01:00
|
|
|
|
2019-12-07 17:26:45 +01:00
|
|
|
resources "/avatar", AvatarController, only: [:edit, :update, :delete], singleton: true
|
|
|
|
|
2019-12-04 05:14:56 +01:00
|
|
|
resources "/reports", ReportController, only: [:index]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-05 05:12:49 +01:00
|
|
|
resources "/galleries", GalleryController, only: [:new, :create, :edit, :update, :delete] do
|
|
|
|
resources "/images", Gallery.ImageController, only: [:create, :delete], singleton: true
|
|
|
|
resources "/order", Gallery.OrderController, only: [:update], singleton: true
|
|
|
|
resources "/read", Gallery.ReadController, only: [:create], singleton: true
|
2020-01-11 05:20:19 +01:00
|
|
|
|
|
|
|
resources "/subscription", Gallery.SubscriptionController,
|
|
|
|
only: [:create, :delete],
|
|
|
|
singleton: true
|
2019-12-05 05:12:49 +01:00
|
|
|
end
|
2019-12-05 05:27:40 +01:00
|
|
|
|
|
|
|
resources "/channels", ChannelController, only: [] do
|
|
|
|
resources "/read", Channel.ReadController, only: [:create], singleton: true
|
2020-01-11 05:20:19 +01:00
|
|
|
|
|
|
|
resources "/subscription", Channel.SubscriptionController,
|
|
|
|
only: [:create, :delete],
|
|
|
|
singleton: true
|
2019-12-05 05:27:40 +01:00
|
|
|
end
|
2019-12-08 02:49:28 +01:00
|
|
|
|
2019-12-12 22:44:50 +01:00
|
|
|
resources "/dnp", DnpEntryController, only: [:new, :create, :edit, :update]
|
|
|
|
|
2019-12-17 18:56:03 +01:00
|
|
|
resources "/ip_profiles", IpProfileController, only: [:show] do
|
|
|
|
resources "/tag_changes", IpProfile.TagChangeController, only: [:index]
|
|
|
|
resources "/source_changes", IpProfile.SourceChangeController, only: [:index]
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-17 18:56:03 +01:00
|
|
|
resources "/fingerprint_profiles", FingerprintProfileController, only: [:show] do
|
|
|
|
resources "/tag_changes", FingerprintProfile.TagChangeController, only: [:index]
|
|
|
|
resources "/source_changes", FingerprintProfile.SourceChangeController, only: [:index]
|
|
|
|
end
|
2019-12-08 18:45:37 +01:00
|
|
|
|
|
|
|
scope "/admin", Admin, as: :admin do
|
2019-12-09 04:16:13 +01:00
|
|
|
resources "/reports", ReportController, only: [:index, :show] do
|
|
|
|
resources "/claim", Report.ClaimController, only: [:create, :delete], singleton: true
|
|
|
|
resources "/close", Report.CloseController, only: [:create], singleton: true
|
|
|
|
end
|
2019-12-10 02:21:49 +01:00
|
|
|
|
|
|
|
resources "/user_links", UserLinkController, only: [:index] do
|
2020-01-11 05:20:19 +01:00
|
|
|
resources "/verification", UserLink.VerificationController,
|
|
|
|
only: [:create],
|
|
|
|
singleton: true
|
|
|
|
|
2019-12-10 02:21:49 +01:00
|
|
|
resources "/contact", UserLink.ContactController, only: [:create], singleton: true
|
|
|
|
resources "/reject", UserLink.RejectController, only: [:create], singleton: true
|
|
|
|
end
|
2019-12-12 22:44:50 +01:00
|
|
|
|
|
|
|
resources "/dnp_entries", DnpEntryController, only: [:index] do
|
|
|
|
resources "/transition", DnpEntry.TransitionController, only: [:create], singleton: true
|
|
|
|
end
|
2019-12-13 18:14:34 +01:00
|
|
|
|
2020-01-11 05:20:19 +01:00
|
|
|
resources "/user_bans", UserBanController,
|
|
|
|
only: [:index, :new, :create, :edit, :update, :delete]
|
|
|
|
|
|
|
|
resources "/subnet_bans", SubnetBanController,
|
|
|
|
only: [:index, :new, :create, :edit, :update, :delete]
|
|
|
|
|
|
|
|
resources "/fingerprint_bans", FingerprintBanController,
|
|
|
|
only: [:index, :new, :create, :edit, :update, :delete]
|
2019-12-14 19:28:04 +01:00
|
|
|
|
|
|
|
resources "/site_notices", SiteNoticeController, except: [:show]
|
2020-03-31 17:39:11 +02:00
|
|
|
|
2020-03-30 00:36:24 +02:00
|
|
|
resources "/adverts", AdvertController, except: [:show] do
|
|
|
|
resources "/image", Advert.ImageController, only: [:edit, :update], singleton: true
|
|
|
|
end
|
2019-12-15 18:54:27 +01:00
|
|
|
|
|
|
|
resources "/forums", ForumController, except: [:show, :delete]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-23 15:23:25 +01:00
|
|
|
resources "/badges", BadgeController, except: [:show, :delete] do
|
|
|
|
resources "/users", Badge.UserController, only: [:index]
|
2020-03-30 00:36:24 +02:00
|
|
|
resources "/image", Badge.ImageController, only: [:edit, :update], singleton: true
|
2019-12-23 15:23:25 +01:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-15 23:52:51 +01:00
|
|
|
resources "/mod_notes", ModNoteController, except: [:show]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-16 03:21:14 +01:00
|
|
|
resources "/users", UserController, only: [:index, :edit, :update] do
|
|
|
|
resources "/avatar", User.AvatarController, only: [:delete], singleton: true
|
2020-01-11 05:20:19 +01:00
|
|
|
|
|
|
|
resources "/activation", User.ActivationController,
|
|
|
|
only: [:create, :delete],
|
|
|
|
singleton: true
|
|
|
|
|
2019-12-17 06:44:24 +01:00
|
|
|
resources "/api_key", User.ApiKeyController, only: [:delete], singleton: true
|
|
|
|
resources "/downvotes", User.DownvoteController, only: [:delete], singleton: true
|
|
|
|
resources "/votes", User.VoteController, only: [:delete], singleton: true
|
|
|
|
resources "/wipe", User.WipeController, only: [:create], singleton: true
|
2020-06-12 19:00:59 +02:00
|
|
|
|
|
|
|
resources "/force_filter", User.ForceFilterController,
|
|
|
|
only: [:new, :create, :delete],
|
|
|
|
singleton: true
|
2019-12-16 03:21:14 +01:00
|
|
|
end
|
2019-12-16 23:11:16 +01:00
|
|
|
|
|
|
|
resources "/batch/tags", Batch.TagController, only: [:update], singleton: true
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-17 06:44:24 +01:00
|
|
|
scope "/donations", Donation, as: :donation do
|
|
|
|
resources "/user", UserController, only: [:show]
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-17 04:24:40 +01:00
|
|
|
resources "/donations", DonationController, only: [:index, :create]
|
2019-12-08 18:45:37 +01:00
|
|
|
end
|
2019-12-09 05:41:35 +01:00
|
|
|
|
|
|
|
resources "/duplicate_reports", DuplicateReportController, only: [] do
|
|
|
|
resources "/accept", DuplicateReport.AcceptController, only: [:create], singleton: true
|
2020-01-11 05:20:19 +01:00
|
|
|
|
|
|
|
resources "/accept_reverse", DuplicateReport.AcceptReverseController,
|
|
|
|
only: [:create],
|
|
|
|
singleton: true
|
|
|
|
|
2019-12-09 05:41:35 +01:00
|
|
|
resources "/reject", DuplicateReport.RejectController, only: [:create], singleton: true
|
2020-01-11 05:20:19 +01:00
|
|
|
|
|
|
|
resources "/claim", DuplicateReport.ClaimController,
|
|
|
|
only: [:create, :delete],
|
|
|
|
singleton: true
|
2019-12-09 05:41:35 +01:00
|
|
|
end
|
2019-12-14 22:18:49 +01:00
|
|
|
|
2019-12-15 00:04:23 +01:00
|
|
|
resources "/tags", TagController, only: [:edit, :update, :delete] do
|
|
|
|
resources "/image", Tag.ImageController, only: [:edit, :update, :delete], singleton: true
|
|
|
|
resources "/alias", Tag.AliasController, only: [:edit, :update, :delete], singleton: true
|
2019-12-16 19:49:53 +01:00
|
|
|
resources "/reindex", Tag.ReindexController, only: [:create], singleton: true
|
2019-12-15 00:04:23 +01:00
|
|
|
end
|
2019-12-15 18:33:37 +01:00
|
|
|
|
2020-01-11 05:20:19 +01:00
|
|
|
resources "/tag_changes/revert", TagChange.RevertController,
|
|
|
|
as: :tag_change_revert,
|
|
|
|
only: [:create],
|
|
|
|
singleton: true
|
2019-12-22 06:09:01 +01:00
|
|
|
|
2019-12-15 18:33:37 +01:00
|
|
|
resources "/pages", PageController, only: [:index, :new, :create, :edit, :update]
|
2020-05-02 18:27:50 +02:00
|
|
|
resources "/channels", ChannelController, only: [:new, :create, :edit, :update, :delete]
|
2019-11-16 04:50:58 +01:00
|
|
|
end
|
|
|
|
|
2019-11-13 06:28:02 +01:00
|
|
|
scope "/", PhilomenaWeb do
|
2019-12-23 19:57:14 +01:00
|
|
|
pipe_through [:browser, :ensure_totp, :ensure_tor_authorized]
|
2019-08-15 02:32:32 +02:00
|
|
|
|
2019-10-04 18:48:00 +02:00
|
|
|
get "/", ActivityController, :index
|
2019-08-18 18:17:05 +02:00
|
|
|
|
2019-10-09 01:19:57 +02:00
|
|
|
resources "/activity", ActivityController, only: [:index]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-29 00:19:47 +01:00
|
|
|
scope "/images", Image, as: :image do
|
|
|
|
resources "/scrape", ScrapeController, only: [:create]
|
2019-11-30 06:40:37 +01:00
|
|
|
resources "/random", RandomController, only: [:index]
|
2019-11-29 00:19:47 +01:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-26 05:51:17 +01:00
|
|
|
resources "/images", ImageController, only: [:index, :show, :new, :create] do
|
2019-12-21 00:02:03 +01:00
|
|
|
resources "/related", Image.RelatedController, only: [:index]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-04 14:13:10 +01:00
|
|
|
resources "/comments", Image.CommentController, only: [:index, :show, :create] do
|
|
|
|
resources "/reports", Image.Comment.ReportController, only: [:new, :create]
|
2019-12-06 03:46:51 +01:00
|
|
|
resources "/history", Image.Comment.HistoryController, only: [:index]
|
2019-12-04 14:13:10 +01:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-25 03:16:22 +01:00
|
|
|
resources "/tags", Image.TagController, only: [:update], singleton: true
|
|
|
|
resources "/sources", Image.SourceController, only: [:update], singleton: true
|
|
|
|
resources "/tag_changes", Image.TagChangeController, only: [:index]
|
|
|
|
resources "/source_changes", Image.SourceChangeController, only: [:index]
|
2019-12-22 23:45:29 +01:00
|
|
|
resources "/description", Image.DescriptionController, only: [:update], singleton: true
|
2019-11-30 03:33:15 +01:00
|
|
|
resources "/navigate", Image.NavigateController, only: [:index]
|
2019-12-04 05:14:56 +01:00
|
|
|
resources "/reports", Image.ReportController, only: [:new, :create]
|
|
|
|
resources "/reporting", Image.ReportingController, only: [:show], singleton: true
|
2019-12-20 18:26:38 +01:00
|
|
|
resources "/favorites", Image.FavoriteController, only: [:index]
|
2019-11-12 03:38:51 +01:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-27 03:19:07 +01:00
|
|
|
scope "/tags", Tag, as: :tag do
|
|
|
|
resources "/autocomplete", AutocompleteController, only: [:show], singleton: true
|
2019-12-01 18:26:14 +01:00
|
|
|
resources "/fetch", FetchController, only: [:index]
|
2019-11-27 03:19:07 +01:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-04 23:10:35 +01:00
|
|
|
resources "/tags", TagController, only: [:index, :show] do
|
|
|
|
resources "/tag_changes", Tag.TagChangeController, only: [:index]
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-29 01:11:05 +01:00
|
|
|
scope "/search", Search, as: :search do
|
|
|
|
resources "/reverse", ReverseController, only: [:index, :create]
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-08-29 03:33:58 +02:00
|
|
|
resources "/search", SearchController, only: [:index]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-10-06 23:31:48 +02:00
|
|
|
resources "/forums", ForumController, only: [:index, :show] do
|
2019-11-18 04:31:28 +01:00
|
|
|
resources "/topics", TopicController, only: [:show] do
|
2019-12-04 14:13:10 +01:00
|
|
|
resources "/posts", Topic.PostController, only: [:create] do
|
|
|
|
resources "/reports", Topic.Post.ReportController, only: [:new, :create]
|
2019-12-06 14:58:34 +01:00
|
|
|
resources "/history", Topic.Post.HistoryController, only: [:index]
|
2019-12-04 14:13:10 +01:00
|
|
|
end
|
2019-11-18 04:31:28 +01:00
|
|
|
end
|
2019-10-06 23:31:48 +02:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-12 04:10:41 +01:00
|
|
|
resources "/comments", CommentController, only: [:index]
|
2019-08-18 20:14:36 +02:00
|
|
|
|
2019-10-09 02:45:04 +02:00
|
|
|
scope "/filters", Filter, as: :filter do
|
2019-11-13 04:12:46 +01:00
|
|
|
resources "/current", CurrentController, only: [:update], singleton: true
|
2019-10-09 02:45:04 +02:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2020-05-02 18:58:11 +02:00
|
|
|
resources "/filters", FilterController do
|
|
|
|
resources "/public", Filter.PublicController, only: [:create], singleton: true
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-04 14:25:10 +01:00
|
|
|
resources "/profiles", ProfileController, only: [:show] do
|
|
|
|
resources "/reports", Profile.ReportController, only: [:new, :create]
|
2019-12-04 15:28:17 +01:00
|
|
|
resources "/commission", Profile.CommissionController, only: [:show], singleton: true
|
2019-12-04 23:10:35 +01:00
|
|
|
resources "/tag_changes", Profile.TagChangeController, only: [:index]
|
2019-12-04 23:56:13 +01:00
|
|
|
resources "/source_changes", Profile.SourceChangeController, only: [:index]
|
2019-12-04 14:25:10 +01:00
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-13 17:28:02 +01:00
|
|
|
resources "/captchas", CaptchaController, only: [:create]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-28 03:06:41 +01:00
|
|
|
scope "/posts", Post, as: :post do
|
|
|
|
resources "/preview", PreviewController, only: [:create]
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-17 23:14:20 +01:00
|
|
|
resources "/posts", PostController, only: [:index]
|
2019-12-04 18:14:41 +01:00
|
|
|
resources "/commissions", CommissionController, only: [:index]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-05 05:12:49 +01:00
|
|
|
resources "/galleries", GalleryController, only: [:index, :show] do
|
|
|
|
resources "/reports", Gallery.ReportController, only: [:new, :create]
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-29 07:26:05 +01:00
|
|
|
resources "/adverts", AdvertController, only: [:show]
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-12-06 19:06:54 +01:00
|
|
|
resources "/pages", PageController, only: [:show] do
|
|
|
|
resources "/history", Page.HistoryController, only: [:index]
|
|
|
|
end
|
2020-01-11 05:20:19 +01:00
|
|
|
|
2019-11-29 22:47:41 +01:00
|
|
|
resources "/dnp", DnpEntryController, only: [:index, :show]
|
2019-11-29 23:01:54 +01:00
|
|
|
resources "/staff", StaffController, only: [:index]
|
2019-11-30 07:30:45 +01:00
|
|
|
resources "/channels", ChannelController, only: [:index, :show]
|
2019-11-30 23:40:53 +01:00
|
|
|
resources "/settings", SettingController, only: [:edit, :update], singleton: true
|
2019-12-04 05:14:56 +01:00
|
|
|
resources "/duplicate_reports", DuplicateReportController, only: [:index, :show, :create]
|
2019-10-09 02:45:04 +02:00
|
|
|
|
2019-08-18 20:14:36 +02:00
|
|
|
get "/:id", ImageController, :show
|
2019-11-28 03:06:41 +01:00
|
|
|
# get "/:forum_id", ForumController, :show # impossible to do without constraints
|
|
|
|
get "/:forum_id/:id", TopicController, :show
|
|
|
|
get "/:forum_id/:id/:page", TopicController, :show
|
2019-11-28 18:12:10 +01:00
|
|
|
get "/:forum_id/:id/post/:post_id", TopicController, :show
|
2019-08-15 02:32:32 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
# Other scopes may use custom stacks.
|
|
|
|
# scope "/api", PhilomenaWeb do
|
|
|
|
# pipe_through :api
|
|
|
|
# end
|
|
|
|
end
|