This commit is contained in:
qyzh 2020-12-01 14:48:19 +08:00
parent cd595646d8
commit 01f15da5ed
12 changed files with 77 additions and 6 deletions

View File

@ -27,6 +27,7 @@ class AccountsController < ApplicationController
@user.gitea_uid = gitea_user['id']
if @user.save!
UserExtension.create!(user_id: @user.id)
@user.create_wallet(balance: 0)
render_ok({user: {id: @user.id, token: @user.gitea_token}})
end
else

View File

@ -9,6 +9,7 @@ class ApplicationController < ActionController::Base
include GitHelper
include LoggerHelper
include LoginHelper
include UpdateHelper
protect_from_forgery prepend: true, unless: -> { request.format.json? }
@ -371,7 +372,13 @@ class ApplicationController < ActionController::Base
def user_trace_log
user = current_user
# print("*********************url:", request.url, "****routes", request.request_method)
Rails.logger.user_trace.info("{id: #{user.id}, login: #{user.login}, url: #{request.url}, params: #{params}, response_code: #{response.code}, time: #{Time.now}}")
Rails.logger.user_trace.info("{id: #{user.id}, login: #{user.login}, url: #{request.url}, method: #{request.method}, params: #{params}, response_code: #{response.code}, time: #{Time.now}}")
end
def user_trace_update_log(old_value_hash)
user = current_user
str = "{id: #{user.id}, login: #{user.login}, url: #{request.url}, method: #{request.method}, params: #{params.merge(old_value: old_value_hash)}, response_code: #{response.code}, time: #{Time.now}}"
Rails.logger.user_trace.info(str)
end
def try_to_autologin

View File

@ -1,9 +1,12 @@
class ForksController < ApplicationController
before_action :require_login, :find_project_with_id
before_action :authenticate_project!, :authenticate_user!
skip_after_action :user_trace_log, only: [:create]
def create
@new_project = Projects::ForkService.new(current_user, @project, params[:organization]).call
user = current_user
Rails.logger.user_trace.info("{id: #{user.id}, login: #{user.login}, url: #{request.url}, method: #{request.method}, params: #{params.merge(forkee: @new_project.id)}, response_code: #{response.code}, time: #{Time.now}}")
end
private

View File

@ -8,6 +8,8 @@ class IssuesController < ApplicationController
before_action :set_issue, only: [:edit, :update, :destroy, :show, :copy, :close_issue, :lock_issue]
before_action :get_branches, only: [:new, :edit]
skip_after_action :user_trace_log, only: [:update]
include ApplicationHelper
include TagChosenHelper
@ -161,7 +163,11 @@ class IssuesController < ApplicationController
end
end
user = current_user
# issue_json = issue_send_params(@issue).except(:issue_classify, :author_id, :project_id).to_json
issue_hash = old_value_to_hash(@issue, params)
if @issue.update_attributes(issue_params)
user_trace_update_log(issue_hash)
issue_files = params[:attachment_ids]
change_files = false
issue_file_ids = []

View File

@ -3,6 +3,7 @@ class JournalsController < ApplicationController
before_action :set_issue
before_action :check_issue_permission
before_action :set_journal, only: [:destroy, :edit, :update]
skip_after_action :user_trace_log, only: [:update]
def index
@page = params[:page] || 1
@ -67,7 +68,9 @@ class JournalsController < ApplicationController
def update
content = params[:content]
if content.present?
old_value = old_value_to_hash(@journal, params)
if @journal.update_attribute(:notes, content)
user_trace_update_log(old_value)
normal_status(0, "更新成功")
else
normal_status(-1, "更新失败")

View File

@ -5,6 +5,7 @@ class MembersController < ApplicationController
before_action :operate!, except: %i[index]
before_action :check_member_exists!, only: %i[create]
before_action :check_member_not_exists!, only: %i[remove change_role]
skip_after_action :user_trace_log, only: [:change_role]
def create
interactor = Projects::AddMemberInteractor.call(@project.owner, @project, @user)
@ -34,7 +35,9 @@ class MembersController < ApplicationController
end
def change_role
old_value = @project.members.where(user_id: params[:user_id])[0].roles.last.name
interactor = Projects::ChangeMemberRoleInteractor.call(@project.owner, @project, @user, params[:role])
user_trace_update_log(old_value)
render_response(interactor)
rescue Exception => e
uid_logger_error(e.message)

