Refs #729 - Fixes CMS permissions, should not show "pages" content by default
This commit is contained in:
parent
2f4603ef58
commit
98e100b377
|
|
@ -358,6 +358,7 @@ class NavigationManager
|
|||
|
||||
/**
|
||||
* Specifies a code of the side menu item in the current navigation context.
|
||||
* If the code is set to TRUE, the first item will be flagged as active.
|
||||
* @param string $sideMenuItemCode Specifies the side menu item code
|
||||
*/
|
||||
public function setContextSideMenu($sideMenuItemCode)
|
||||
|
|
@ -397,6 +398,11 @@ class NavigationManager
|
|||
*/
|
||||
public function isSideMenuItemActive($item)
|
||||
{
|
||||
if ($this->contextSideMenuItemCode === true) {
|
||||
$this->contextSideMenuItemCode = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
return $this->contextOwner == $item->owner && $this->contextSideMenuItemCode == $item->code;
|
||||
}
|
||||
|
||||
|
|
@ -424,9 +430,9 @@ class NavigationManager
|
|||
{
|
||||
$key = $owner.$mainMenuItemCode;
|
||||
|
||||
return array_key_exists($key, $this->contextSidenavPartials) ?
|
||||
$this->contextSidenavPartials[$key] :
|
||||
null;
|
||||
return array_key_exists($key, $this->contextSidenavPartials)
|
||||
? $this->contextSidenavPartials[$key]
|
||||
: null;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
$context = BackendMenu::getContext();
|
||||
|
||||
$contextSidenav = BackendMenu::getContextSidenavPartial($context->owner, $context->mainMenuCode);
|
||||
|
||||
|
||||
if (!$contextSidenav):
|
||||
$sideMenuItems = BackendMenu::listSideMenuItems();
|
||||
if ($sideMenuItems):
|
||||
|
|
@ -11,9 +11,14 @@
|
|||
<div class="layout-relative">
|
||||
<nav class="layout-sidenav" id="layout-sidenav" data-control="sidenav">
|
||||
<ul class="nav">
|
||||
<?php foreach ($sideMenuItems as $sideItemCode=>$item): ?>
|
||||
<li class="<?= BackendMenu::isSideMenuItemActive($item) ? 'active' : null ?>" <?= HTML::attributes($item->attributes) ?>>
|
||||
<a href="<?= $item->url ?>"><i class="<?= $item->icon ?>"></i><?= e(trans($item->label)) ?></a>
|
||||
<?php foreach ($sideMenuItems as $sideItemCode => $item): ?>
|
||||
<li
|
||||
class="<?= BackendMenu::isSideMenuItemActive($item) ? 'active' : null ?>"
|
||||
<?= HTML::attributes($item->attributes) ?>
|
||||
>
|
||||
<a href="<?= $item->url ?>">
|
||||
<i class="<?= $item->icon ?>"></i><?= e(trans($item->label)) ?>
|
||||
</a>
|
||||
<span
|
||||
class="counter <?= $item->counter === null ? 'empty' : null ?>"
|
||||
data-menu-id="<?= e($context->mainMenuCode.'/'.$sideItemCode) ?>"
|
||||
|
|
|
|||
|
|
@ -75,7 +75,7 @@ class ServiceProvider extends ModuleServiceProvider
|
|||
'icon' => 'icon-puzzle-piece',
|
||||
'url' => 'javascript:;',
|
||||
'attributes' => ['data-menu-item'=>'components'],
|
||||
'permissions' => ['cms.manage_pages', 'cms:manage_layouts']
|
||||
'permissions' => ['cms.manage_pages', 'cms.manage_layouts', 'cms.manage_partials']
|
||||
]
|
||||
]
|
||||
|
||||
|
|
|
|||
|
|
@ -48,7 +48,7 @@ class Index extends Controller
|
|||
{
|
||||
parent::__construct();
|
||||
|
||||
BackendMenu::setContext('October.Cms', 'cms', 'pages');
|
||||
BackendMenu::setContext('October.Cms', 'cms', true);
|
||||
|
||||
try {
|
||||
if (!($theme = Theme::getEditTheme())) {
|
||||
|
|
|
|||
|
|
@ -1,24 +1,74 @@
|
|||
<?php
|
||||
$visibleCount = 0;
|
||||
?>
|
||||
<div class="layout control-scrollpanel" id="cms-side-panel">
|
||||
<div class="layout-cell">
|
||||
<div class="layout-relative fix-button-container">
|
||||
<form class="layout" data-content-id="pages" data-template-type="page" data-type-icon="oc-icon-copy" onsubmit="return false">
|
||||
<?= $this->widget->pageList->render() ?>
|
||||
</form>
|
||||
<form class="layout hide" data-content-id="partials" data-template-type="partial" data-type-icon="oc-icon-tags" onsubmit="return false">
|
||||
<?= $this->widget->partialList->render() ?>
|
||||
</form>
|
||||
<form class="layout hide" data-content-id="layouts" data-template-type="layout" data-type-icon="oc-icon-th-large" onsubmit="return false">
|
||||
<?= $this->widget->layoutList->render() ?>
|
||||
</form>
|
||||
<form class="layout hide" data-content-id="content" data-template-type="content" data-type-icon="oc-icon-file-text-o" onsubmit="return false">
|
||||
<?= $this->widget->contentList->render() ?>
|
||||
</form>
|
||||
<form class="layout hide" data-content-id="assets" data-template-type="asset" data-type-icon="oc-icon-file-text-o" onsubmit="return false">
|
||||
<?= $this->widget->assetList->render() ?>
|
||||
</form>
|
||||
<form class="layout hide" data-content-id="components" onsubmit="return false" id="cms-component-list">
|
||||
<?= $this->widget->componentList->render() ?>
|
||||
</form>
|
||||
<?php if ($this->user->hasAccess('cms.manage_pages')): ?>
|
||||
<!-- Pages -->
|
||||
<form
|
||||
class="layout <?= ++$visibleCount == 1 ? '' : 'hide' ?>"
|
||||
data-content-id="pages"
|
||||
data-template-type="page"
|
||||
data-type-icon="oc-icon-copy"
|
||||
onsubmit="return false">
|
||||
<?= $this->widget->pageList->render() ?>
|
||||
</form>
|
||||
<?php endif ?>
|
||||
<?php if ($this->user->hasAccess('cms.manage_partials')): ?>
|
||||
<!-- Partials -->
|
||||
<form
|
||||
class="layout <?= ++$visibleCount == 1 ? '' : 'hide' ?>"
|
||||
data-content-id="partials"
|
||||
data-template-type="partial"
|
||||
data-type-icon="oc-icon-tags"
|
||||
onsubmit="return false">
|
||||
<?= $this->widget->partialList->render() ?>
|
||||
</form>
|
||||
<?php endif ?>
|
||||
<?php if ($this->user->hasAccess('cms.manage_layouts')): ?>
|
||||
<!-- Layouts -->
|
||||
<form
|
||||
class="layout <?= ++$visibleCount == 1 ? '' : 'hide' ?>"
|
||||
data-content-id="layouts"
|
||||
data-template-type="layout"
|
||||
data-type-icon="oc-icon-th-large"
|
||||
onsubmit="return false">
|
||||
<?= $this->widget->layoutList->render() ?>
|
||||
</form>
|
||||
<?php endif ?>
|
||||
<?php if ($this->user->hasAccess('cms.manage_content')): ?>
|
||||
<!-- Content -->
|
||||
<form
|
||||
class="layout <?= ++$visibleCount == 1 ? '' : 'hide' ?>"
|
||||
data-content-id="content"
|
||||
data-template-type="content"
|
||||
data-type-icon="oc-icon-file-text-o"
|
||||
onsubmit="return false">
|
||||
<?= $this->widget->contentList->render() ?>
|
||||
</form>
|
||||
<?php endif ?>
|
||||
<?php if ($this->user->hasAccess('cms.manage_assets')): ?>
|
||||
<!-- Assets -->
|
||||
<form
|
||||
class="layout <?= ++$visibleCount == 1 ? '' : 'hide' ?>"
|
||||
data-content-id="assets"
|
||||
data-template-type="asset"
|
||||
data-type-icon="oc-icon-file-text-o"
|
||||
onsubmit="return false">
|
||||
<?= $this->widget->assetList->render() ?>
|
||||
</form>
|
||||
<?php endif ?>
|
||||
<?php if ($this->user->hasAccess(['cms.manage_pages', 'cms.manage_layouts', 'cms.manage_partials'])): ?>
|
||||
<!-- Components -->
|
||||
<form
|
||||
class="layout <?= ++$visibleCount == 1 ? '' : 'hide' ?>"
|
||||
data-content-id="components"
|
||||
onsubmit="return false"
|
||||
id="cms-component-list">
|
||||
<?= $this->widget->componentList->render() ?>
|
||||
</form>
|
||||
<?php endif ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue