diff --git a/config/initializers/devise.rb b/config/initializers/devise.rb index cac79ae..8f407f5 100644 --- a/config/initializers/devise.rb +++ b/config/initializers/devise.rb @@ -12,7 +12,7 @@ Devise.setup do |config| # Configure the e-mail address which will be shown in Devise::Mailer, # note that it will be overwritten if you use your own mailer class # with default "from" parameter. - config.mailer_sender = 'please-change-me-at-config-initializers-devise@example.com' + config.mailer_sender = 'webmaster@screenshots.debian.net' # Configure the class responsible to send e-mails. # config.mailer = 'Devise::Mailer' @@ -35,6 +35,7 @@ Devise.setup do |config| # You can also supply a hash where the value is a boolean determining whether # or not authentication should be aborted when the value is not present. # config.authentication_keys = [:email] + config.authentication_keys = [:email, :provider] # Configure parameters from the request object used for authentication. Each entry # given should be a request method and it will automatically be passed to the diff --git a/db/migrate/20170406155141_change_users_unique_index_to_uid_provider.rb b/db/migrate/20170406155141_change_users_unique_index_to_uid_provider.rb new file mode 100644 index 0000000..5e21004 --- /dev/null +++ b/db/migrate/20170406155141_change_users_unique_index_to_uid_provider.rb @@ -0,0 +1,10 @@ +# A user's email address may not be unique if they use different +# single-sign-on providers with the same email address. +# But the combination of the email address and the (SSO) +# provider should be unique. +class ChangeUsersUniqueIndexToUidProvider < ActiveRecord::Migration[5.0] + def change + remove_index 'users', 'email' + add_index 'users', ["email", "provider"], :unique => true + end +end diff --git a/db/schema.rb b/db/schema.rb index f7310f2..a309de2 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170405204143) do +ActiveRecord::Schema.define(version: 20170406155141) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -78,7 +78,7 @@ ActiveRecord::Schema.define(version: 20170405204143) do t.datetime "locked_at" t.string "provider" t.string "uid" - t.index ["email"], name: "index_users_on_email", unique: true, using: :btree + t.index ["email", "provider"], name: "index_users_on_email_and_provider", unique: true, using: :btree end add_foreign_key "screenshots", "packages", name: "screenshots_package_id_fkey"