Sha256: b2b50331eea24514c31e185821cd32d5506db89933c192cc603380ab8185296e

Contents?: true

Size: 1.36 KB

Versions: 17

Compression:

Stored size: 1.36 KB

Contents

# frozen_string_literal: true

class FixUserNames < ActiveRecord::Migration[5.2]
  class UserBaseEntity < ApplicationRecord
    include Decidim::Nicknamizable

    self.table_name = :decidim_users
    self.inheritance_column = nil # disable the default inheritance
  end

  def change
    # Comes from Decidim::User specs
    weird_characters =
      ["<", ">", "?", "\\%", "&", "^", "*", "#", "@", "(", ")", "[", "]", "=", "+", ":", ";", "\"", "{", "}", "\\", "|", "/"]
    characters_to_remove = "<>?%&^*\#@()[]=+:;\"{}\\|/"

    weird_characters.each do |character|
      UserBaseEntity.where(deleted_at: nil).where("name like '%#{character}%' escape '\\' OR nickname like '%#{character}%' escape '\\'").find_each do |entity|
        Rails.logger.debug { "detected character: #{character}" }
        Rails.logger.debug { "UserBaseEntity ID: #{entity.id}" }
        Rails.logger.debug { "#{entity.name} => #{entity.name.delete(characters_to_remove).strip}" }
        Rails.logger.debug { "#{entity.nickname} => #{entity.nickname.delete(characters_to_remove).strip}" }

        entity.name = entity.name.delete(characters_to_remove).strip
        sanitized_nickname = entity.nickname.delete(characters_to_remove).strip
        entity.nickname = UserBaseEntity.nicknamize(sanitized_nickname, organization: entity.organization)
        entity.save(validate: false)
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
decidim-core-0.30.0.rc2 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.30.0.rc1 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.29.2 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.28.5 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.29.1 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.28.4 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.29.0 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.28.3 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.29.0.rc4 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.29.0.rc3 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.29.0.rc2 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.29.0.rc1 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.28.2 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.28.1 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.28.0 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.28.0.rc5 db/migrate/20190412131728_fix_user_names.rb
decidim-core-0.28.0.rc4 db/migrate/20190412131728_fix_user_names.rb