Skip to content

Commit 5ac1a70

Browse files
committed
check membership in VideosPolicy.canView correctly
1 parent 79ef139 commit 5ac1a70

File tree

1 file changed

+17
-6
lines changed

1 file changed

+17
-6
lines changed

packages/web-backend/src/Videos/VideosPolicy.ts

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Policy, Video } from "@cap/web-domain";
2-
import { Effect, Option } from "effect";
2+
import { Array, Effect, Option } from "effect";
33

44
import { OrganisationsRepo } from "../Organisations/OrganisationsRepo";
55
import { SpacesRepo } from "../Spaces/SpacesRepo";
@@ -29,11 +29,18 @@ export class VideosPolicy extends Effect.Service<VideosPolicy>()(
2929
if (!video.public) {
3030
const [videoOrgShareMembership, videoSpaceShareMembership] =
3131
yield* Effect.all([
32-
orgsRepo.membershipForVideo(userId, video.id),
33-
spacesRepo.membershipForVideo(userId, video.id),
32+
orgsRepo
33+
.membershipForVideo(userId, video.id)
34+
.pipe(Effect.map(Array.get(0))),
35+
spacesRepo
36+
.membershipForVideo(userId, video.id)
37+
.pipe(Effect.map(Array.get(0))),
3438
]);
3539

36-
if (!videoSpaceShareMembership || !videoOrgShareMembership)
40+
if (
41+
Option.isNone(videoSpaceShareMembership) &&
42+
Option.isNone(videoOrgShareMembership)
43+
)
3744
return false;
3845
}
3946
} else {
@@ -60,6 +67,10 @@ export class VideosPolicy extends Effect.Service<VideosPolicy>()(
6067

6168
return { canView, isOwner };
6269
}),
63-
dependencies: [VideosRepo.Default, OrganisationsRepo.Default, SpacesRepo.Default],
70+
dependencies: [
71+
VideosRepo.Default,
72+
OrganisationsRepo.Default,
73+
SpacesRepo.Default,
74+
],
6475
},
65-
) { }
76+
) {}

0 commit comments

Comments
 (0)