diff --git a/app/controllers/users/registrations_controller.rb b/app/controllers/users/registrations_controller.rb index 11ef2a3b15ac92332aac9b31f9686907176032a5..8df0d601806a323ed5d862d8e2d6321379e0bcb1 100644 --- a/app/controllers/users/registrations_controller.rb +++ b/app/controllers/users/registrations_controller.rb @@ -52,7 +52,6 @@ class Users::RegistrationsController < Devise::RegistrationsController end def sign_up_params - devise_parameter_sanitized = devise_parameter_sanitizer.sanitize(:sign_up) - current_mode == 'extranet' ? devise_parameter_sanitized.merge(extranet_to_validate: current_extranet) : devise_parameter_sanitized + devise_parameter_sanitized = devise_parameter_sanitizer.sanitize(:sign_up).merge(registration_context: current_context) end end diff --git a/app/models/education/program.rb b/app/models/education/program.rb index 85dd18bbeeb6b7567e937c07ddf39a527c8aed68..f771c240205042fd33893a9b3b8e984d36a05a9d 100644 --- a/app/models/education/program.rb +++ b/app/models/education/program.rb @@ -131,7 +131,7 @@ class Education::Program < ApplicationRecord } def to_short_s - short_name.empty? ? to_s : short_name + short_name.blank? ? to_s : short_name end def to_s diff --git a/app/models/user.rb b/app/models/user.rb index c6a3e63dbdffcda61a739fb0c34c7e656ac6273d..57824a2c781069c0c97f01e1084b541dde01a3cc 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -56,7 +56,7 @@ # class User < ApplicationRecord include WithAvatar - include WithExtranet + include WithRegistrationContext include WithUniversity include WithAuthentication include WithOmniauth diff --git a/app/models/user/with_extranet.rb b/app/models/user/with_extranet.rb deleted file mode 100644 index 0e647a92d447bbe646255188f49ff0b73dee2610..0000000000000000000000000000000000000000 --- a/app/models/user/with_extranet.rb +++ /dev/null @@ -1,22 +0,0 @@ -module User::WithExtranet - extend ActiveSupport::Concern - - included do - attr_accessor :extranet_to_validate - - validate :extranet_access, unless: -> { extranet_to_validate.blank? } - - private - - def extranet_access - # do extranet_to_validate alumni include current email? - # TODO - # if extranet_to_validate.registration_contact.present? - # errors.add :email, I18n.t('extranet.errors.email_not_allowed_with_contact', contact: extranet_to_validate.registration_contact) - # else - # errors.add :email, I18n.t('extranet.errors.email_not_allowed') - # end - end - - end -end diff --git a/app/models/user/with_registration_context.rb b/app/models/user/with_registration_context.rb new file mode 100644 index 0000000000000000000000000000000000000000..61a8902bdf4163b75019286e60aae0c5cc6d2931 --- /dev/null +++ b/app/models/user/with_registration_context.rb @@ -0,0 +1,22 @@ +module User::WithRegistrationContext + extend ActiveSupport::Concern + + included do + attr_accessor :registration_context + + validate :extranet_access, if: -> { registration_context.is_a?(Communication::Extranet) } + + private + + def extranet_access + unless registration_context.alumni.where(email: email).any? + if registration_context.registration_contact.present? + errors.add :email, I18n.t('extranet.errors.email_not_allowed_with_contact', contact: registration_context.registration_contact) + else + errors.add :email, I18n.t('extranet.errors.email_not_allowed') + end + end + end + + end +end diff --git a/db/schema.rb b/db/schema.rb index e38bdcddeda981d4b87c74abee2504c8c7f6e833..5876144fc09cc72e8bd75c8c7df197b98fa4bcbc 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -44,7 +44,7 @@ ActiveRecord::Schema.define(version: 2022_10_17_142108) do t.text "metadata" t.string "service_name", null: false t.bigint "byte_size", null: false - t.string "checksum" + t.string "checksum", null: false t.datetime "created_at", null: false t.uuid "university_id" t.index ["key"], name: "index_active_storage_blobs_on_key", unique: true