private function getTransformedContent(PHPWikiPage $wiki_page, PHPWikiPageVersion $version, WikiRequest $request)
 {
     $dbi = $request->_dbi;
     $page_db = $dbi->getPage($wiki_page->getPagename());
     $revision = $page_db->getRevision($version->getVersionId());
     return $revision->getTransformedContent();
 }
 public function getFromattedUgroupsThatCanReadWikiPage(PHPWikiPage $wiki_page)
 {
     $project = $this->project_manager->getProject($wiki_page->getGid());
     $ugroup_ids = $this->permission_manager->getAuthorizedUgroupIds($wiki_page->getId(), self::WIKI_PERMISSION_READ);
     $ugroup_ids = $this->filterWikiPagePermissionsAccordingToService($project, $ugroup_ids);
     $ugroup_ids = $this->filterWikiPagePermissionsAccordingToProject($project, $ugroup_ids);
     return $this->literalizer->ugroupIdsToString($ugroup_ids, $project);
 }
 /** @return PaginatedWikiPages */
 public function getPaginatedUserPages(PFUser $user, $project_id, $limit, $offset, $pagename)
 {
     $pages = array();
     if ($pagename !== '') {
         $row_pages = $this->dao->searchPaginatedUserWikiPagesByPagename($project_id, $limit, $offset, $pagename);
     } else {
         $row_pages = $this->dao->searchPaginatedUserWikiPages($project_id, $limit, $offset);
     }
     foreach ($row_pages as $page) {
         $wiki_page = new PHPWikiPage($project_id, $page['pagename']);
         if ($wiki_page->isAutorized($user->getId())) {
             $pages[] = $wiki_page;
         }
     }
     return new PaginatedPHPWikiPages($pages);
 }
Example #4
0
 public function doesWikiPageExistInRESTContext($page_id)
 {
     $admin_pages = $this->da->quoteSmartImplode(',', PHPWikiPage::getAdminPages());
     $default_pages = $this->da->quoteSmartImplode(',', PHPWikiPage::getDefaultPages());
     $page_id = $this->da->escapeInt($page_id);
     $sql = "SELECT SQL_CALC_FOUND_ROWS plugin_phpwiki_page.id\n                FROM plugin_phpwiki_page, plugin_phpwiki_nonempty\n                WHERE plugin_phpwiki_page.id = {$page_id}\n                    AND plugin_phpwiki_nonempty.id <> plugin_phpwiki_page.id\n                    AND plugin_phpwiki_page.pagename NOT IN ({$default_pages},{$admin_pages})";
     $this->retrieve($sql);
     return (int) $this->foundRows();
 }
Example #5
0
 /**
  * pagePerms - public View
  */
 function _pagePerms($postUrl = '')
 {
     $wp = new PHPWikiPage($_REQUEST['id']);
     $pagename = $wp->getPagename();
     $eM =& EventManager::instance();
     $referenced = false;
     $eM->processEvent('isWikiPageReferenced', array('referenced' => &$referenced, 'wiki_page' => $pagename, 'group_id' => $this->gid));
     if ($referenced) {
         $label = '';
         $eM->processEvent('getPermsLabelForWiki', array('label' => &$label));
         print '<p align="center"><br><b>' . $label . '</b></p>';
     } else {
         print $GLOBALS['Language']->getText('plugin_phpwiki_views_wikiserviceviews', 'set_perm_title');
         if (empty($pagename)) {
             print $GLOBALS['Language']->getText('plugin_phpwiki_views_wikiserviceviews', 'empty_page');
         } else {
             $purifier = Codendi_HTMLPurifier::instance();
             print $GLOBALS['Language']->getText('plugin_phpwiki_views_wikiserviceviews', 'not_empty_page', array($purifier->purify($pagename)));
             permission_display_selection_form("PHPWIKIPAGE_READ", $wp->getId(), $this->gid, $postUrl);
         }
     }
 }
 /**
  * View display a Wiki Page.
  *
  * @access public
  */
 function wiki()
 {
     $wp = new PHPWikiPage($this->gid, $_REQUEST['pagename']);
     $wp->log(user_getid());
     $lite = false;
     $full_screen = false;
     if (isset($_GET['pv']) && $_GET['pv'] == 1) {
         $lite = true;
     }
     if (isset($_GET['pv']) && $_GET['pv'] == 2) {
         $full_screen = true;
     }
     $wp->render($lite, $full_screen);
 }
 /**
  * Check access permissions for wiki and wiki pages.
  *
  * Check restriction for:
  *  wiki: whole wiki can be restricted.
  *  wikipage: each page of the wiki can be restricted.
  */
 function checkPermissions()
 {
     // Check if user can access to whole wiki
     if (!$this->wiki->isAutorized(user_getid())) {
         $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_phpwiki_wikiservice', 'acces_denied_whole', session_make_url("/project/memberlist.php?group_id=" . $this->gid)), CODENDI_PURIFIER_DISABLED);
         exit_permission_denied();
     }
     // Check if user can access to selected page
     if (!empty($_REQUEST['pagename'])) {
         $wp = new PHPWikiPage($this->gid, $_REQUEST['pagename']);
         if (!$wp->isAutorized(user_getid())) {
             $GLOBALS['Response']->addFeedback('error', $GLOBALS['Language']->getText('plugin_phpwiki_wikiservice', 'acces_denied_page', session_make_url("/project/memberlist.php?group_id=" . $this->gid)), CODENDI_PURIFIER_DISABLED);
             exit_permission_denied();
         }
     }
 }