View File

@ -4,6 +4,9 @@ class PullRequestsController < ApplicationController
before_action :set_repository
before_action :find_pull_request, except: [:index, :new, :create, :check_can_merge,:get_branches,:create_merge_infos]
# before_action :get_relatived, only: [:edit]
#
skip_after_action :user_trace_log, only: [:update]
include TagChosenHelper
include ApplicationHelper
@ -127,8 +130,18 @@ class PullRequestsController < ApplicationController
end
end
old_issue_value = old_value_to_hash(@issue, @issue_params)
old_pr_value = old_value_to_hash(@pull_request, @local_params.compact)
old_value = {issue: old_issue_value, pull_request: old_pr_value}
puts("------------------------------\nissue = #{@issue.attributes}\n")
puts("issue_params = #{@issue_params}\n")
puts("pr = #{@pull_request.attributes}\n")
puts("local_params = #{@local_params}\n")
puts("old_issue = #{old_issue_value}\nold_pr = #{old_pr_value}\nold_value = #{old_value}\n------------------------------\n")
if @issue.update_attributes(@issue_params)
if @pull_request.update_attributes(@local_params.compact)
user_trace_update_log(old_value)
gitea_request = Gitea::PullRequest::UpdateService.new(@project.owner, @repository.try(:identifier), @requests_params, @pull_request.try(:gpid)).call
if gitea_request
if params[:issue_tag_ids].present?

View File

@ -1,5 +1,6 @@
class SponsorTiersController < ApplicationController
before_action :set_sponsor_tier, only: [:show, :edit, :update, :destroy]
before_action :check_sponsor, only: [:show]
# GET /sponsor_tiers
# GET /sponsor_tiers.json
@ -12,7 +13,7 @@ class SponsorTiersController < ApplicationController
# GET /sponsor_tiers/1
# GET /sponsor_tiers/1.json
def show
@check_sponsorship = Sponsorship.where("sponsor_id=? AND developer_id=?", current_user.id, @sponsor_tier.user)
end
# GET /sponsor_tiers/new
@ -29,12 +30,14 @@ class SponsorTiersController < ApplicationController
# POST /sponsor_tiers.json
def create
# print("------------\n", sponsor_tier_params, "\n------------\n")
@check_sponsorship = nil
@sponsor_tier = SponsorTier.new(sponsor_tier_params)
respond_to do |format|
if @sponsor_tier.save
format.html { redirect_to @sponsor_tier, notice: 'Sponsor tier was successfully created.' }
format.json { render :show, status: :created, location: @sponsor_tier }
# render json: {status: 1, message: '创建成功' }
else
format.html { render :new }
format.json { render json: @sponsor_tier.errors, status: :unprocessable_entity }
@ -45,14 +48,17 @@ class SponsorTiersController < ApplicationController
# PATCH/PUT /sponsor_tiers/1
# PATCH/PUT /sponsor_tiers/1.json
def update
@check_sponsorship = nil
respond_to do |format|
if User.current.id == @sponsor_tier.user_id && @sponsor_tier.update(sponsor_tier_params)
format.html { redirect_to @sponsor_tier, notice: 'Sponsor tier was successfully updated.' }
format.json { render :show, status: :ok, location: @sponsor_tier }
# render json: {status: 1, message: '修改成功' }
else
format.html { render :edit }
format.json { render json: @sponsor_tier.errors, status: :unprocessable_entity }
# format.json { render status: :unprocessable_entity }
# render json: {status: -1, message: '修改失败' }
end
end
end
@ -73,6 +79,10 @@ class SponsorTiersController < ApplicationController
private
# Use callbacks to share common setup or constraints between actions.
def check_sponsor
@check_sponsorship = Sponsorship.where("sponsor_id=? AND developer_id=?", current_user.id, @sponsor_tier.user)
end
def set_sponsor_tier
@sponsor_tier = SponsorTier.find(params[:id])
end

View File

