public function providePermissions() { $perms = array("CMS_ACCESS_LeftAndMain" => array('name' => _t('CMSMain.ACCESSALLINTERFACES', 'Access to all CMS sections'), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('CMSMain.ACCESSALLINTERFACESHELP', 'Overrules more specific access settings.'), 'sort' => -100)); // Add any custom ModelAdmin subclasses. Can't put this on ModelAdmin itself // since its marked abstract, and needs to be singleton instanciated. foreach (ClassInfo::subclassesFor('SilverStripe\\Admin\\ModelAdmin') as $i => $class) { if ($class == 'SilverStripe\\Admin\\ModelAdmin') { continue; } if (ClassInfo::classImplements($class, 'SilverStripe\\Dev\\TestOnly')) { continue; } // Check if modeladmin has explicit required_permission_codes option. // If a modeladmin is namespaced you can apply this config to override // the default permission generation based on fully qualified class name. $code = $this->getRequiredPermissions(); if (!$code) { continue; } // Get first permission if multiple specified if (is_array($code)) { $code = reset($code); } $title = LeftAndMain::menu_title($class); $perms[$code] = array('name' => _t('CMSMain.ACCESS', "Access to '{title}' section", "Item in permission selection identifying the admin section. Example: Access to 'Files & Images'", array('title' => $title)), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access')); } return $perms; }
/** * Provide menu titles to the i18n entity provider */ public function provideI18nEntities() { $cmsClasses = self::get_cms_classes(); $entities = array(); foreach ($cmsClasses as $cmsClass) { $defaultTitle = LeftAndMain::menu_title($cmsClass, false); $ownerModule = i18n::get_owner_module($cmsClass); $entities["{$cmsClass}.MENUTITLE"] = array($defaultTitle, 'Menu title', $ownerModule); } return $entities; }