Skip to content
Snippets Groups Projects

Deploy

6 files
+ 44
9
Compare changes
  • Side-by-side
  • Inline

Files

@@ -18,6 +18,7 @@
package nl.tudelft.portal.security;
import java.util.List;
import java.util.Objects;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
@@ -130,8 +131,14 @@ public class AuthorisationService {
* @return true if the user manages this program
*/
public boolean canManageProgram(Long programId) {
return isAdmin() || programApi.getAllRelevantPrograms(getAuthPerson().getId())
.map(ProgramSummaryDTO::getId).any(id -> id.equals(programId)).block();
if (isAdmin()) {
return true;
}
ProgramDetailsDTO program = programApi.getProgramById(programId).block();
Long authPersonId = getAuthPerson().getId();
return Objects.equals(program.getDirector().getId(), authPersonId) ||
program.getCoordinators().stream()
.anyMatch(coordinator -> Objects.equals(coordinator.getId(), authPersonId));
}
/**
Loading