Add redirect to mobile-only photo URL when in desktop UI
This URL is only used in the mobile UI, but when somebody then copies the link and sends it to somebody on the desktop UI, they don't see anything. So lets just redirect to the post containing the photo, so there is at least something to show. If there is no linked post, just redirect to the image instead. Fixes #8352
This commit is contained in:
parent
03796e8fe2
commit
cbbb0a55c2
2 changed files with 22 additions and 1 deletions
|
|
@ -16,6 +16,14 @@ class PhotosController < ApplicationController
|
|||
end
|
||||
|
||||
raise ActiveRecord::RecordNotFound unless @photo
|
||||
|
||||
respond_to do |format|
|
||||
format.html {
|
||||
post = @photo.status_message
|
||||
redirect_to post ? post_path(post) : @photo.url
|
||||
}
|
||||
format.mobile { render "photos/show" }
|
||||
end
|
||||
end
|
||||
|
||||
def index
|
||||
|
|
|
|||
|
|
@ -230,6 +230,19 @@ describe PhotosController, :type => :controller do
|
|||
expect(response).to be_successful
|
||||
end
|
||||
|
||||
it "should redirect to the post of the photo when not on mobile" do
|
||||
alices_post = alice.post(:status_message, text: "Post with photo", to: alice.aspects.first.id, public: false)
|
||||
@alices_photo.update(status_message: alices_post)
|
||||
|
||||
get :show, params: {person_id: alice.person.guid, id: @alices_photo.id}
|
||||
expect(response).to redirect_to(post_path(alices_post))
|
||||
end
|
||||
|
||||
it "should redirect to the photo file when not on mobile and no post exists" do
|
||||
get :show, params: {person_id: alice.person.guid, id: @alices_photo.id}
|
||||
expect(response).to redirect_to(@alices_photo.url)
|
||||
end
|
||||
|
||||
it "doesn't leak private photos to the public" do
|
||||
sign_out :user
|
||||
expect {
|
||||
|
|
|
|||
Loading…
Reference in a new issue