/**
  * @return ArrayList
  */
 public function Breadcrumbs($unlinked = false)
 {
     $defaultTitle = LeftAndMain::menu_title_for_class('CodeBankIPAgreement');
     $title = _t('CodeBankIPAgreement.MENUTITLE', $defaultTitle);
     $items = new ArrayList(array(new ArrayData(array('Title' => $title, 'Link' => $unlinked ? false : 'admin/codeBank/show/' . $this->currentPageID()))));
     $record = $this->currentPage();
     if ($record && $record->exists()) {
         if ($record->hasExtension('Hierarchy')) {
             $ancestors = $record->getAncestors();
             $ancestors = new ArrayList(array_reverse($ancestors->toArray()));
             $ancestors->push($record);
             foreach ($ancestors as $ancestor) {
                 $items->push(new ArrayData(array('Title' => $ancestor->Title, 'Link' => $unlinked ? false : Controller::join_links($this->Link('show'), $ancestor->ID))));
             }
         } else {
             $items->push(new ArrayData(array('Title' => $record->Title, 'Link' => $unlinked ? false : Controller::join_links($this->Link('show'), $record->ID))));
         }
     }
     return $items;
 }
コード例 #2
0
 /**
  * Provides custom permissions to the Security section
  *
  * @return array
  */
 public function providePermissions()
 {
     $title = _t("Mandrill.MENUTITLE", LeftAndMain::menu_title_for_class('Mandrill'));
     return array("CMS_ACCESS_Mandrill" => array('name' => _t('Mandrill.ACCESS', "Access to '{title}' section", array('title' => $title)), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('Mandrill.ACCESS_HELP', 'Allow use of Mandrill admin section')));
 }
コード例 #3
0
 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('ModelAdmin') as $i => $class) {
         if ($class == 'ModelAdmin') {
             continue;
         }
         if (ClassInfo::classImplements($class, 'TestOnly')) {
             continue;
         }
         $title = _t("{$class}.MENUTITLE", LeftAndMain::menu_title_for_class($class));
         $perms["CMS_ACCESS_" . $class] = 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;
 }
コード例 #4
0
 public function providePermissions()
 {
     $title = _t("SecurityAdmin.MENUTITLE", LeftAndMain::menu_title_for_class($this->class));
     return array("CMS_ACCESS_SecurityAdmin" => array('name' => _t('CMSMain.ACCESS', "Access to '{title}' section", array('title' => $title)), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('SecurityAdmin.ACCESS_HELP', 'Allow viewing, adding and editing users, as well as assigning permissions and roles to them.')), 'EDIT_PERMISSIONS' => array('name' => _t('SecurityAdmin.EDITPERMISSIONS', 'Manage permissions for groups'), 'category' => _t('Permissions.PERMISSIONS_CATEGORY', 'Roles and access permissions'), 'help' => _t('SecurityAdmin.EDITPERMISSIONS_HELP', 'Ability to edit Permissions and IP Addresses for a group.' . ' Requires the "Access to \'Security\' section" permission.'), 'sort' => 0), 'APPLY_ROLES' => array('name' => _t('SecurityAdmin.APPLY_ROLES', 'Apply roles to groups'), 'category' => _t('Permissions.PERMISSIONS_CATEGORY', 'Roles and access permissions'), 'help' => _t('SecurityAdmin.APPLY_ROLES_HELP', 'Ability to edit the roles assigned to a group.' . ' Requires the "Access to \'Users\' section" permission.'), 'sort' => 0));
 }
