From ed8d646d479bdcd84784909a024949bb8e4f093f Mon Sep 17 00:00:00 2001 From: viletyy Date: Thu, 3 Jun 2021 17:12:27 +0800 Subject: [PATCH] add: user update password --- app/controllers/accounts_controller.rb | 19 +++++++++++++++++++ config/routes.rb | 1 + 2 files changed, 20 insertions(+) diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 09dfdbdb7..0745726b9 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -196,6 +196,25 @@ class AccountsController < ApplicationController # session[:user_id] = @user.id end + def change_password + @user = User.find_by(login: params[:login]) + return render_error("未找到相关用户!") if @user.blank? + return render_error("旧密码不正确") unless @user.check_password?(params[:old_password]) + + sync_params = { + password: params[:password].to_s, + email: @user.mail + } + + interactor = Gitea::User::UpdateInteractor.call(@user.login, sync_params) + if interactor.success? + @user.update_attribute(:password, params[:password]) + render_ok + else + render_error(interactor.error) + end + end + # 忘记密码 def reset_password begin diff --git a/config/routes.rb b/config/routes.rb index 1160a4072..9796f774e 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -190,6 +190,7 @@ Rails.application.routes.draw do post :remote_update post :remote_login post :remote_password + post :change_password end end