/** * @param Portfolio $portfolio * @param User|null $user * @param bool $isAdmin * * @return string|null */ public function getOpeningMode(Portfolio $portfolio, $user, $isAdmin = false) { $openingMode = null; if (null !== $user) { if ($user === $portfolio->getUser() || $isAdmin) { $openingMode = self::PORTFOLIO_OPENING_MODE_EDIT; } elseif ($portfolio->hasGuide($user)) { $openingMode = self::PORTFOLIO_OPENING_MODE_EVALUATE; } elseif ($this->visibleToUser($portfolio, $user)) { $openingMode = self::PORTFOLIO_OPENING_MODE_VIEW; } } elseif (Portfolio::VISIBILITY_EVERYBODY === $portfolio->getVisibility()) { $openingMode = self::PORTFOLIO_OPENING_MODE_VIEW; } return $openingMode; }