def checkPermission()

in app/actions/PermissionAction.scala [48:68]


  def checkPermission(
    email: String,
    page: String,
    requiredPermission: Permission,
    userPermissions: Option[List[UserPermissions.PagePermission]]
  ): Option[Result] = {
    userPermissions match {
      case Some(permissions) =>
        permissions.find(permission => permission.name == page) match {
          case Some(userPermission) =>
            userPermission.permission match {
              case Permission.Write => None // user has full access
              case Permission.Read =>
                if (requiredPermission != Permission.Write) None
                else Some(logAndForbid(s"Invalid permission for user ${email}, for page $page"))
            }
          case None => Some(logAndForbid(s"No permission found for user ${email}, for page $page"))
        }
      case None => Some(logAndForbid(s"No permissions found for user ${email}"))
    }
  }