in space-slack-sync/src/main/kotlin/org/jetbrains/spaceSlackSync/homepage/MissingAppPermissions.kt [9:30]
suspend fun getMissingAppPermissions(): MissingAppPermissionsResponse {
val requiredPermissions = listOf(PermissionIdentifier.ViewMemberProfiles)
val missingPermissions = requiredPermissions.filterNot { permission ->
appSpaceClient.permissions.checkPermission(
principal = PrincipalIn.Application(ApplicationIdentifier.Me),
uniqueRightCode = permission,
target = GlobalPermissionTarget,
)
}.map { "global:$it" }
val hasPermissionsToApprove = userSpaceClient.permissions.checkPermission(
principal = PrincipalIn.Profile(ProfileIdentifier.Me),
uniqueRightCode = PermissionIdentifier.GrantPermissionsToOtherMembers,
target = GlobalPermissionTarget,
)
return MissingAppPermissionsResponse(
missingPermissions = missingPermissions.joinToString(" ").takeIf { it.isNotEmpty() },
hasPermissionsToApprove = hasPermissionsToApprove
)
}