From 411c10e8f3c42db704ba616c4674ee61a7a1d4fb Mon Sep 17 00:00:00 2001 From: "vilet.yy" Date: Thu, 6 May 2021 17:37:30 +0800 Subject: [PATCH] add: project update valid and user login valid --- app/controllers/accounts_controller.rb | 4 ++++ app/controllers/projects_controller.rb | 2 +- app/forms/projects/update_form.rb | 9 ++++++++- app/forms/users/login_form.rb | 8 ++++++++ config/locales/forms/projects_update_form.zh-CN.yml | 8 ++++++++ config/locales/forms/users_login_form.zh-CN.yml | 6 ++++++ 6 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 app/forms/users/login_form.rb create mode 100644 config/locales/forms/projects_update_form.zh-CN.yml create mode 100644 config/locales/forms/users_login_form.zh-CN.yml diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 8e82a814a..09dfdbdb7 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -169,6 +169,7 @@ class AccountsController < ApplicationController # 用户登录 def login + Users::LoginForm.new(account_params).validate! @user = User.try_to_login(params[:login], params[:password]) return normal_status(-2, "错误的账号或密码") if @user.blank? @@ -345,4 +346,7 @@ class AccountsController < ApplicationController params.require(:user).permit(:login, :email, :phone) end + def account_params + params.require(:account).permit(:login, :password) + end end diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index e6abf98a4..2cc8380a9 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -106,7 +106,7 @@ class ProjectsController < ApplicationController def update ActiveRecord::Base.transaction do - # Projects::CreateForm.new(project_params).validate! + Projects::UpdateForm.new(project_params).validate! private = params[:private] || false new_project_params = project_params.except(:private).merge(is_public: !private) diff --git a/app/forms/projects/update_form.rb b/app/forms/projects/update_form.rb index 4696beaa3..65810a820 100644 --- a/app/forms/projects/update_form.rb +++ b/app/forms/projects/update_form.rb @@ -1,4 +1,11 @@ class Projects::UpdateForm < BaseForm - attr_reader :name, :description, :repository_name, :project_category_id + attr_accessor :name, :description, :project_category_id, :project_language_id, :private + validates :name, :description, :project_category_id, :project_language_id, presence: true + validates :name, length: { maximum: 50 } + validates :description, length: { maximum: 200 } + validate do + check_project_category(project_category_id) + check_project_language(project_language_id) + end end diff --git a/app/forms/users/login_form.rb b/app/forms/users/login_form.rb new file mode 100644 index 000000000..2634a36cc --- /dev/null +++ b/app/forms/users/login_form.rb @@ -0,0 +1,8 @@ +class Users::LoginForm + include ActiveModel::Model + + attr_accessor :password, :login + + validates :login, presence: true + validates :password, presence: true, length: { minimum: 8, maximum: 16 }, format: { with: CustomRegexp::PASSWORD, message: "8~16位,支持字母数字和符号" } +end \ No newline at end of file diff --git a/config/locales/forms/projects_update_form.zh-CN.yml b/config/locales/forms/projects_update_form.zh-CN.yml new file mode 100644 index 000000000..74804f6af --- /dev/null +++ b/config/locales/forms/projects_update_form.zh-CN.yml @@ -0,0 +1,8 @@ +'zh-CN': + activemodel: + attributes: + projects/update_form: + name: 项目名称 + description: 项目简介 + project_category_id: 项目类别 + project_language_id: 项目语言 \ No newline at end of file diff --git a/config/locales/forms/users_login_form.zh-CN.yml b/config/locales/forms/users_login_form.zh-CN.yml new file mode 100644 index 000000000..8b94db42b --- /dev/null +++ b/config/locales/forms/users_login_form.zh-CN.yml @@ -0,0 +1,6 @@ +'zh-CN': + activemodel: + attributes: + users/login_form: + login: 用户名 + password: 密码 \ No newline at end of file