public function execute()
 {
     $params = $this->extractRequestParams();
     $prop = array_flip((array) $params['prop']);
     $from = isset($params['from']) ? $params['from'] : null;
     $APIResult = $this->getResult();
     $data = array();
     /**
      * @var $wikiSet WikiSet
      */
     foreach (WikiSet::getAllWikiSets($from, $params['limit'], $params['orderbyname']) as $wikiSet) {
         $entry = array();
         $entry['id'] = $wikiSet->getId();
         $entry['name'] = $wikiSet->getName();
         if (isset($prop['type'])) {
             $entry['type'] = $wikiSet->getType();
         }
         if (isset($prop['wikisincluded'])) {
             $entry['wikisincluded'] = $wikiSet->getWikis();
             if (count($entry['wikisincluded'])) {
                 $APIResult->setIndexedTagName($entry['wikisincluded'], 'wiki');
             }
         }
         if (isset($prop['wikisnotincluded'])) {
             $entry['wikisnotincluded'] = array_diff(CentralAuthUser::getWikiList(), $wikiSet->getWikis());
             if (count($entry['wikisnotincluded'])) {
                 $APIResult->setIndexedTagName($entry['wikisnotincluded'], 'wiki');
             }
         }
         $data[] = $entry;
     }
     $APIResult->setIndexedTagName($data, 'wikiset');
     $APIResult->addValue('query', $this->getModuleName(), $data);
 }
 /**
  * Output a form to allow searching for a user
  */
 function switchForm()
 {
     global $wgScript;
     $knownwiki = $this->getRequest()->getVal('wpKnownWiki');
     $knownwiki = $knownwiki ? $knownwiki : wfWikiId();
     // Generate wiki selector
     $selector = new XmlSelect('wpKnownWiki', 'wpKnownWiki', $knownwiki);
     foreach (CentralAuthUser::getWikiList() as $wiki) {
         $selector->addOption($wiki);
     }
     $this->getOutput()->addModuleStyles('mediawiki.special');
     $this->getOutput()->addHTML(Xml::openElement('form', array('method' => 'get', 'action' => $wgScript, 'name' => 'uluser', 'id' => 'mw-userrights-form1')) . Html::hidden('title', $this->getTitle()) . Xml::openElement('fieldset') . Xml::element('legend', array(), wfMsg('userrights-lookup-user')) . Xml::inputLabel(wfMsg('userrights-user-editname'), 'user', 'username', 30, $this->mTarget) . ' <br />' . Xml::label(wfMsg('centralauth-globalgrouppermissions-knownwiki'), 'wpKnownWiki') . ' ' . $selector->getHTML() . '<br />' . Xml::submitButton(wfMsg('editusergroup')) . Xml::closeElement('fieldset') . Xml::closeElement('form') . "\n");
 }
Esempio n. 3
0
 /**
  * @param $id
  * @return mixed
  */
 function doSubmit($id)
 {
     global $wgContLang;
     $name = $wgContLang->ucfirst($this->getRequest()->getVal('wpName'));
     $type = $this->getRequest()->getVal('wpType');
     $wikis = array_unique(preg_split('/(\\s+|\\s*\\W\\s*)/', $this->getRequest()->getVal('wpWikis'), -1, PREG_SPLIT_NO_EMPTY));
     $reason = $this->getRequest()->getVal('wpReason');
     $set = WikiSet::newFromId($id);
     if (!Title::newFromText($name)) {
         $this->buildSetView($id, wfMsgHtml('centralauth-editset-badname'), $name, $type, $wikis, $reason);
         return;
     }
     if ((!$id || $set->getName() != $name) && WikiSet::newFromName($name)) {
         $this->buildSetView($id, wfMsgHtml('centralauth-editset-setexists'), $name, $type, $wikis, $reason);
         return;
     }
     if (!in_array($type, array(WikiSet::OPTIN, WikiSet::OPTOUT))) {
         $this->buildSetView($id, wfMsgHtml('centralauth-editset-badtype'), $name, $type, $wikis, $reason);
         return;
     }
     if (!$wikis) {
         $this->buildSetView($id, wfMsgHtml('centralauth-editset-nowikis'), $name, $type, $wikis, $reason);
         return;
     }
     $badwikis = array();
     $allwikis = CentralAuthUser::getWikiList();
     foreach ($wikis as $wiki) {
         if (!in_array($wiki, $allwikis)) {
             $badwikis[] = $wiki;
         }
     }
     if ($badwikis) {
         $this->buildSetView($id, wfMsgExt('centralauth-editset-badwikis', array('escapenoentities', 'parsemag'), implode(', ', $badwikis), count($badwikis)), $name, $type, $wikis, $reason);
         return;
     }
     if ($set) {
         $oldname = $set->getName();
         $oldtype = $set->getType();
         $oldwikis = $set->getWikisRaw();
     } else {
         $set = new WikiSet();
         $oldname = $oldtype = null;
         $oldwikis = array();
     }
     $set->setName($name);
     $set->setType($type);
     $set->setWikisRaw($wikis);
     $set->commit();
     // Now logging
     $log = new LogPage('gblrights');
     $title = SpecialPage::getTitleFor('WikiSets', $set->getID());
     if (!$oldname) {
         // New set
         $log->addEntry('newset', $title, $reason, array($name, $type, implode(', ', $wikis)));
     } else {
         if ($oldname != $name) {
             $log->addEntry('setrename', $title, $reason, array($name, $oldname));
         }
         if ($oldtype != $type) {
             $log->addEntry('setnewtype', $title, $reason, array($name, $oldtype, $type));
         }
         $added = implode(', ', array_diff($wikis, $oldwikis));
         $removed = implode(', ', array_diff($oldwikis, $wikis));
         if ($added || $removed) {
             $log->addEntry('setchange', $title, $reason, array($name, $added, $removed));
         }
     }
     $returnLink = Linker::makeKnownLinkObj($this->getTitle(), wfMsg('centralauth-editset-return'));
     $this->getOutput()->addHTML('<strong class="success">' . wfMsgHtml('centralauth-editset-success') . '</strong> <p>' . $returnLink . '</p>');
 }
Esempio n. 4
0
 /**
  * @return array
  */
 public function getWikis()
 {
     if ($this->mType == self::OPTIN) {
         return $this->mWikis;
     } else {
         return array_diff(CentralAuthUser::getWikiList(), $this->mWikis);
     }
 }