コード例 #5
0
 /**
  * Returns the main menu of the CMS.  This is also used by init() 
  * to work out which sections the user has access to.
  * 
  * @return DataObjectSet
  */
 public function MainMenu()
 {
     // Don't accidentally return a menu if you're not logged in - it's used to determine access.
     if (!Member::currentUser()) {
         return new DataObjectSet();
     }
     // Encode into DO set
     $menu = new DataObjectSet();
     $menuItems = CMSMenu::get_viewable_menu_items();
     if ($menuItems) {
         foreach ($menuItems as $code => $menuItem) {
             // alternate permission checks (in addition to LeftAndMain->canView())
             if (isset($menuItem->controller) && $this->hasMethod('alternateMenuDisplayCheck') && !$this->alternateMenuDisplayCheck($menuItem->controller)) {
                 continue;
             }
             $linkingmode = "";
             if (strpos($this->Link(), $menuItem->url) !== false) {
                 if ($this->Link() == $menuItem->url) {
                     $linkingmode = "current";
                     // default menu is the one with a blank {@link url_segment}
                 } else {
                     if (singleton($menuItem->controller)->stat('url_segment') == '') {
                         if ($this->Link() == $this->stat('url_base') . '/') {
                             $linkingmode = "current";
                         }
                     } else {
                         $linkingmode = "current";
                     }
                 }
             }
             // already set in CMSMenu::populate_menu(), but from a static pre-controller
             // context, so doesn't respect the current user locale in _t() calls - as a workaround,
             // we simply call LeftAndMain::menu_title_for_class() again
             // if we're dealing with a controller
             if ($menuItem->controller) {
                 $defaultTitle = LeftAndMain::menu_title_for_class($menuItem->controller);
                 $title = _t("{$menuItem->controller}.MENUTITLE", $defaultTitle);
             } else {
                 $title = $menuItem->title;
             }
             $menu->push(new ArrayData(array("MenuItem" => $menuItem, "Title" => Convert::raw2xml($title), "Code" => $code, "Link" => $menuItem->url, "LinkingMode" => $linkingmode)));
         }
     }
     // if no current item is found, assume that first item is shown
     //if(!isset($foundCurrent))
     return $menu;
 }
