diff --git a/app/models/user.rb b/app/models/user.rb index 136241494ab..6728bb94724 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -152,6 +152,10 @@ def administer_org_users? admin? || granted?("Admin Intake") || roles.include?("Admin Intake") || member_of_organization?(Bva.singleton) end + def can_edit_intake_issues? + BvaIntake.singleton.admins.include?(self) + end + def can_view_overtime_status? (attorney_in_vacols? || judge_in_vacols?) && FeatureToggle.enabled?(:overtime_revamp, user: self) end diff --git a/app/views/appeals/edit.html.erb b/app/views/appeals/edit.html.erb index 04a7e4fc1d3..9c0ac63aa8a 100644 --- a/app/views/appeals/edit.html.erb +++ b/app/views/appeals/edit.html.erb @@ -3,6 +3,7 @@ userDisplayName: current_user.display_name, userCanWithdrawIssues: current_user.can_withdraw_issues?, userCanSplitAppeal: current_user.can_split_appeal?(appeal), + userCanEditIntakeIssues: current_user.can_edit_intake_issues?, appeal: appeal, hearings: appeal.hearings, hearingDayDate: appeal.hearing_day_if_schedueled, diff --git a/app/views/higher_level_reviews/edit.html.erb b/app/views/higher_level_reviews/edit.html.erb index db20b227ae3..5ba9aa303dc 100644 --- a/app/views/higher_level_reviews/edit.html.erb +++ b/app/views/higher_level_reviews/edit.html.erb @@ -2,6 +2,7 @@ <%= react_component("IntakeEdit", props: { userDisplayName: current_user.display_name, userCanWithdrawIssues: current_user.can_withdraw_issues?, + userCanEditIntakeIssues: current_user.can_edit_intake_issues?, dropdownUrls: dropdown_urls, feedbackUrl: feedback_url, buildDate: build_date, diff --git a/app/views/supplemental_claims/edit.html.erb b/app/views/supplemental_claims/edit.html.erb index f8d915babfe..ba8e1e9daf4 100644 --- a/app/views/supplemental_claims/edit.html.erb +++ b/app/views/supplemental_claims/edit.html.erb @@ -2,6 +2,7 @@ <%= react_component("IntakeEdit", props: { userDisplayName: current_user.display_name, userCanWithdrawIssues: current_user.can_withdraw_issues?, + userCanEditIntakeIssues: current_user.can_edit_intake_issues?, dropdownUrls: dropdown_urls, feedbackUrl: feedback_url, buildDate: build_date, diff --git a/client/app/intake/components/IssueList.jsx b/client/app/intake/components/IssueList.jsx index 5aece57479f..2eabf6f8965 100644 --- a/client/app/intake/components/IssueList.jsx +++ b/client/app/intake/components/IssueList.jsx @@ -16,7 +16,7 @@ const nonEditableIssueStyling = css({ }); export default class IssuesList extends React.Component { - generateIssueActionOptions = (issue, userCanWithdrawIssues, isDtaError) => { + generateIssueActionOptions = (issue, userCanWithdrawIssues, userCanEditIntakeIssues, isDtaError) => { let options = []; if (issue.correctionType && issue.endProductCleared) { @@ -27,6 +27,12 @@ export default class IssuesList extends React.Component { { displayText: 'Remove issue', value: 'remove' } ); + if (userCanEditIntakeIssues) { + options.push( + { displayText: 'Edit issue', + value: 'edit' } + ); + } } else if (issue.endProductCleared) { options.push({ displayText: 'Correct issue', value: 'correct' }); @@ -41,6 +47,12 @@ export default class IssuesList extends React.Component { { displayText: 'Remove issue', value: 'remove' } ); + if (userCanEditIntakeIssues) { + options.push( + { displayText: 'Edit issue', + value: 'edit' } + ); + } } return options; @@ -54,6 +66,7 @@ export default class IssuesList extends React.Component { onClickIssueAction, withdrawReview, userCanWithdrawIssues, + userCanEditIntakeIssues, editPage } = this.props; @@ -70,7 +83,7 @@ export default class IssuesList extends React.Component { editableIssueProperties); const issueActionOptions = this.generateIssueActionOptions( - issue, userCanWithdrawIssues, intakeData.isDtaError + issue, userCanWithdrawIssues, userCanEditIntakeIssues, intakeData.isDtaError ); return