getRoleNames())) { // Only new documents may be checked if (static::CHECK === $attribute) { return in_array($upload->getStatus(), [Upload::STATUS_NEW, Upload::STATUS_PENDING]); } return true; } // Teamers may only access their own documents if (true === in_array($attribute, [static::VIEW, static::DELETE, static::DOWNLOAD])) { /** @var User $user */ $user = $token->getUser(); return $upload->getOwner() === $user; } return false; } }