class WeiboOauth2 < ActiveRecord::Migration[4.2]
  def up

    # return if it's a new setup
    return if !Setting.find_by(name: 'system_init_done')

    Setting.create_if_not_exists(
      title:       'Authentication via %s',
      name:        'auth_weibo',
      area:        'Security::ThirdPartyAuthentication',
      description: 'Enables user authentication via %s. Register your app first at [%s](%s).',
      options:     {
        form: [
          {
            display: '',
            null:    true,
            name:    'auth_weibo',
            tag:     'boolean',
            options: {
              true  => 'yes',
              false => 'no',
            },
          },
        ],
      },
      preferences: {
        controller:       'SettingsAreaSwitch',
        sub:              ['auth_weibo_credentials'],
        title_i18n:       ['Weibo'],
        description_i18n: ['Weibo', 'Sina Weibo Open Portal', 'http://open.weibo.com'],
        permission:       ['admin.security'],
      },
      state:       false,
      frontend:    true
    )
    Setting.create_if_not_exists(
      title:       'Weibo App Credentials',
      name:        'auth_weibo_credentials',
      area:        'Security::ThirdPartyAuthentication::Weibo',
      description: 'Enables user authentication via Sina Weibo.',
      options:     {
        form: [
          {
            display: 'App ID',
            null:    true,
            name:    'app_id',
            tag:     'input',
          },
          {
            display: 'App Secret',
            null:    true,
            name:    'app_secret',
            tag:     'input',
          },
        ],
      },
      state:       {},
      preferences: {
        permission: ['admin.security'],
      },
      frontend:    false
    )
  end
end
