bitkid
04/06/2020, 11:21 AMmp
04/06/2020, 2:42 PMinternal suspend fun requireCapability(
call: ApplicationCall,
c: InternalCapability,
block: suspend (InternalUserPrincipal) -> Unit
) {
val principal = call.authentication.principal<InternalUserPrincipal>()!!
if (!principal.capabilities.contains(c)) {
logger.debug("Principal ${principal.internalUserId} did not have capability $c")
call.respond(HttpStatusCode.Unauthorized)
return
}
block(principal)
}
requireCapability(foo) { your logic here }