Sha256: daa92ef337fdabfc1a0cdc19c90ad91db7a3eb86ffabd09098d7ddc4f49776fa

Contents?: true

Size: 1.69 KB

Versions: 17

Compression:

Stored size: 1.69 KB

Contents

# -*- encoding : utf-8 -*-

class AddRecaptchaKeyAndAdminInfoCards < Card::Migration::Core
  def up
    create_recaptcha_settings
    Card::Cache.reset_all
    create_admin_cards
    update_machine_output
  end

  def create_admin_cards
    admin_only name: "*admin info",
               codename: "admin_info"
    admin_only name: "*google_analytics_key",
               codename: "google_analytics_key"

    codenames = %w(debugger recaptcha_settings)
    content =
      codenames.map do |cn|
        "[[#{Card[cn.to_sym].name}]]"
      end.join "\n"
    admin_only name: "*admin settings",
               codename: "admin_settings",
               type_id: Card::PointerID,
               content: content
    add_admin_info_to_home_card
  end

  def add_admin_info_to_home_card
    return unless (home = Card[Card[:home].content])
    new_content = home.content.prepend "{{*admin info|content}}\n"
    home.update_attributes! content: new_content
  end

  def create_recaptcha_settings
    admin_only name: "*recaptcha settings",
               codename: :recaptcha_settings, type_id: Card::PointerID,
               content: "[[+public key]]\n" \
                        "[[+private key]]\n" \
                        "[[+proxy]]"
    Card::Cache.reset_all
    %w(public_key private_key proxy).each do |name|
      Card.create!(
        name: "#{Card[:recaptcha_settings].name}+#{name.tr('_', ' ')}",
        codename: "recaptcha_#{name}"
      )
    end
  end

  def admin_only args
    create_or_update args.reverse_merge(type_id: Card::PhraseID)
    %w(*read *update *delete).each do |perm|
      create_or_update name: "#{args[:name]}+*self+#{perm}",
                       content: "[[Administrator]]"
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
card-1.92.2 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.92.1 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.92 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.91 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.21.0 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.20.4 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.20.3 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.20.2 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.20.1 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.20.0 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.19.6 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.19.5 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.19.4 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.19.3 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.19.2 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.19.1 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb
card-1.19.0 db/migrate_core_cards/20150610180019_add_recaptcha_key_and_admin_info_cards.rb