From b72e679a6241abb1fc9a88260c8fe8d7091b6e49 Mon Sep 17 00:00:00 2001 From: Andreas Nedbal Date: Sat, 21 Jan 2023 06:16:14 +0100 Subject: [PATCH] Split format and length validation for User `screen_name` --- app/models/user.rb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/models/user.rb b/app/models/user.rb index a56bb514..82e319ae 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -53,7 +53,7 @@ class User < ApplicationRecord # rubocop:disable Metrics/ClassLength foreign_key: "banned_by_id", dependent: :nullify - SCREEN_NAME_REGEX = /\A[a-zA-Z0-9_]{1,16}\z/ + SCREEN_NAME_REGEX = /[a-zA-Z0-9_]/ WEBSITE_REGEX = /https?:\/\/([A-Za-z.-]+)\/?(?:.*)/i before_validation do @@ -61,7 +61,12 @@ class User < ApplicationRecord # rubocop:disable Metrics/ClassLength end validates :email, fake_email: true, typoed_email: true - validates :screen_name, presence: true, format: { with: SCREEN_NAME_REGEX }, uniqueness: { case_sensitive: false }, screen_name: true + validates :screen_name, + presence: true, + format: { with: SCREEN_NAME_REGEX }, + length: { minimum: 1, maximum: 16 }, + uniqueness: { case_sensitive: false }, + screen_name: true mount_uploader :profile_picture, ProfilePictureUploader, mount_on: :profile_picture_file_name process_in_background :profile_picture