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