Skip to content
This repository was archived by the owner on Apr 5, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -108,11 +108,16 @@ public String removeTrailingBackSlashes(String pathToFind) {
return pathToFind;
}

// TODO: also for edit.
public boolean userIsAllowedToSeeFileSystemEntity(FileSystemEntity fileSystemEntity, User authenticatedUser) {
// user created the item
if (fileSystemEntity.getCreatedByUserId() == authenticatedUser.getUserId())
return true;

// user created containing folder.
if(null != fileSystemEntity.getOwnerIds() && Arrays.stream(fileSystemEntity.getOwnerIds()).asDoubleStream().anyMatch(id -> id == authenticatedUser.getUserId()))
return true;

// user got the item shared.
for (long userId : fileSystemEntity.getVisibleForUserIds()) {
if (userId == authenticatedUser.getUserId())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,12 @@ public class FileSystemEntity {
private long typeId;
private double size;
private boolean isFile;
@Builder.Default
private long createdByUserId = -1; //uploadedBy
private long lastUpdated;
@Builder.Default
private long createdByUserId = -1;
@Builder.Default
private long[] ownerIds = new long[0];
@Builder.Default
private long[] visibleForGroupIds = new long[0];
@Builder.Default
private long[] editableFoGroupIds = new long[0];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -181,6 +181,11 @@ void userIsAllowedToSeeFileSystemEntity() {
// user created fileSystemItem
assertTrue(fileSystemBusinessService.userIsAllowedToSeeFileSystemEntity(fileSystemEntity, user));

// user created containing folder
fileSystemEntity.setCreatedByUserId(1203891230);
fileSystemEntity.setOwnerIds(new long[]{userId});
assertTrue(fileSystemBusinessService.userIsAllowedToSeeFileSystemEntity(fileSystemEntity, user));

// user got it shared.
fileSystemEntity = FileSystemEntity.builder().visibleForUserIds(new long[]{userId}).build();
assertTrue(fileSystemBusinessService.userIsAllowedToSeeFileSystemEntity(fileSystemEntity, user));
Expand Down