fixes #2526: Don't allow special characters ('*', etc...) in artist names

This commit is contained in:
r888888888
2015-10-06 15:03:12 -07:00
parent c9926d6c58
commit 6ce5223399
2 changed files with 19 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ class Artist < ActiveRecord::Base
after_save :save_url_string
after_save :categorize_tag
validates_uniqueness_of :name
validate :name_is_valid
belongs_to :creator, :class_name => "User"
has_many :members, :class_name => "Artist", :foreign_key => "group_name", :primary_key => "name"
has_many :urls, :dependent => :destroy, :class_name => "ArtistUrl"
@@ -85,6 +86,18 @@ class Artist < ActiveRecord::Base
end
end
def name_is_valid
if name =~ /^[-~]/
errors[:name] << "cannot begin with - or ~"
false
elsif name =~ /\*/
errors[:name] << "cannot contain *"
false
else
true
end
end
def normalize_name
self.name = Artist.normalize_name(name)
end

View File

@@ -31,6 +31,12 @@ class ArtistTest < ActiveSupport::TestCase
CurrentUser.ip_addr = nil
end
should "should have a valid name" do
@artist = Artist.new(:name => "-blah")
@artist.save
assert_equal(["Name cannot begin with - or ~"], @artist.errors.full_messages)
end
context "with a matching tag alias" do
setup do
@tag_alias = FactoryGirl.create(:tag_alias, :antecedent_name => "aaa", :consequent_name => "bbb")