fix(comp): rm permission and empty poule list on rm
This commit is contained in:
parent
42711cde5d
commit
15c88c4943
@ -256,16 +256,16 @@ public class CompetitionService {
|
|||||||
|
|
||||||
public Uni<?> delete(SecurityCtx securityCtx, Long id) {
|
public Uni<?> delete(SecurityCtx securityCtx, Long id) {
|
||||||
return repository.findById(id).invoke(Unchecked.consumer(c -> {
|
return repository.findById(id).invoke(Unchecked.consumer(c -> {
|
||||||
if (!securityCtx.getSubject().equals(c.getOwner()) || securityCtx.roleHas("federation_admin"))
|
if (!(securityCtx.getSubject().equals(c.getOwner()) || securityCtx.roleHas("federation_admin")))
|
||||||
throw new DForbiddenException();
|
throw new DForbiddenException();
|
||||||
}))
|
}))
|
||||||
.call(competitionModel -> pouleRepository.list("compet = ?1", competitionModel)
|
.call(competitionModel -> pouleRepository.list("compet = ?1", competitionModel)
|
||||||
.call(pouleModels -> Uni.join()
|
.call(pouleModels -> pouleModels.isEmpty() ? Uni.createFrom().nullItem() :
|
||||||
.all(pouleModels.stream()
|
Uni.join().all(pouleModels.stream()
|
||||||
.map(pouleModel -> Panache.withTransaction(
|
.map(pouleModel -> Panache.withTransaction(
|
||||||
() -> matchRepository.delete("poule = ?1", pouleModel.getId())))
|
() -> matchRepository.delete("poule = ?1", pouleModel.getId())))
|
||||||
.toList())
|
.toList())
|
||||||
.andCollectFailures()))
|
.andCollectFailures()))
|
||||||
.call(competitionModel -> Panache.withTransaction(
|
.call(competitionModel -> Panache.withTransaction(
|
||||||
() -> pouleRepository.delete("compet = ?1", competitionModel)))
|
() -> pouleRepository.delete("compet = ?1", competitionModel)))
|
||||||
.chain(model -> Panache.withTransaction(() -> repository.delete("id", model.getId())))
|
.chain(model -> Panache.withTransaction(() -> repository.delete("id", model.getId())))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user