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