From 3b6cbacbd15ae87dce16ac22ec005f27153b5f18 Mon Sep 17 00:00:00 2001 From: Jasder <2053003901@@qq.com> Date: Wed, 22 Apr 2020 15:59:40 +0800 Subject: [PATCH] =?UTF-8?q?ADD=20=E5=85=B6=E4=BB=96=E5=B9=B3=E5=8F=B0(?= =?UTF-8?q?=E5=A6=82trusitie=E5=B9=B3=E5=8F=B0)=E7=99=BB=E5=BD=95=E5=90=8E?= =?UTF-8?q?=E5=B0=86=E7=94=A8=E6=88=B7=E5=AF=86=E7=A0=81=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E5=88=B0gitea=E5=B9=B3=E5=8F=B0=E5=AF=B9=E5=BA=94=E7=9A=84?= =?UTF-8?q?=E7=94=A8=E6=88=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users_controller.rb | 15 ++++++++++++++- config/routes.rb | 1 + 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index cc9d2a63a..995885e8c 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -1,6 +1,6 @@ class UsersController < ApplicationController - before_action :load_user, only: [:show, :homepage_info, :sync_token] + before_action :load_user, only: [:show, :homepage_info, :sync_token, :sync_gitea_pwd] before_action :check_user_exist, only: [:show, :homepage_info] before_action :require_login, only: %i[me list projects] skip_before_action :check_sign, only: [:attachment_show] @@ -118,6 +118,19 @@ class UsersController < ApplicationController @projects = paginate(scope) end + # TODO 其他平台登录时同步修改gitea平台对应用户的密码 + # 该方法主要用于:别的平台初次部署对接forge平台,同步用户后,gitea平台对应的用户密码与forge平台用户密码不一致是问题 + def sync_gitea_pwd + return render_error("未找到相关的用户") if @user.blank? + + sync_params = { + email: @user.mail, + password: params[:password].to_s + } + interactor = Gitea::User::UpdateInteractor.call(@user.login, sync_params) + interactor.success? ? render_ok : render_error(interactor.error) + end + private def load_user @user = User.find_by_login(params[:id]) || User.find_by(id: params[:id]) diff --git a/config/routes.rb b/config/routes.rb index 88b285b1a..1950b768b 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -148,6 +148,7 @@ Rails.application.routes.draw do get :list post :sync_token get :projects + post :sync_gitea_pwd end scope module: :users do