This commit is contained in:
2021-02-06 00:56:02 +01:00
parent 678bdf7087
commit 8c228f666f
31 changed files with 7 additions and 50 deletions

View File

@@ -1,9 +1,7 @@
package fr.dcproject.component.opinion
import fr.dcproject.common.entity.HasTarget
import fr.dcproject.common.entity.TargetRef
import fr.dcproject.component.citizen.CitizenI
import fr.dcproject.component.opinion.entity.Opinion
import fr.dcproject.component.opinion.entity.OpinionI
import fr.dcproject.security.AccessControl
import fr.dcproject.security.AccessResponse
@@ -24,10 +22,10 @@ class OpinionAccessControl : AccessControl() {
}
}
fun <S, SS : List<S>, C: CitizenI> canView(subjects: SS, citizen: CitizenI?): AccessResponse where S : OpinionI, S : EntityCreatedBy<C> =
fun <S, SS : List<S>, C : CitizenI> canView(subjects: SS, citizen: CitizenI?): AccessResponse where S : OpinionI, S : EntityCreatedBy<C> =
canAll(subjects) { canView(it, citizen) }
fun <S, C: CitizenI> canView(subject: S, citizen: CitizenI?): AccessResponse where S : OpinionI, S : EntityCreatedBy<C> = when {
fun <S, C : CitizenI> canView(subject: S, citizen: CitizenI?): AccessResponse where S : OpinionI, S : EntityCreatedBy<C> = when {
citizen == null -> denied("You must be connected to delete opinion", "opinion.delete.notConnected")
subject.createdBy.id != citizen.id -> denied("You cannot view opinions of other citizen", "opinion.view.otherCitizen")
else -> granted()