public function save_permissions(ServiceMediawiki $service, HTTPRequest $request)
 {
     $this->assertUserIsProjectAdmin($service, $request);
     if ($request->isPost()) {
         $project = $request->getProject();
         $new_mapping_list = $this->getSelectedMappingsFromRequest($request, $project);
         $this->mapper->saveMapping($new_mapping_list, $project);
         $this->manager->saveCompatibilityViewOption($project, $request->get('enable_compatibility_view'));
         if (!$this->requestIsRestore($request)) {
             $selected_read_ugroup = $request->get('read_ugroups');
             if ($selected_read_ugroup) {
                 $override_collection = new PermissionsNormalizerOverrideCollection();
                 $normalized_ids = $this->permissions_normalizer->getNormalizedUGroupIds($project, $selected_read_ugroup, $override_collection);
                 if ($this->manager->saveReadAccessControl($project, $normalized_ids)) {
                     $override_collection->emitFeedback(MediawikiManager::READ_ACCESS);
                 }
             }
             $selected_write_ugroup = $request->get('write_ugroups');
             if ($selected_write_ugroup) {
                 $override_collection = new PermissionsNormalizerOverrideCollection();
                 $normalized_ids = $this->permissions_normalizer->getNormalizedUGroupIds($project, $selected_write_ugroup, $override_collection);
                 if ($this->manager->saveWriteAccessControl($project, $normalized_ids)) {
                     $override_collection->emitFeedback(MediawikiManager::WRITE_ACCESS);
                 }
             }
         }
         if ($this->requestIsRestore($request)) {
             $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_mediawiki', 'options_restored'));
         } else {
             $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_mediawiki', 'options_saved'));
         }
     }
     $GLOBALS['Response']->redirect(MEDIAWIKI_BASE_URL . '/forge_admin?' . http_build_query(array('group_id' => $request->get('group_id'))));
 }
 private function setReadWritePermissionsFromTemplate(array $ugroup_mapping)
 {
     $template = ProjectManager::instance()->getProject($this->project->getTemplate());
     $template_read_accesses = $this->mediawiki_manager->getReadAccessControl($template);
     $template_write_accesses = $this->mediawiki_manager->getWriteAccessControl($template);
     $this->mediawiki_manager->saveReadAccessControl($this->project, $this->getUgroupsForProjectFromMapping($template_read_accesses, $ugroup_mapping));
     $this->mediawiki_manager->saveWriteAccessControl($this->project, $this->getUgroupsForProjectFromMapping($template_write_accesses, $ugroup_mapping));
 }
 public function save(ServiceMediawiki $service, HTTPRequest $request)
 {
     $this->assertUserIsProjectAdmin($service, $request);
     if ($request->isPost()) {
         $project = $request->getProject();
         $new_mapping_list = $this->getSelectedMappingsFromRequest($request, $project);
         $this->mapper->saveMapping($new_mapping_list, $project);
         $options = $this->manager->getDefaultOptions();
         if (!$this->requestIsRestore($request)) {
             foreach (array_keys($this->manager->getDefaultOptions()) as $key) {
                 $options[$key] = $request->get($key);
             }
         }
         $this->manager->saveOptions($project, $options);
         if ($this->requestIsRestore($request)) {
             $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_mediawiki', 'options_restored'));
         } else {
             $GLOBALS['Response']->addFeedback(Feedback::INFO, $GLOBALS['Language']->getText('plugin_mediawiki', 'options_saved'));
         }
     }
     $GLOBALS['Response']->redirect(MEDIAWIKI_BASE_URL . '/forge_admin?' . http_build_query(array('group_id' => $request->get('group_id'))));
 }
Example #4
0
 private function isCompatibilityViewEnabled()
 {
     $manager = new MediawikiManager(new MediawikiDao());
     $project = $GLOBALS['group'];
     return $manager->isCompatibilityViewEnabled($project);
 }
Example #5
0
 function addWritePermissionForUser(PFUser $tuleap_user, MediawikiManager $manager, $fusionforgeproject, array $wgGroupPermissions, array $write_permissions)
 {
     $group = group_get_object_by_name($fusionforgeproject);
     if (!$manager->userCanWrite($tuleap_user, $group)) {
         return $wgGroupPermissions;
     }
     foreach ($write_permissions as $write_permission) {
         $wgGroupPermissions['*'][$write_permission] = true;
     }
     return $wgGroupPermissions;
 }
Example #6
0
require_once "{$IP}/extensions/PdfBook/PdfBook.php";
$wgPdfBookTab = true;
// Labeled Section Transclusion
require_once "{$IP}/extensions/LabeledSectionTransclusion/lst.php";
// CategoryTree
$wgUseAjax = true;
require_once "{$IP}/extensions/CategoryTree/CategoryTree.php";
// Cite
require_once "{$IP}/extensions/Cite/Cite.php";
// ImageMap
require_once "{$IP}/extensions/ImageMap/ImageMap.php";
// InputBox
require_once "{$IP}/extensions/InputBox/InputBox.php";
// UNC_links
$wgUrlProtocols = array('http://', 'https://', 'ftp://', 'ftps://', 'ssh://', 'sftp://', 'irc://', 'ircs://', 'xmpp:', 'sip:', 'sips:', 'gopher://', 'telnet://', 'nntp://', 'worldwind://', 'mailto:', 'tel:', 'sms:', 'news:', 'svn://', 'git://', 'mms://', 'bitcoin:', 'magnet:', 'urn:', 'geo:', '//');
require_once MEDIAWIKI_BASE_DIR . '/MediawikiManager.class.php';
$manager = new MediawikiManager(new MediawikiDao());
if ($manager->isCompatibilityViewEnabled($group)) {
    // WikiEditor Extension inclusion
    require_once "{$IP}/extensions/WikiEditor/WikiEditor.php";
    # Enables use of WikiEditor by default but still allow users to disable it in preferences
    $wgDefaultUserOptions['usebetatoolbar'] = 1;
    $wgDefaultUserOptions['usebetatoolbar-cgd'] = 1;
    # Displays the Preview and Changes tabs
    $wgDefaultUserOptions['wikieditor-preview'] = 1;
    # Displays the Publish and Cancel buttons on the top right side
    $wgDefaultUserOptions['wikieditor-publish'] = 1;
}
// TuleapArtLinks Extension inclusion
require_once dirname(__FILE__) . '/../extensions/TuleapArtLinks/TuleapArtLinks.php';
$wgTuleapArtLinksGroupId = $group->getGroupId();