Skip to content

Commit

Permalink
group membership dlpsDeleted flag check
Browse files Browse the repository at this point in the history
  • Loading branch information
gkostin1966 committed Jan 24, 2024
1 parent 125ba14 commit 0d4d157
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 10 deletions.
2 changes: 1 addition & 1 deletion lauth/app/repositories/grant_repo.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ def for(username:, uri:, client_ip: nil)
.join(locations.name.dataset, coll: :uniqueIdentifier, dlpsDeleted: "f")
.left_join(users.name.dataset, userid: grants[:userid], dlpsDeleted: "f")
.left_join(institution_memberships.name.dataset, inst: grants[:inst])
.left_join(group_memberships.name.dataset, user_grp: grants[:user_grp])
.left_join(group_memberships.name.dataset, user_grp: grants[:user_grp], dlpsDeleted: "f")
.left_join(Sequel.as(smallest_network, :smallest), inst: grants[:inst])
.where(Sequel.ilike(uri, locations[:dlpsPath]))
.where(
Expand Down
38 changes: 29 additions & 9 deletions lauth/spec/repositories/soft_delete_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -141,9 +141,6 @@
let(:active_group) { {data: {id: 5, type: "groups", attributes: {name: "Active Group"}}} }
let(:deleted_group) { {data: {id: 7, type: "groups", attributes: {name: "Deleted Group", dlpsDeleted: "t"}}} }

let(:active_group_membership) { {data: {id: "", type: "group_memberships", attributes: {user_id: active_user[:data][:id], group_id: active_group[:data][:id]}}} }
let(:deleted_group_membership) { {data: {id: "", type: "group_memberships", attributes: {user_id: active_user[:data][:id], group_id: active_group[:data][:id], dlpsDeleted: "t"}}} }

let(:active_collection) { {data: {id: "active_collection", type: "collections", attributes: {name: "Active Collection"}}} }
let(:active_location) { {data: {id: "", type: "locations", attributes: {host: "some.host", path: "/active/location%", collection: active_collection[:data][:id]}}} }
let(:deleted_location) { {data: {id: "", type: "locations", attributes: {host: "some.host", path: "/deleted/location%", collection: active_collection[:data][:id], dlpsDeleted: "t"}}} }
Expand All @@ -161,10 +158,6 @@
group_repo.create(active_group)
group_repo.create(deleted_group)

group_membership_repo = Lauth::Repositories::GroupMembershipRepo.new
group_membership_repo.create(active_group_membership)
# group_membership_repo.create(deleted_group_membership)

collection_repo = Lauth::Repositories::CollectionRepo.new
collection_repo.create(active_collection)
collection_repo.create(deleted_collection)
Expand All @@ -176,7 +169,34 @@
location_repo.create(location_deleted)
end

describe "soft deleted group" do
describe "soft deleted group membership" do
let(:active_group_membership) { {data: {id: "", type: "group_memberships", attributes: {user_id: active_user[:data][:id], group_id: active_group[:data][:id]}}} }
let(:deleted_group_membership) { {data: {id: "", type: "group_memberships", attributes: {user_id: active_user[:data][:id], group_id: active_group[:data][:id], dlpsDeleted: "t"}}} }
let(:grant_active_group) { {data: {id: 4, type: "grants", attributes: {user_grp: active_group[:data][:id], coll: active_collection[:data][:id]}}} }

it "finds grant for active group membership" do
group_membership_repo = Lauth::Repositories::GroupMembershipRepo.new
group_membership_repo.create(active_group_membership)
grant_repo.create(grant_active_group)

grants = grant_repo.for(username: active_user[:data][:id], uri: active_location[:data][:attributes][:path])

expect(grants.count).to eq 1
expect(grants.first.user_grp).to eq active_group[:data][:id]
end

it "does NOT find grant for deleted group membership" do
group_membership_repo = Lauth::Repositories::GroupMembershipRepo.new
group_membership_repo.create(deleted_group_membership)
grant_repo.create(grant_active_group)

grants = grant_repo.for(username: active_user[:data][:id], uri: active_location[:data][:attributes][:path])

expect(grants.count).to eq 0
end
end

xdescribe "soft deleted group" do
let(:grant_active_group) { {data: {id: 4, type: "grants", attributes: {user_grp: active_group[:data][:id], coll: active_collection[:data][:id]}}} }
let(:grant_deleted_group) { {data: {id: 1, type: "grants", attributes: {user_grp: deleted_group[:data][:id], coll: active_collection[:data][:id]}}} }

Expand All @@ -189,7 +209,7 @@
expect(grants.first.user_grp).to eq active_group[:data][:id]
end

it "does NOT find grant for deleted group" do
xit "does NOT find grant for deleted group" do
grant_repo.create(grant_deleted_group)

grants = grant_repo.for(username: active_user[:data][:id], uri: active_location[:data][:attributes][:path])
Expand Down

0 comments on commit 0d4d157

Please sign in to comment.