From 3290ed7f5e46b4102a4d238dc14f8e2ac74e8c0f Mon Sep 17 00:00:00 2001 From: Louis Ramos Date: Sun, 12 Nov 2023 19:12:26 +0100 Subject: [PATCH] feat(users): validate city can't change --- app/controllers/users_controller.rb | 2 +- app/models/user.rb | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index 5c36b624..5ee57bb2 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -72,7 +72,7 @@ def updated_params username: form_params[:username] }.compact - if current_user.batch_id.nil? && form_params[:city_id] # rubocop:disable Style/IfUnlessModifier + if form_params[:city_id] # rubocop:disable Style/IfUnlessModifier params[:batch] = Batch.find_or_create_by(number: nil, city_id: form_params[:city_id]) end diff --git a/app/models/user.rb b/app/models/user.rb index ae242173..3f5b4a35 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -27,6 +27,7 @@ class User < ApplicationRecord validates :aoc_id, uniqueness: { allow_nil: true } validates :username, presence: true + validate :city_cant_change validate :not_referring_self validate :referrer_exists @@ -98,6 +99,10 @@ def referrer_code private + def city_cant_change + errors.add(:city, "can't change") if batch_changed? && batch_id_was.present? + end + def not_referring_self errors.add(:referrer, "can't be you") if referrer == self end