From 36b68df273f503362ac396e464fc570bc7456d3b Mon Sep 17 00:00:00 2001 From: yystopf Date: Wed, 22 Dec 2021 14:39:47 +0800 Subject: [PATCH] fix: remote register validate --- app/controllers/accounts_controller.rb | 5 +++++ app/forms/register/remote_form.rb | 16 ++++++++++++++++ 2 files changed, 21 insertions(+) create mode 100644 app/forms/register/remote_form.rb diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index b8783c44e..7a355beaf 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -9,6 +9,7 @@ class AccountsController < ApplicationController # 其他平台同步注册的用户 def remote_register + # Register::RemoteForm.new(remote_register_params).validate! username = params[:username]&.gsub(/\s+/, "") tip_exception("无法使用以下关键词:#{username},请重新命名") if ReversedKeyword.check_exists?(username) email = params[:email]&.gsub(/\s+/, "") @@ -367,5 +368,9 @@ class AccountsController < ApplicationController def register_params params.permit(:login, :namespace, :password, :code) end + + def remote_register_params + params.permit(:username, :email, :password, :platform) + end end diff --git a/app/forms/register/remote_form.rb b/app/forms/register/remote_form.rb new file mode 100644 index 000000000..59a5fbc82 --- /dev/null +++ b/app/forms/register/remote_form.rb @@ -0,0 +1,16 @@ +module Register + class RemoteForm < Register::BaseForm + # login 登陆方式,支持邮箱、登陆、手机号等 + attr_accessor :username, :email, :password, :platform + + validates :username, :email, :password, presence: true + validate :check! + + def check! + Rails.logger.info "Register::RemoteForm params: username: #{username}; email: #{email}; password: #{password}; platform: #{platform}" + check_login(username) + check_mail(email) + check_password(password) + end + end +end