コード例 #6
0
 /**
  * Provide the permission codes used by LeftAndMain.
  * Can't put it on LeftAndMain since that's an abstract base class.
  */
 function providePermissions()
 {
     $classes = ClassInfo::subclassesFor('LeftAndMain');
     foreach ($classes as $i => $class) {
         $title = _t("{$class}.MENUTITLE", LeftAndMain::menu_title_for_class($class));
         $perms["CMS_ACCESS_" . $class] = array('name' => sprintf(_t('CMSMain.ACCESS', "Access to '%s' section", PR_MEDIUM, "Item in permission selection identifying the admin section. Example: Access to 'Files & Images'"), $title, null), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'));
     }
     $perms["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);
     $perms['CMS_ACCESS_CMSMain']['help'] = _t('CMSMain.ACCESS_HELP', 'Allow viewing of the section containing page tree and content. View and edit permissions can be handled through page specific dropdowns, as well as the separate "Content permissions".');
     $perms['CMS_ACCESS_SecurityAdmin']['help'] = _t('SecurityAdmin.ACCESS_HELP', 'Allow viewing, adding and editing users, as well as assigning permissions and roles to them.');
     if (isset($perms['CMS_ACCESS_ModelAdmin'])) {
         unset($perms['CMS_ACCESS_ModelAdmin']);
     }
     return $perms;
 }
コード例 #7
0
ファイル: CMSMenu.php プロジェクト: rixrix/sapphire
 /**
  * Provide menu titles to the i18n entity provider
  */
 function provideI18nEntities()
 {
     $cmsClasses = self::get_cms_classes();
     $entities = array();
     foreach ($cmsClasses as $cmsClass) {
         $defaultTitle = LeftAndMain::menu_title_for_class($cmsClass);
         $ownerModule = i18n::get_owner_module($cmsClass);
         $entities["{$cmsClass}.MENUTITLE"] = array($defaultTitle, PR_HIGH, 'Menu title', $ownerModule);
     }
     return $entities;
 }
コード例 #8
0
 /**
  * Provides custom permissions to the Security section
  *
  * @return array
  */
 public function providePermissions()
 {
     $title = _t("Dashboard.MENUTITLE", LeftAndMain::menu_title_for_class('Dashboard'));
     return array("CMS_ACCESS_Dashboard" => array('name' => _t('Dashboard.ACCESS', "Access to '{title}' section", array('title' => $title)), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('Dashboard.ACCESS_HELP', 'Allow use of the CMS Dashboard')), "CMS_ACCESS_DashboardAddPanels" => array('name' => _t('Dashboard.ADDPANELS', "Add dashboard panels"), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('Dashboard.ACCESS_HELP', 'Allow user to add panels to his/her dashboard')), "CMS_ACCESS_DashboardConfigurePanels" => array('name' => _t('Dashboard.CONFIGUREANELS', "Configure dashboard panels"), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('Dashboard.ACCESS_HELP', 'Allow user to configure his/her dashbaord panels')), "CMS_ACCESS_DashboardDeletePanels" => array('name' => _t('Dashboard.DELETEPANELS', "Remove dashboard panels"), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('Dashboard.ACCESS_HELP', 'Allow user to remove panels from his/her dashbaord')));
 }
コード例 #9
0
ファイル: CMSMain.php プロジェクト: neopba/silverstripe-book
	/**
	 * Provide the permission codes used by LeftAndMain.
	 * Can't put it on LeftAndMain since that's an abstract base class.
	 */
	function providePermissions() {
		$classes = ClassInfo::subclassesFor('LeftAndMain');

		foreach($classes as $class) {
			$title = _t("{$class}.MENUTITLE", LeftAndMain::menu_title_for_class($class));
	        $perms["CMS_ACCESS_" . $class] = sprintf(
				_t(
					'CMSMain.ACCESS', 
					"Access to '%s' (%s)",
					PR_MEDIUM,
					"Item in permission selection identifying the admin section, with title and classname. Example: Access to 'Files & Images' (AssetAdmin)"
				), 
				$title,
				$class
			);
		}
		$perms["CMS_ACCESS_LeftAndMain"] = _t(
			'CMSMain.ACCESSALLINTERFACES', 
			'Access to all CMS interfaces'
		);
		return $perms;
	}
コード例 #10
0
 /**
  * Provides custom permissions to the Security section
  *
  * @return array
  */
 public function providePermissions()
 {
     $title = _t("SparkPostAdmin.MENUTITLE", LeftAndMain::menu_title_for_class('SparkPost'));
     return ["CMS_ACCESS_SparkPost" => ['name' => _t('SparkPostAdmin.ACCESS', "Access to '{title}' section", ['title' => $title]), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('SparkPostAdmin.ACCESS_HELP', 'Allow use of SparkPost admin section')]];
 }
コード例 #11
0
 public function providePermissions()
 {
     $title = _t("AdminHelp.MENUTITLE", LeftAndMain::menu_title_for_class($this->class));
     return array("ADMINHELP_ACCESS_VIEW" => array('name' => _t('AdminHelp.VIEWACCESS', "Access to '{title}' section", array('title' => $title)), 'category' => _t('Permission.ADMINHELP_ACCESS_CATEGORY', 'Admin Help Access')));
 }
コード例 #12
0
 public function providePermissions()
 {
     $title = _t("GlobalContentAdmin.MENUTITLE", LeftAndMain::menu_title_for_class($this->class));
     return ["CMS_ACCESS_GlobalContentAdmin" => ['name' => _t('CMSMain.ACCESS', "Access to '{title}' section", ['title' => $title]), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('GlobalContentAdmin.ACCESS_HELP', "Allow viewing and editing data in the '{title}' section", ['title' => $title])]];
 }
コード例 #13
0
 /**
  * @return array
  */
 public function providePermissions()
 {
     $perms = array();
     // Add any custom SinglePageAdmin subclasses.
     foreach (ClassInfo::subclassesFor('SinglePageAdmin') as $i => $class) {
         if ($class == 'SinglePageAdmin') {
             continue;
         }
         if (ClassInfo::classImplements($class, 'TestOnly')) {
             continue;
         }
         $title = _t("{$class}.MENUTITLE", LeftAndMain::menu_title_for_class($class));
         $perms["CMS_ACCESS_" . $class] = 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;
 }
コード例 #14
0
 public function providePermissions()
 {
     $title = _t("ReportAdmin.MENUTITLE", LeftAndMain::menu_title_for_class($this->class));
     return array("CMS_ACCESS_ReportAdmin" => array('name' => _t('CMSMain.ACCESS', "Access to '{title}' section", array('title' => $title)), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access')));
 }
コード例 #15
0
 /**
  * Returns Silvercart specific menus.
  * 
  * @return ArrayList
  *
  * @author Sascha Koehler <*****@*****.**>,
  *         Sebastian Diel <*****@*****.**>
  * @since 28.02.2013
  */
 public function SilvercartMenus()
 {
     $silvercartMenus = new ArrayList();
     $menuItems = CMSMenu::get_viewable_menu_items();
     $hiddenMenus = SilvercartConfig::getHiddenRegisteredMenus();
     foreach (SilvercartConfig::getRegisteredMenus() as $menu) {
         if (in_array($menu['code'], $hiddenMenus)) {
             continue;
         }
         $modelAdmins = new ArrayList();
         foreach ($menuItems as $code => $menuItem) {
             if (isset($menuItem->controller) && $this->owner->hasMethod('alternateMenuDisplayCheck') && !$this->owner->alternateMenuDisplayCheck($menuItem->controller)) {
                 continue;
             }
             if (empty($menuItem->controller)) {
                 continue;
             }
             if (in_array($menuItem->controller, self::$model_admins_to_ignore)) {
                 continue;
             }
             $menuCode = Config::inst()->get($menuItem->controller, 'menuCode');
             $menuSection = Config::inst()->get($menuItem->controller, 'menuSection');
             $menuSortIndex = Config::inst()->get($menuItem->controller, 'menuSortIndex');
             $url_segment = Config::inst()->get($menuItem->controller, 'url_segment');
             if ($menuCode == $menu['code'] || is_null($menuCode) && $menu['code'] == 'default') {
                 $defaultTitle = LeftAndMain::menu_title_for_class($menuItem->controller);
                 $title = _t("{$menuItem->controller}.MENUTITLE", $defaultTitle);
                 $linkingmode = "";
                 if (strpos($this->owner->Link(), $menuItem->url) !== false) {
                     if ($this->owner->Link() == $menuItem->url) {
                         $linkingmode = "current";
                         // default menu is the one with a blank {@link url_segment}
                     } elseif ($url_segment == '') {
                         if ($this->owner->Link() == $this->owner->stat('url_base') . '/') {
                             $linkingmode = "current";
                         }
                     } else {
                         $linkingmode = "current";
                     }
                 }
                 if (empty($menuSection)) {
                     $menuSection = 'base';
                 }
                 if (empty($menuSortIndex)) {
                     $menuSortIndex = 1000;
                 }
                 $modelAdmins->push(new ArrayData(array("MenuItem" => $menuItem, "Title" => Convert::raw2xml($title), "Code" => $code, 'MenuCode' => $menu['code'], "IsSection" => false, "Section" => $menuSection, "SortIndex" => $menuSortIndex, "Link" => $menuItem->url, "LinkingMode" => $linkingmode)));
                 unset($menuItems[$code]);
             }
         }
         $modelAdmins = $modelAdmins->sort('SortIndex', 'ASC');
         if ($modelAdmins->exists()) {
             $menu['name'] = _t('SilvercartStoreAdminMenu.' . strtoupper($menu['code']), $menu['name']);
             $silvercartMenus->push(new DataObject(array('name' => $menu['name'], 'code' => $menu['code'], 'Code' => $menu['code'], 'ModelAdmins' => $modelAdmins)));
         }
     }
     return $silvercartMenus;
 }
コード例 #16
0
 public function providePermissions()
 {
     $title = _t("CMSPagesController.MENUTITLE", LeftAndMain::menu_title_for_class('CMSPagesController'));
     return array("CMS_ACCESS_CMSMain" => array('name' => _t('CMSMain.ACCESS', "Access to '{title}' section", array('title' => $title)), 'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access'), 'help' => _t('CMSMain.ACCESS_HELP', 'Allow viewing of the section containing page tree and content. View and edit permissions can be handled through page specific dropdowns, as well as the separate "Content permissions".'), 'sort' => -99));
 }
コード例 #17
0
	function providePermissions() {
		$title = _t("AssetAdmin.MENUTITLE", LeftAndMain::menu_title_for_class($this->class));
		return array(
			"CMS_ACCESS_AssetAdmin" => array(
				'name' => sprintf(_t('CMSMain.ACCESS', "Access to '%s' section"), $title),
				'category' => _t('Permission.CMS_ACCESS_CATEGORY', 'CMS Access')
			)
		);
	}