@ -1,6 +1,9 @@
class SponsorshipsController < ApplicationController
before_action :set_sponsorship, only: [:show, :edit, :update, :destroy]
# before_action :require_login, except: [:index, :stopped, :sponsored, :sponsoring, :stopped_sponsored, :stopped_sponsoring]
before_action :require_login, only: [:show, :new, :create, :edit, :update, :destroy]
skip_after_action :user_trace_log, only: [:update]
# GET /sponsorships
# GET /sponsorships.json
def index
@ -17,6 +20,9 @@ class SponsorshipsController < ApplicationController
else
@sponsorships = Sponsorship.where("developer_id=? AND visible=1", params[:id])
end
sort = params[:sort_by] || "created_at"
sort_direction = params[:sort_direction] || "desc"
@sponsorships = @sponsorships.reorder("#{sort} #{sort_direction}")
@total = @sponsorships.length
@sponsorships = kaminari_paginate(@sponsorships)
end
@ -27,6 +33,9 @@ class SponsorshipsController < ApplicationController
else
@sponsorships = Sponsorship.where("sponsor_id=? AND visible=1", params[:id])
end
sort = params[:sort_by] || "created_at"
sort_direction = params[:sort_direction] || "desc"
@sponsorships = @sponsorships.reorder("#{sort} #{sort_direction}")
@total = @sponsorships.length
@sponsorships = kaminari_paginate(@sponsorships)
end
@ -37,6 +46,9 @@ class SponsorshipsController < ApplicationController
else
@stopped_sponsorships = StoppedSponsorship.where("developer_id=? AND visible=1", params[:id])
end
sort = params[:sort_by] || "created_at"
sort_direction = params[:sort_direction] || "desc"
@stopped_sponsorships = @stopped_sponsorships.reorder("#{sort} #{sort_direction}")
@total = @stopped_sponsorships.length
@stopped_sponsorships = kaminari_paginate(@stopped_sponsorships)
end
@ -47,6 +59,9 @@ class SponsorshipsController < ApplicationController
else
@stopped_sponsorships = StoppedSponsorship.where("sponsor_id=? AND visible=1", params[:id])
end
sort = params[:sort_by] || "created_at"
sort_direction = params[:sort_direction] || "desc"
@stopped_sponsorships = @stopped_sponsorships.reorder("#{sort} #{sort_direction}")
@total = @stopped_sponsorships.length
@stopped_sponsorships = kaminari_paginate(@stopped_sponsorships)
end
@ -116,7 +131,10 @@ class SponsorshipsController < ApplicationController
if @sponsorship.sponsor.id != current_user.id
return render json: {status: -1, message: '没有权限' }
end
old_value = old_value_to_hash(@sponsorship, params)
# params.delete :sponsorship
if @sponsorship.update(sponsorship_params)
user_trace_update_log(old_value)
render json: {status: 1, message: '修改成功' }
else
render json: {status: -1, message: '修改失败' }

View File

@ -3,6 +3,7 @@ class VersionReleasesController < ApplicationController
before_action :set_user_and_project
before_action :require_login, except: [:index]
before_action :find_version , only: [:edit, :update, :destroy]
skip_after_action :user_trace_log, only: [:update]
def index
version_releases = Gitea::Versions::ListService.new(@user.gitea_token, @user.try(:login), @repository.try(:identifier)).call
@ -78,14 +79,14 @@ class VersionReleasesController < ApplicationController
ActiveRecord::Base.transaction do
begin
version_params = releases_params
old_value = old_value_to_hash(@version, version_params)
if @version.update_attributes!(version_params)
create_attachments(params[:attachment_ids], @version) if params[:attachment_ids].present?
git_version_release = Gitea::Versions::UpdateService.new(@user.gitea_token, @user.try(:login), @repository.try(:identifier), version_params, @version.try(:version_gid)).call
unless git_version_release
raise Error, "更新失败"
end
user_trace_update_log(old_value)
normal_status(0, "更新成功")
else
normal_status(-1, "更新失败")

View File

@ -0,0 +1,6 @@
module UpdateHelper
def old_value_to_hash(old_value, params)
params = params.dup.stringify_keys
old_value.attributes.select { |key, value| params.key?(key) }
end
end

View File

@ -1,7 +1,7 @@
json.tier do
json.partial! "sponsor_tiers/sponsor_tier", sponsor_tier: @sponsor_tier
end
if @check_sponsorship.length.zero?
if @check_sponsorship.nil? || @check_sponsorship.length.zero?
json.is_sponsoring false
else
json.is_sponsoring true