00001 <?php
00002
00015 import('controllers.grid.plugins.PluginGridHandler');
00016
00017 class SettingsPluginGridHandler extends PluginGridHandler {
00021 function SettingsPluginGridHandler() {
00022 $roles = array(ROLE_ID_SITE_ADMIN, ROLE_ID_PRESS_MANAGER);
00023
00024 $this->addRoleAssignment($roles, array('plugin'));
00025
00026 parent::PluginGridHandler($roles);
00027 }
00028
00029
00030
00031
00032
00036 function getCategoryData($categoryDataElement, $filter) {
00037 $plugins = parent::getCategoryData($categoryDataElement, $filter);
00038
00039 $pressDao =& DAORegistry::getDAO('PressDAO');
00040 $presses =& $pressDao->getPresses();
00041 $singlePress = false;
00042 if ($presses->getCount() == 1) {
00043 $singlePress = true;
00044 }
00045
00046 $userRoles = $this->getAuthorizedContextObject(ASSOC_TYPE_USER_ROLES);
00047
00048 $showSitePlugins = false;
00049 if ($singlePress && in_array(ROLE_ID_SITE_ADMIN, $userRoles)) {
00050 $showSitePlugins = true;
00051 }
00052
00053 if ($showSitePlugins) {
00054 return $plugins;
00055 } else {
00056 $pressLevelPlugins = array();
00057 foreach ($plugins as $plugin) {
00058 if (!$plugin->isSitePlugin()) {
00059 $pressLevelPlugins[$plugin->getName()] = $plugin;
00060 }
00061 unset($plugin);
00062 }
00063 return $pressLevelPlugins;
00064 }
00065 }
00066
00067
00068
00069
00073 function getRowInstance() {
00074 return parent::getRowInstance(CONTEXT_PRESS);
00075 }
00076 }
00077
00078 ?>