Example #8
0
 private function getIndexablePageFromDefaultAndAdminPages(array &$indexable_pages)
 {
     $default_pages_used = array_merge($this->getAllInternalPages(), $this->getAdminPages());
     foreach ($default_pages_used as $default_page_name) {
         $wiki_page = new PHPWikiPage($this->gid, $default_page_name);
         $version = $wiki_page->getCurrentVersion();
         if ($version > 1) {
             $indexable_pages[] = $wiki_page;
         }
     }
 }
 /**
  * browsePages - private
  */
 function _browsePages(&$pageList)
 {
     print html_build_list_table_top(array('Page', 'Permissions'));
     $purifier = Codendi_HTMLPurifier::instance();
     sort($pageList);
     $i = 0;
     foreach ($pageList as $pagename) {
         print '            <tr class="' . html_get_alt_row_color($i) . '">            ';
         print '<td><a href="' . $this->wikiLink . '&pagename=' . urlencode($pagename) . '">' . $purifier->purify($pagename) . '</a></td>';
         $page = new PHPWikiPage($this->gid, $pagename);
         $status = $GLOBALS['Language']->getText('plugin_phpwiki_views_wkserviews', 'define_perms');
         if (permission_exist('PHPWIKIPAGE_READ', $page->getId())) {
             $status = $GLOBALS['Language']->getText('plugin_phpwiki_views_wkserviews', 'edit_perms');
         }
         $eM =& EventManager::instance();
         $referenced = false;
         $eM->processEvent('isWikiPageReferenced', array('referenced' => &$referenced, 'wiki_page' => $pagename, 'group_id' => $this->gid));
         print '<td align="center">';
         if ($referenced) {
             $label = '';
             $eM->processEvent('getPermsLabelForWiki', array('label' => &$label));
             print $purifier->purify($label);
         } else {
             print '<a href="' . $this->wikiAdminLink . '&view=pagePerms&id=' . urlencode($page->getId()) . '">[' . $purifier->purify($status) . ']</a>';
         }
         print '</td>';
         print '            </tr>            ';
         $i++;
     }
     print '</TABLE>';
 }
 public function getFormattedContent(PHPWikiPage $page)
 {
     $formatter = new PHPWikiPageVersionContentFormatter($page->getId());
     return $formatter->getFormattedContent($page, $this);
 }
Example #11
0
 /**
  * Get number of project wiki pages.
  * @return number of project pages (0 if wiki is empty)
  */
 function getProjectPageCount()
 {
     $res = db_query(' SELECT count(*) as count' . ' FROM plugin_phpwiki_page, plugin_phpwiki_nonempty' . ' WHERE plugin_phpwiki_page.group_id="' . db_ei($this->gid) . '"' . ' AND plugin_phpwiki_nonempty.id=plugin_phpwiki_page.id' . ' AND plugin_phpwiki_page.pagename NOT IN ("' . implode('","', PHPWikiPage::getDefaultPages()) . '",
                                           "' . implode('","', PHPWikiPage::getAdminPages()) . '")');
     if (db_numrows($res) > 0) {
         return db_result($res, 0, 'count');
     } else {
         return 0;
     }
 }
 /**
  *
  */
 function setWikiPagePerms()
 {
     global $feedback;
     $wp = new PHPWikiPage($_POST['object_id']);
     if ($_POST['reset']) {
         $ret = $wp->resetPermissions();
     } else {
         $ret = $wp->setPermissions($_POST['ugroups']);
     }
     if (!$ret) {
         exit_error($GLOBALS['Language']->getText('global', 'error'), $GLOBALS['Language']->getText('plugin_phpwiki_actions_wikiserviceadmin', 'update_page_perm_err', array($feedback)));
     }
     $event_manager = EventManager::instance();
     $event_manager->processEvent("wiki_page_permissions_updated", array('group_id' => $wp->getGid(), 'wiki_page' => $wp->getPagename()));
 }
Example #13
0
 private function getIndexablePageFromAllUserPages(array &$indexable_pages)
 {
     $all_internal_pages = array_merge($this->getAllUserPages(), $this->wrapper->getProjectEmptyLinks());
     foreach ($all_internal_pages as $internal_page_name) {
         $wiki_page = new PHPWikiPage($this->gid, $internal_page_name);
         if (!$wiki_page->isReferenced()) {
             $indexable_pages[] = $wiki_page;
         }
     }
 }