function maySee($user_item) { if ($this->_environment->inCommunityRoom()) { // Community room if ($user_item->isRoot() or $user_item->isGuest() and $this->isVisibleForAll() or ($user_item->getContextID() == $this->getContextID() or $user_item->getContextID() == $this->_environment->getCurrentContextID()) and ($user_item->isUser() and $this->isVisibleForLoggedIn() or $user_item->getUserID() == $this->getUserID() and $user_item->getAuthSource == $this->getAuthSource() or $user_item->isModerator())) { $access = true; } else { $access = false; } } else { // Project room, group room, private room, portal $access = parent::maySee($user_item); if ($access) { $room = $this->_environment->getCurrentContextItem(); if ($room->isPrivateRoom() or $room->isPortal() or $room->withRubric(CS_USER_TYPE)) { $access = true; } else { // if user rubric is not active, user can always see himself if (!$room->withRubric(CS_USER_TYPE)) { if ($user_item->getUserID() == $this->getUserID() && $user_item->getAuthSource() == $this->getAuthSource()) { $access = true; } else { $access = false; } } else { $access = false; } } } } return $access; }
function maySee($user_item) { if ($this->_environment->inProjectRoom() or $user_item->isUser() or $this->isWorldPublic()) { $access = parent::maySee($user_item); } else { $access = false; } return $access; }