* Enable Rails cops * Fix Rails/DynamicFindBy * Fix Rails/HttpStatus * Fix Rails/Blank * Fix Rails/RequestReferer * Fix Rails/ActiveRecordAliases * Fix Rails/FindBy * Fix Rails/Presence * Fix Rails/Delegate * Fix Rails/Validation * Fix Rails/PluralizationGrammar * Fix Rails/Present * Fix Rails/Output * Fix Rails/Blank * Fix Rails/FilePath * Fix Rails/InverseOf * Fix Rails/LexicallyScopedActionFilter * Add Rails/OutputSafety to TODO * Add Rails/HasManyOrHasOneDependent to TODO * Add Rails/SkipsModelValidations to TODO
14 lines
450 B
Ruby
14 lines
450 B
Ruby
class Identity < ApplicationRecord
|
|
belongs_to :user
|
|
validates :uid, :provider, presence: true
|
|
validates :uid, uniqueness: { scope: :provider }
|
|
validates :provider, uniqueness: { scope: :uid }
|
|
validates :user_id, uniqueness: { scope: :provider }
|
|
validates :provider, inclusion: { in: %w[github twitter] }
|
|
|
|
serialize :auth_data_dump
|
|
|
|
def self.find_for_oauth(auth)
|
|
find_or_create_by(uid: auth.uid, provider: auth.provider)
|
|
end
|
|
end
|