| @@ -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 | |||
| @@ -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 | |||
| @@ -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 | |||
| @@ -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 = [] | |||
| @@ -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, "更新失败") | |||
| @@ -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) | |||
| @@ -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? | |||
| @@ -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 | |||
| @@ -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: '修改失败' } | |||
| @@ -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, "更新失败") | |||
| @@ -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 | |||
| @@ -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 | |||