From 04b1dc46551624d383db2df676be83affd07b750 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 19 Sep 2025 17:03:55 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=EF=BC=9A=E9=87=8D=E7=BD=AE?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/api/v1/users_controller.rb | 19 ++++++++++++++++++- config/routes/api.rb | 1 + 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/app/controllers/api/v1/users_controller.rb b/app/controllers/api/v1/users_controller.rb index a997fe311..7d1959091 100644 --- a/app/controllers/api/v1/users_controller.rb +++ b/app/controllers/api/v1/users_controller.rb @@ -2,7 +2,7 @@ class Api::V1::UsersController < Api::V1::BaseController include AesCryptHelper before_action :load_observe_user, except: [:check_user_id, :check_user_login] - before_action :check_auth_for_observe_user, except: [:check_user_id, :check_user_login] + before_action :check_auth_for_observe_user, except: [:check_user_id, :check_user_login, :reset_password] def check_user_id return tip_exception(-1, "用户ID不存在") unless params[:user_id].present? && User.exists?(id: params[:user_id]) @@ -117,6 +117,23 @@ class Api::V1::UsersController < Api::V1::BaseController end end + def reset_password + return render_error("该用户没有重置密码的权限") if @observe_user.organizations.joins(teams: :team_users).where(teams: {authorize: 'owner'}, team_users: {user_id: current_user.id}).blank? + sync_params={ + password: '12345678', + email: @observe_user.mail, + login_name: @observe_user.login, + source_id: 0 + } + interactor = Gitea::User::UpdateInteractor.call(@observe_user.login, sync_params) + if interactor.success? + @observe_user.update_attribute(:password, '12345678') + render_ok + else + render_error(interactor.error) + end + end + def check_user_can_delete org_ids = TeamUser.where(user_id: @observe_user.id).pluck(:organization_id) | OrganizationUser.where(user_id: @observe_user.id).pluck(:organization_id) diff --git a/config/routes/api.rb b/config/routes/api.rb index 7727bc568..7bf4a6b66 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -81,6 +81,7 @@ defaults format: :json do post :check_user_can_delete patch :update_email patch :update_phone + patch :reset_password end end scope module: :users do