Linux unitednationsplay.com 3.10.0-1160.45.1.el7.x86_64 #1 SMP Wed Oct 13 17:20:51 UTC 2021 x86_64
nginx/1.20.1
Server IP : 188.130.139.92 & Your IP : 18.188.171.53
Domains :
Cant Read [ /etc/named.conf ]
User : web
Terminal
Auto Root
Create File
Create Folder
Localroot Suggester
Backdoor Destroyer
Readme
/
home /
www /
wb /
vendor /
jms /
serializer /
src /
Exclusion /
Delete
Unzip
Name
Size
Permission
Date
Action
DepthExclusionStrategy.php
1.17
KB
-rw-rw-r--
2022-08-24 15:26
DisjunctExclusionStrategy.php
1.68
KB
-rw-rw-r--
2022-08-24 15:26
ExclusionStrategyInterface.php
635
B
-rw-rw-r--
2022-08-24 15:26
ExpressionLanguageExclusionStrategy.php
2.56
KB
-rw-rw-r--
2022-08-24 15:26
GroupsExclusionStrategy.php
2.86
KB
-rw-rw-r--
2022-08-24 15:26
VersionExclusionStrategy.php
922
B
-rw-rw-r--
2022-08-24 15:26
Save
Rename
<?php declare(strict_types=1); namespace JMS\Serializer\Exclusion; use JMS\Serializer\Context; use JMS\Serializer\Metadata\ClassMetadata; use JMS\Serializer\Metadata\PropertyMetadata; final class GroupsExclusionStrategy implements ExclusionStrategyInterface { public const DEFAULT_GROUP = 'Default'; /** * @var array */ private $groups = []; /** * @var bool */ private $nestedGroups = false; public function __construct(array $groups) { if (empty($groups)) { $groups = [self::DEFAULT_GROUP]; } foreach ($groups as $group) { if (is_array($group)) { $this->nestedGroups = true; break; } } if ($this->nestedGroups) { $this->groups = $groups; } else { foreach ($groups as $group) { $this->groups[$group] = true; } } } public function shouldSkipClass(ClassMetadata $metadata, Context $navigatorContext): bool { return false; } public function shouldSkipProperty(PropertyMetadata $property, Context $navigatorContext): bool { if ($this->nestedGroups) { $groups = $this->getGroupsFor($navigatorContext); if (!$property->groups) { return !in_array(self::DEFAULT_GROUP, $groups); } return $this->shouldSkipUsingGroups($property, $groups); } else { if (!$property->groups) { return !isset($this->groups[self::DEFAULT_GROUP]); } foreach ($property->groups as $group) { if (is_scalar($group) && isset($this->groups[$group])) { return false; } } return true; } } private function shouldSkipUsingGroups(PropertyMetadata $property, array $groups): bool { foreach ($property->groups as $group) { if (in_array($group, $groups)) { return false; } } return true; } public function getGroupsFor(Context $navigatorContext): array { if (!$this->nestedGroups) { return array_keys($this->groups); } $paths = $navigatorContext->getCurrentPath(); $groups = $this->groups; foreach ($paths as $index => $path) { if (!array_key_exists($path, $groups)) { if ($index > 0) { $groups = [self::DEFAULT_GROUP]; } else { $groups = array_filter($groups, 'is_string') ?: [self::DEFAULT_GROUP]; } break; } $groups = $groups[$path]; if (!array_filter($groups, 'is_string')) { $groups += [self::DEFAULT_GROUP]; } } return $groups; } }