Fixed permissions field with nested permissions

This commit is contained in:
Matias Griese
2019-11-11 20:30:18 +02:00
parent abaa5f1730
commit c30b2f2d1c
3 changed files with 15 additions and 5 deletions

View File

@@ -1,3 +1,9 @@
# v1.10.0-rc.2
## mm/dd/2019
1. [](#bugfix)
* Fixed `permissions` field with nested permissions
# v1.10.0-rc.1
## 11/06/2019

View File

@@ -5,6 +5,7 @@ namespace Grav\Plugin\Admin\Twig;
use Grav\Common\Data\Data;
use Grav\Common\Grav;
use Grav\Common\Page\Interfaces\PageInterface;
use Grav\Common\Utils;
use Grav\Common\Yaml;
use Grav\Common\Language\Language;
use Twig\Extension\AbstractExtension;
@@ -34,6 +35,7 @@ class AdminTwigExtension extends AbstractExtension
new TwigFilter('fromYaml', [$this, 'fromYamlFilter']),
new TwigFilter('adminNicetime', [$this, 'adminNicetimeFilter']),
new TwigFilter('nested', [$this, 'nestedFilter']),
new TwigFilter('flatten', [$this, 'flattenFilter']),
];
}
@@ -64,6 +66,11 @@ class AdminTwigExtension extends AbstractExtension
return $current;
}
public function flattenFilter($array)
{
return Utils::arrayFlattenDotNotation($array);
}
public function cloneFunc($obj)
{
return clone $obj;

View File

@@ -7,15 +7,13 @@
{% import _self as macro %}
{% set value = (value is null ? field.default : value) %}
{% set value = (value is same as(false) ? 0 : value) %}
{% block global_attributes %}
data-grav-disabled="{{ originalValue is null ? 'true' : 'false' }}"
data-grav-default="{{ field.default|json_encode()|e('html_attr') }}"
{% endblock %}
{% block input %}
{% set value = value|flatten %}
<div class="permissions-container">
{% set permissions = admin.getPermissions %}
{% for index_existing_permission, value_existing_permission in value %}
@@ -26,8 +24,7 @@
{% for permission, type in permissions %}
<div class="permission-container">
{% set permission_segments = permission|split('.') %}
{% set permission_value = value[permission_segments[0]][permission_segments[1]] %}
{% set permission_value = value[permission] ?? null %}
{% if permission_value in ['on', 'true', 1] %}
{% set permission_value = 'true' %}
{% endif %}