# frozen_string_literal: true class MarseilleAuthorizationHandler < Decidim::AuthorizationHandler attribute :document_number, String attribute :postal_code, String attribute :birthday, Decidim::Attributes::LocalizedDate validates :document_number, presence: true validate :valid_document_number def unique_id document_number end def metadata super.merge(document_number: document_number, postal_code: postal_code) end private def valid_document_number errors.add(:document_number, :invalid) unless document_number.to_s.end_with?("X") end class MarseilleActionAuthorizer # Overrides the parent class method, but it still uses it to keep the base behavior def authorize status_code, data = *super [status_code, data] end end end