protected function addModules(OutputPage $out, $action) { if ($this->actions->hasValue($action, 'modules')) { $out->addModuleStyles($this->actions->getValue($action, 'modules')); } else { $out->addModules(array('ext.flow')); } if ($this->actions->hasValue($action, 'moduleStyles')) { $out->addModuleStyles($this->actions->getValue($action, 'moduleStyles')); } else { $out->addModuleStyles(array('mediawiki.ui', 'mediawiki.ui.anchor', 'mediawiki.ui.button', 'mediawiki.ui.input', 'mediawiki.ui.icon', 'mediawiki.ui.text', 'ext.flow.styles.base', 'ext.flow.mediawiki.ui.tooltips', 'ext.flow.mediawiki.ui.form', 'ext.flow.mediawiki.ui.modal', 'ext.flow.mediawiki.ui.text', 'oojs-ui.styles.icons', 'oojs-ui.styles.icons-layout', 'oojs-ui.styles.icons-interactions', 'ext.flow.board.styles', 'ext.flow.board.topic.styles', 'oojs-ui.styles.icons', 'oojs-ui.styles.icons-alerts', 'oojs-ui.styles.icons-content', 'oojs-ui.styles.icons-layout', 'oojs-ui.styles.icons-movement', 'oojs-ui.styles.icons-indicators', 'oojs-ui.styles.icons-editing-core', 'oojs-ui.styles.icons-moderation', 'oojs-ui.styles.textures')); } // Add Parsoid modules if necessary Parsoid\Utils::onFlowAddModules($out); // Allow other extensions to add modules Hooks::run('FlowAddModules', array($out)); }
/** * Check if a user is allowed to perform a certain action, against the latest * root(topic) post related to the provided revision. This is required for * things like preventing replies to locked topics. * * @param AbstractRevision $root * @param string $action * @return bool */ public function isRootAllowed(AbstractRevision $root, $action) { // If the `root-permissions` key is not set then it is allowed if (!$this->actions->hasValue($action, 'root-permissions')) { return true; } $permission = $this->getPermission($root, $action, 'root-permissions'); // If `root-permissions` is defined but not for the current state // then action is denied if ($permission === null) { return false; } return call_user_func_array(array($this->user, 'isAllowedAny'), (array) $permission); }