favgroups: don't allow favgroups to be named 'any' or 'none'.
'any' and 'none' are now reserved keywords for the favgroup: metatag. Also add a fix script to rename existing favgroups.
This commit is contained in:
@@ -9,6 +9,7 @@ class FavoriteGroup < ApplicationRecord
|
||||
validates :name, presence: true
|
||||
validates :name, uniqueness: { case_sensitive: false, scope: :creator_id }
|
||||
validates :name, format: { without: /,/, message: "cannot have commas" }
|
||||
validates :name, exclusion: { in: %w[any none], message: "can't be '%{value}'" }
|
||||
validate :creator_can_create_favorite_groups, :on => :create
|
||||
validate :validate_number_of_posts
|
||||
validate :validate_posts
|
||||
|
||||
15
script/fixes/108_fix_reserved_favgroups.rb
Executable file
15
script/fixes/108_fix_reserved_favgroups.rb
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env ruby
|
||||
|
||||
require_relative "base"
|
||||
|
||||
with_confirmation do
|
||||
FavoriteGroup.where(name: %w[any none]).find_each do |favgroup|
|
||||
old_name = favgroup.name
|
||||
favgroup.update!(name: "favgroup_#{favgroup.id}")
|
||||
|
||||
Dmail.create_automated(to: favgroup.creator, title: "Your favorite group has been renamed", body: <<~EOS)
|
||||
Your favgroup ##{favgroup.id} has been renamed from "#{old_name}" to "#{favgroup.name}". "#{old_name}" is no longer an allowed favgroup name.
|
||||
You can go "here":/favorite_groups/#{favgroup.id}/edit to change your favgroup's name to something else.
|
||||
EOS
|
||||
end
|
||||
end
|
||||
Reference in New Issue
Block a user