Sha256: 712c793a402dc50845a19c1fbadb64b4370854d3de0b32aecf53dee4e4365874

Contents?: true

Size: 1013 Bytes

Versions: 44

Compression:

Stored size: 1013 Bytes

Contents

# frozen_string_literal: true

module Decidim
  # This concern contains the logic related to authorship
  module Authorable
    extend ActiveSupport::Concern

    included do
      belongs_to :author, foreign_key: "decidim_author_id", class_name: "Decidim::User", optional: true
      belongs_to :user_group, foreign_key: "decidim_user_group_id", class_name: "Decidim::UserGroup", optional: true

      validate :verified_user_group, :user_group_membership
      validate :author_belongs_to_organization

      private

      def verified_user_group
        return unless user_group
        errors.add :user_group, :invalid unless user_group.verified?
      end

      def user_group_membership
        return unless user_group
        errors.add :user_group, :invalid unless user_group.users.include? author
      end

      def author_belongs_to_organization
        return if !author || !organization
        errors.add(:author, :invalid) unless author.organization == organization
      end
    end
  end
end

Version data entries

44 entries across 44 versions & 2 rubygems

Version Path
decidim-core-0.9.3 lib/decidim/authorable.rb
decidim-core-0.9.2 lib/decidim/authorable.rb
decidim-core-0.9.1 lib/decidim/authorable.rb
decidim-core-0.9.0 lib/decidim/authorable.rb
decidim-core-0.8.4 lib/decidim/authorable.rb
decidim-core-0.8.3 lib/decidim/authorable.rb
decidim-core-0.8.2 lib/decidim/authorable.rb
decidim-core-0.8.1 lib/decidim/authorable.rb
decidim-core-0.8.0 lib/decidim/authorable.rb
decidim-core-0.7.4 lib/decidim/authorable.rb
decidim-core-0.7.3 lib/decidim/authorable.rb
decidim-core-0.7.2 lib/decidim/authorable.rb
decidim-core-0.7.1 lib/decidim/authorable.rb
decidim-core-0.7.0 lib/decidim/authorable.rb
decidim-core-0.6.8 lib/decidim/authorable.rb
decidim-0.6.8 decidim-core/lib/decidim/authorable.rb
decidim-core-0.6.7 lib/decidim/authorable.rb
decidim-0.6.7 decidim-core/lib/decidim/authorable.rb
decidim-core-0.6.6 lib/decidim/authorable.rb
decidim-0.6.6 decidim-core/lib/decidim/authorable.rb