summaryrefslogtreecommitdiff
path: root/library
diff options
context:
space:
mode:
authorGreg Roach <fisharebest@gmail.com>2015-01-31 08:16:12 +0000
committerGreg Roach <fisharebest@gmail.com>2015-01-31 08:16:12 +0000
commitb928ab401ccc5351c36c5b6898df2c3e141a1dda (patch)
tree7ffb2c7800a6a4a65920b355759b0485aa042641 /library
parentc1d05bfad3191cacf117a24222936ded515e9960 (diff)
downloadwebtrees-b928ab401ccc5351c36c5b6898df2c3e141a1dda.tar.gz
webtrees-b928ab401ccc5351c36c5b6898df2c3e141a1dda.tar.bz2
webtrees-b928ab401ccc5351c36c5b6898df2c3e141a1dda.zip
Manager access on admin pages
Diffstat (limited to 'library')
-rw-r--r--library/WT/Theme/Administration.php57
1 files changed, 44 insertions, 13 deletions
diff --git a/library/WT/Theme/Administration.php b/library/WT/Theme/Administration.php
index b11e8bebfd..52e2cefa13 100644
--- a/library/WT/Theme/Administration.php
+++ b/library/WT/Theme/Administration.php
@@ -18,6 +18,7 @@
namespace WT\Theme;
+use WT\Auth;
use WT_I18N;
use WT_Menu;
use WT_Tree;
@@ -86,16 +87,40 @@ class Administration extends BaseTheme {
* @return WT_Menu
*/
protected function menuAdminTrees() {
- $submenus = array(
- new WT_Menu(/* I18N: Menu entry */ WT_I18N::translate('Manage family trees'), 'admin_trees_manage.php')
- );
+ return new WT_Menu(/* I18N: Menu entry */ WT_I18N::translate('Family trees'), '#', '', '', array_filter(array(
+ $this->menuAdminTreesManage(),
+ $this->menuAdminTreesSetDefault(),
+ $this->menuAdminTreesMerge(),
+ )));
+ }
+ /**
+ * @return WT_Menu
+ */
+ protected function menuAdminTreesManage() {
+ return new WT_Menu(/* I18N: Menu entry */ WT_I18N::translate('Manage family trees'), 'admin_trees_manage.php');
+ }
+
+ /**
+ * @return WT_Menu
+ */
+ protected function menuAdminTreesMerge() {
if (count(WT_Tree::getAll()) > 1) {
- $submenus[] = new WT_Menu(/* I18N: Menu entry */ WT_I18N::translate('Set the default blocks for new family trees'), 'index_edit.php?gedcom_id=-1');
- $submenus[] = new WT_Menu(/* I18N: Menu entry */ WT_I18N::translate('Merge family trees'), 'admin_trees_merge.php');
+ return new WT_Menu(/* I18N: Menu entry */ WT_I18N::translate('Merge family trees'), 'admin_trees_merge.php');
+ } else {
+ return null;
}
+ }
- return new WT_Menu(/* I18N: Menu entry */ WT_I18N::translate('Family trees'), '#', '', '', $submenus);
+ /**
+ * @return WT_Menu
+ */
+ protected function menuAdminTreesSetDefault() {
+ if (count(WT_Tree::getAll()) > 1) {
+ return new WT_Menu(/* I18N: Menu entry */ WT_I18N::translate('Set the default blocks for new family trees'), 'index_edit.php?gedcom_id=-1');
+ } else {
+ return null;
+ }
}
/**
@@ -137,13 +162,19 @@ class Administration extends BaseTheme {
/** {@inheritdoc} */
protected function primaryMenu() {
- return array(
- $this->menuAdminSite(),
- $this->menuAdminTrees(),
- $this->menuAdminUsers(),
- $this->menuAdminMedia(),
- $this->menuAdminModules(),
- );
+ if (Auth::isAdmin()) {
+ return array(
+ $this->menuAdminSite(),
+ $this->menuAdminTrees(),
+ $this->menuAdminUsers(),
+ $this->menuAdminMedia(),
+ $this->menuAdminModules(),
+ );
+ } else {
+ return array(
+ $this->menuAdminTrees(),
+ );
+ }
}
/** {@inheritdoc} */