protected function getItems()
 {
     global $ilUser;
     include_once "Modules/Portfolio/classes/class.ilPortfolioAccessHandler.php";
     $access_handler = new ilPortfolioAccessHandler();
     include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
     $data = ilObjPortfolio::getPortfoliosOfUser($this->user_id);
     $this->shared_objects = $access_handler->getObjectsIShare(false);
     $this->setData($data);
 }
 public function checkAccess(array $a_users)
 {
     include_once "Modules/Portfolio/classes/class.ilPortfolioAccessHandler.php";
     $access_handler = new ilPortfolioAccessHandler();
     foreach ($a_users as $user_id) {
         if ($access_handler->checkAccessOfUser($user_id, "read", "view", $this->prtf_id, "prtf")) {
             return true;
         }
     }
     return false;
 }
 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);
 }
 protected function checkPassword()
 {
     global $ilDB, $lng;
     $lng->loadLanguageModule("wsp");
     $form = $this->initPasswordForm();
     if ($form->checkInput()) {
         $input = md5($form->getInput("password"));
         if ($this->node_id) {
             include_once "Services/PersonalWorkspace/classes/class.ilWorkspaceAccessHandler.php";
             $password = ilWorkspaceAccessHandler::getSharedNodePassword($this->node_id);
         } else {
             include_once "Services/Portfolio/classes/class.ilPortfolioAccessHandler.php";
             $password = ilPortfolioAccessHandler::getSharedNodePassword($this->portfolio_id);
         }
         if ($input == $password) {
             if ($this->node_id) {
                 ilWorkspaceAccessHandler::keepSharedSessionPassword($this->node_id, $input);
                 $this->redirectToResource($this->node_id);
             } else {
                 ilPortfolioAccessHandler::keepSharedSessionPassword($this->portfolio_id, $input);
                 $this->redirectToResource($this->portfolio_id, true);
             }
         } else {
             $item = $form->getItemByPostVar("password");
             $item->setAlert($lng->txt("wsp_invalid_password"));
             ilUtil::sendFailure($lng->txt("form_input_not_valid"));
         }
     }
     $form->setValuesByPost();
     $this->passwordForm($form);
 }
 public static function getAvailablePortfolioLinksForUserIds(array $a_owner_ids, $a_back_url = null)
 {
     $res = array();
     include_once "Modules/Portfolio/classes/class.ilPortfolioAccessHandler.php";
     $access_handler = new ilPortfolioAccessHandler();
     $params = null;
     if ($a_back_url) {
         $params = array("back_url" => rawurlencode($a_back_url));
     }
     include_once "Services/Link/classes/class.ilLink.php";
     foreach ($access_handler->getShardObjectsDataForUserIds($a_owner_ids) as $owner_id => $items) {
         foreach ($items as $id => $title) {
             $url = ilLink::_getLink($id, 'prtf', $params);
             $res[$owner_id][$url] = $title;
         }
     }
     return $res;
 }
 /**
  * Check if current profile portfolio is accessible
  * 
  * @return int
  */
 protected function getProfilePortfolio()
 {
     include_once "Modules/Portfolio/classes/class.ilObjPortfolio.php";
     $portfolio_id = ilObjPortfolio::getDefaultPortfolio($this->getUserId());
     if ($portfolio_id) {
         include_once './Modules/Portfolio/classes/class.ilPortfolioAccessHandler.php';
         $access_handler = new ilPortfolioAccessHandler();
         if ($access_handler->checkAccess("read", "", $portfolio_id)) {
             return $portfolio_id;
         }
     }
 }
 /**
  * @throws ilException
  */
 protected function generatePortfolio()
 {
     if ($this->getPortfolioTemplateId() < 10) {
         return false;
     }
     // Generate Portfolio from Template
     global $ilUser;
     $tmp_user = $ilUser;
     $source = new ilObjPortfolioTemplate($this->getPortfolioTemplateId(), false);
     $target = new ilObjPortfolio();
     $user = $this->getUsrObject();
     $target->setOwner($user->getId());
     $target->setTitle($this->getReplacesPortfolioTitle());
     $target->setUserDefault($user->getId());
     $target->setOnline(true);
     $target->create();
     include_once "Modules/Portfolio/classes/class.ilPortfolioTemplatePage.php";
     foreach (ilPortfolioTemplatePage::getAllPages($this->getPortfolioTemplateId()) as $page) {
         switch ($page["type"]) {
             case ilPortfolioTemplatePage::TYPE_BLOG_TEMPLATE:
                 $a_recipe[$page["id"]] = array("blog", "create", $this->getBlogName());
                 break;
         }
     }
     $GLOBALS['ilUser'] = $user;
     ilObjPortfolioTemplate::clonePagesAndSettings($source, $target, $a_recipe);
     $GLOBALS['ilUser'] = $tmp_user;
     ilObjPortfolio::setUserDefault($user->getId(), $target->getId());
     $ilPortfolioAccessHandler = new ilPortfolioAccessHandler();
     foreach ($this->getPortfolioAssignedToGroups() as $grp_obj_id) {
         if (ilObject2::_lookupType($grp_obj_id) == 'grp') {
             $ilPortfolioAccessHandler->addPermission($target->getId(), $grp_obj_id);
         }
     }
 }
 /**
  * Check access rights for portfolio pages
  *
  * @param    int     	object id (glossary)
  * @param    int         page id (definition)
  * @return   boolean     access given (true/false)
  */
 private function checkAccessPortfolioPage($obj_id, $page_id)
 {
     include_once "Services/Portfolio/classes/class.ilPortfolioAccessHandler.php";
     $access_handler = new ilPortfolioAccessHandler();
     foreach ($this->check_users as $user_id) {
         if ($access_handler->checkAccessOfUser($user_id, "read", "view", $obj_id, "prtf")) {
             return true;
         }
     }
     return false;
 }
 /**
  * Delete all portfolio data for user
  * 
  * @param int $a_user_id 
  */
 public static function deleteUserPortfolios($a_user_id)
 {
     $all = self::getPortfoliosOfUser($a_user_id);
     if ($all) {
         include_once "Services/Portfolio/classes/class.ilPortfolioAccessHandler.php";
         $access_handler = new ilPortfolioAccessHandler();
         foreach ($all as $item) {
             $access_handler->removePermission($item["id"]);
             $portfolio = new self($item["id"], false);
             $portfolio->delete();
         }
     }
 }
 protected function showOther()
 {
     global $tpl, $lng, $ilCtrl, $ilToolbar, $ilTabs;
     $ilTabs->activateTab("otpf");
     include_once './Services/Portfolio/classes/class.ilPortfolioAccessHandler.php';
     $handler = new ilPortfolioAccessHandler();
     $users = $handler->getSharedOwners();
     // user selection
     include_once "./Services/Form/classes/class.ilSelectInputGUI.php";
     $si = new ilSelectInputGUI($lng->txt("user"), "user");
     $si->setOptions(array("" => "-") + $users);
     $ilToolbar->addInputItem($si);
     $ilToolbar->setFormAction($ilCtrl->getFormAction($this));
     $ilToolbar->addFormButton($lng->txt("ok"), "showOther");
     if (!$_REQUEST["user"]) {
         ilUtil::sendInfo($lng->txt("wsp_share_select_user"));
     } else {
         $si->setValue($_REQUEST["user"]);
         include_once "Services/Portfolio/classes/class.ilPortfolioTableGUI.php";
         $table = new ilPortfolioTableGUI($this, "showOther", $_REQUEST["user"], true);
         $tpl->setContent($table->getHTML());
     }
 }