/artists/show_or_new: make public; add "artist doesn't exist" page.
* Fix access denied error when anonymous users open /artists/show_or_new. * When the artist doesn't exist, take user to "artist doesn't exist" page instead of redirecting to /artists/new.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
class ArtistsController < ApplicationController
|
||||
respond_to :html, :xml, :json
|
||||
before_filter :member_only, :except => [:index, :show, :banned]
|
||||
before_filter :member_only, :except => [:index, :show, :show_or_new, :banned]
|
||||
before_filter :builder_only, :only => [:destroy]
|
||||
before_filter :admin_only, :only => [:ban, :unban]
|
||||
before_filter :load_artist, :only => [:ban, :unban, :show, :edit, :update, :destroy, :undelete]
|
||||
@@ -96,7 +96,9 @@ class ArtistsController < ApplicationController
|
||||
if @artist
|
||||
redirect_to artist_path(@artist)
|
||||
else
|
||||
redirect_to new_artist_path(:name => params[:name])
|
||||
@artist = Artist.new(name: params[:name])
|
||||
@post_set = PostSets::Artist.new(@artist)
|
||||
respond_with(@artist)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
5
app/views/artists/show_or_new.html.erb
Normal file
5
app/views/artists/show_or_new.html.erb
Normal file
@@ -0,0 +1,5 @@
|
||||
<%= render layout: "show" do %>
|
||||
<div>
|
||||
<p>This artist entry does not exist. <%= link_to "Create new artist entry", new_artist_path(name: params[:name]) %>.</p>
|
||||
</div>
|
||||
<% end %>
|
||||
@@ -42,7 +42,7 @@ class ArtistsControllerTest < ActionController::TestCase
|
||||
assert_redirected_to(@masao)
|
||||
|
||||
get :show_or_new, { name: "nobody" }, { user_id: @user.id }
|
||||
assert_redirected_to(new_artist_path(name: "nobody"))
|
||||
assert_response :success
|
||||
end
|
||||
|
||||
should "get the edit page" do
|
||||
|
||||
Reference in New Issue
Block a user