• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

pulibrary / tigerdata-app / 8b899040-8a9d-4db2-8a70-9d1a069a6bbd

18 Nov 2025 06:26PM UTC coverage: 91.416% (+0.1%) from 91.321%
8b899040-8a9d-4db2-8a70-9d1a069a6bbd

push

circleci

web-flow
Indicate emdash for empty project purpose field for projects (#2208)

ref #2181 

Co-authored-by: Hector Correa <hectorcorrea@users.noreply.github.com>
Co-authored-by: Precilla Prempeh <precillap@users.noreply.github.com>

2886 of 3157 relevant lines covered (91.42%)

1103.51 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

93.33
/app/controllers/edit_requests_controller.rb
1
# frozen_string_literal: true
2
class EditRequestsController < ApplicationController
4✔
3
  layout "edit_request"
4✔
4
  before_action :set_breadcrumbs
4✔
5

6
  before_action :set_request_model, only: %i[edit update]
4✔
7
  before_action :check_access
4✔
8

9
  # GET /edit_requests/1/edit
10
  def edit
4✔
11
    add_breadcrumb(@request_model.project_title, request_path(@request_model))
2✔
12
    add_breadcrumb("Edit Submitted Request")
2✔
13
  end
14

15
  # PATCH/PUT /edit_requests/1 or /edit_requests/1.json
16
  def update
4✔
17
    respond_to do |format|
4✔
18
      if @request_model.update(request_params) && @request_model.valid_to_submit?
4✔
19
        format.html { redirect_to request_url(@request_model), notice: I18n.t(:successful_update) }
4✔
20
        format.json { render :show, status: :ok, location: @request_model }
2✔
21
      else
22
        format.html { render :edit, status: :unprocessable_entity }
4✔
23
        format.json { render json: @request_model.errors, status: :unprocessable_entity }
2✔
24
      end
25
    end
26
  end
27

28
  private
4✔
29

30
    # Use callbacks to share common setup or constraints between actions.
31
    def set_request_model
4✔
32
      @princeton_departments = Affiliation.all
10✔
33
      @request_model = Request.find(params[:id])
10✔
34
    end
35

36
    # Only allow a list of trusted parameters through.
37
    def request_params
4✔
38
      request_params = params.fetch(:request, {}).permit(:request_title, :project_title, :state, :data_sponsor, :data_manager,
4✔
39
                                        :description, :project_purpose, :parent_folder, :project_folder, :project_id, :quota,
40
                                        :requested_by, :storage_size, :storage_unit, :number_of_files, :hpc, :smb, :globus,
41
                                        user_roles: [], departments: [])
42

43
      if request_params[:departments].present?
4✔
44
        request_params[:departments] = request_params[:departments].compact_blank.map { |dep_str| JSON.parse(dep_str) }
6✔
45
      end
46
      if request_params[:user_roles].present?
4✔
47
        request_params[:user_roles] = request_params[:user_roles].compact_blank.map { |role_str| JSON.parse(role_str) }
×
48
      end
49
      move_approved_values(request_params)
4✔
50
    end
51

52
    def move_approved_values(request_params)
4✔
53
      if request_params[:quota].present?
4✔
54
        request_params[:approved_quota] = request_params.delete(:quota)
2✔
55
      end
56
      if request_params[:storage_size].present?
4✔
57
        request_params[:approved_storage_size] = request_params.delete(:storage_size)
×
58
      end
59
      if request_params[:storage_unit].present?
4✔
60
        request_params[:approved_storage_unit] = request_params.delete(:storage_unit)
×
61
      end
62
      request_params
4✔
63
    end
64

65
    def set_breadcrumbs
4✔
66
      add_breadcrumb("Dashboard", dashboard_path)
10✔
67
      add_breadcrumb("Requests", requests_path)
10✔
68
    end
69

70
    def check_access
4✔
71
      return if user_eligible_to_modify_request?
10✔
72

73
      # request can not be modified by this user, redirect to the request
74
      flash[:notice] = I18n.t(:no_modify_submitted)
4✔
75
      redirect_to request_path(@request_model)
4✔
76
    end
77

78
    def user_eligible_to_modify_request?
4✔
79
      # elevated privs for the current user
80
      if current_user.sysadmin || (current_user.developer && !Rails.env.production?)
10✔
81
        true
6✔
82
      else
83
        false
4✔
84
      end
85
    end
86
end
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc