Skip to content

Commit

Permalink
Merge pull request #16497 from opf/implementation/57367-disable-edit-…
Browse files Browse the repository at this point in the history
…for-onedrivesharepoint-with-ampf-enabled
  • Loading branch information
akabiru authored Aug 26, 2024
2 parents c14142f + 7c52f9e commit 6d96d8a
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -40,24 +40,26 @@ def project_folder_type
def more_menu_items
return [] unless can_view_more_menu_items?

@more_menu_items ||= [more_menu_edit_project_storage, more_menu_detach_project]
@more_menu_items ||= [more_menu_edit_project_storage, more_menu_detach_project].compact
end

private

def more_menu_edit_project_storage
{
scheme: :default,
icon: :pencil,
label: I18n.t("project_storages.edit_project_folder.label"),
href: edit_admin_settings_storage_project_storage_path(
storage_id: project_storage.storage.id,
id: project_storage.id
),
data: {
controller: "async-dialog"
if can_edit?
{
scheme: :default,
icon: :pencil,
label: I18n.t("project_storages.edit_project_folder.label"),
href: edit_admin_settings_storage_project_storage_path(
storage_id: project_storage.storage.id,
id: project_storage.id
),
data: {
controller: "async-dialog"
}
}
}
end
end

def more_menu_detach_project
Expand All @@ -78,6 +80,14 @@ def can_view_more_menu_items?
User.current.admin && project.active?
end

def can_edit?
!one_drive_storage_ampf_enabled?
end

def one_drive_storage_ampf_enabled?
project_storage.storage.provider_type_one_drive? && project_storage.storage.automatic_management_enabled?
end

def project_storage
table.project_storages[project.id]
end
Expand Down
7 changes: 7 additions & 0 deletions modules/storages/spec/factories/storage_factory.rb
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,13 @@
end
end

factory :one_drive_storage_configured, parent: :one_drive_storage do
after(:create) do |storage, _evaluator|
create(:oauth_client, integration: storage)
create(:oauth_application, integration: storage)
end
end

factory :sharepoint_dev_drive_storage,
parent: :one_drive_storage do
automatically_managed { false }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,20 @@
end
end
end

context "with OneDrive/Sharepoint with AMPF enabled" do
let(:storage) { create(:one_drive_storage_configured, :as_automatically_managed) }
let(:project_storage) { create(:project_storage, storage:) }

it "does not show the edit option" do
project_storage

visit admin_settings_storage_project_storages_path(storage)
project_storages_index_page.activate_menu_of(project_storage.project) do
expect(page).to have_no_text("Edit project folder")
end
end
end
end

describe "Removal of a project from a storage" do
Expand Down

0 comments on commit 6d96d8a

Please sign in to comment.