Sha256: 3ae3a92ea893616a4e7fceddf12fbb08ce983ebac757690195d99480d2d82160

Contents?: true

Size: 647 Bytes

Versions: 3

Compression:

Stored size: 647 Bytes

Contents

# frozen_string_literal: true

module Decidim
  # Store user's social identities
  class Identity < ApplicationRecord
    belongs_to :user, foreign_key: :decidim_user_id, class_name: Decidim::User
    belongs_to :organization, foreign_key: :decidim_organization_id, class_name: Decidim::Organization

    validates :user, presence: true
    validates :provider, presence: true
    validates :uid, presence: true, uniqueness: { scope: [:provider, :organization] }

    validate :same_organization

    private

    def same_organization
      return if organization == user&.organization
      errors.add(:organization, :invalid)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
decidim-core-0.1.0 app/models/decidim/identity.rb
decidim-core-0.0.8.1 app/models/decidim/identity.rb
decidim-core-0.0.7 app/models/decidim/identity.rb