Seditio Source
Root |
./othercms/dle15_0/upload/engine/classes/composer/vendor/league/flysystem-aws-s3-v3/PortableVisibilityConverter.php
<?php

declare(strict_types=1);

namespace
League\Flysystem\AwsS3V3;

use
League\Flysystem\Visibility;

class
PortableVisibilityConverter implements VisibilityConverter
{
    private const
PUBLIC_GRANTEE_URI = 'http://acs.amazonaws.com/groups/global/AllUsers';
    private const
PUBLIC_GRANTS_PERMISSION = 'READ';
    private const
PUBLIC_ACL = 'public-read';
    private const
PRIVATE_ACL = 'private';

   
/**
     * @var string
     */
   
private $defaultForDirectories;

    public function
__construct(string $defaultForDirectories = Visibility::PUBLIC)
    {
       
$this->defaultForDirectories = $defaultForDirectories;
    }

    public function
visibilityToAcl(string $visibility): string
   
{
        if (
$visibility === Visibility::PUBLIC) {
            return
self::PUBLIC_ACL;
        }

        return
self::PRIVATE_ACL;
    }

    public function
aclToVisibility(array $grants): string
   
{
        foreach (
$grants as $grant) {
           
$granteeUri = $grant['Grantee']['URI'] ?? null;
           
$permission = $grant['Permission'] ?? null;

            if (
$granteeUri === self::PUBLIC_GRANTEE_URI && $permission === self::PUBLIC_GRANTS_PERMISSION) {
                return
Visibility::PUBLIC;
            }
        }

        return
Visibility::PRIVATE;
    }

    public function
defaultForDirectories(): string
   
{
        return
$this->defaultForDirectories;
    }
}