app/services/Permissions.scala (24 lines of code) (raw):
package services
import com.gu.pandomainauth.model.AuthenticatedUser
import com.gu.permissions.{PermissionDefinition, PermissionsConfig, PermissionsProvider}
import config.AWS
class Permissions(stage: String) {
private val legacyApp = "atom-maker" // used for old permissions, shared with MAM. TODO should these be separated?
private val app = "atom-workshop"
private val deleteAtom = PermissionDefinition(name = "delete_atom", legacyApp)
private val access = PermissionDefinition(name = "atom_workshop_access", app)
private val permissionDefinitions = Map(
"deleteAtom" -> deleteAtom,
"access" -> access
)
def canAccess(authedUser: AuthenticatedUser): Boolean = {
permissions.hasPermission(access, authedUser.user.email)
}
def canDeleteAtom(authedUser: AuthenticatedUser): Boolean = {
permissions.hasPermission(deleteAtom, authedUser.user.email)
}
private val permissions: PermissionsProvider = PermissionsProvider(PermissionsConfig(stage, AWS.region.getName, AWS.credentials))
def getAll(email: String): Map[String, Boolean] = permissionDefinitions.transform(
(_, permission) => permissions.hasPermission(permission, email)
)
}