protected function getItems() { global $ilUser; include_once "Services/Portfolio/classes/class.ilPortfolioAccessHandler.php"; $access_handler = new ilPortfolioAccessHandler(); include_once "Services/Portfolio/classes/class.ilObjPortfolio.php"; $data = ilObjPortfolio::getPortfoliosOfUser($this->user_id); // remove all portfolios which are not shared if ($this->shared) { $other = $access_handler->getSharedObjects($this->user_id); foreach ($data as $idx => $item) { if (!in_array($item["id"], $other)) { unset($data[$idx]); } else { // #9848: flag if current share access is password-protected $perms = $access_handler->getPermissions($item["id"]); $data[$idx]["password"] = !in_array($ilUser->getId(), $perms) && !in_array(ilWorkspaceAccessGUI::PERMISSION_REGISTERED, $perms) && !in_array(ilWorkspaceAccessGUI::PERMISSION_ALL, $perms) && in_array(ilWorkspaceAccessGUI::PERMISSION_ALL_PASSWORD, $perms); } } } else { $this->shared_objects = $access_handler->getObjectsIShare(); } $this->setData($data); }
public static function hasAccess($a_node_id, $a_is_portfolio = false) { global $ilUser; // if we have current user - check with normal access handler if ($ilUser->getId() != ANONYMOUS_USER_ID) { if (!$a_is_portfolio) { include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php"; include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceTree.php"; $tree = new ilWorkspaceTree($ilUser->getId()); $access_handler = new ilWorkspaceAccessHandler($tree); } else { include_once "Services/Portfolio/classes/class.ilPortfolioAccessHandler.php"; $access_handler = new ilPortfolioAccessHandler(); } if ($access_handler->checkAccess("read", "", $a_node_id)) { return true; } } // not logged in yet or no read access include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessGUI.php"; if (!$a_is_portfolio) { include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php"; $shared = ilWorkspaceAccessHandler::getPermissions($a_node_id); } else { include_once "Services/Portfolio/classes/class.ilPortfolioAccessHandler.php"; $shared = ilPortfolioAccessHandler::getPermissions($a_node_id); } // object is "public" if (in_array(ilWorkspaceAccessGUI::PERMISSION_ALL, $shared)) { return true; } // password protected if (in_array(ilWorkspaceAccessGUI::PERMISSION_ALL_PASSWORD, $shared)) { if (!$a_is_portfolio) { ilUtil::redirect("ilias.php?baseClass=ilSharedResourceGUI&cmd=passwordForm&wsp_id=" . $a_node_id); } else { ilUtil::redirect("ilias.php?baseClass=ilSharedResourceGUI&cmd=passwordForm&prt_id=" . $a_node_id); } } return false; }