- Add CloudronStack/output/CloudronPackages-Artifacts/tirreno/ directory and its contents - Includes package manifest, Dockerfile, source code, documentation, and build artifacts - Add tirreno-1761840148.tar.gz as a build artifact - Add tirreno-cloudron-package-1761841304.tar.gz as the Cloudron package - Include all necessary files for the tirreno Cloudron package This adds the complete tirreno Cloudron package artifacts to the repository.
		
			
				
	
	
		
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			91 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
 | 
						|
/**
 | 
						|
 * Tirreno ~ Open source user analytics
 | 
						|
 * Copyright (c) Tirreno Technologies Sàrl (https://www.tirreno.com)
 | 
						|
 *
 | 
						|
 * Licensed under GNU Affero General Public License version 3 of the or any later version.
 | 
						|
 * For full copyright and license information, please see the LICENSE
 | 
						|
 * Redistributions of files must retain the above copyright notice.
 | 
						|
 *
 | 
						|
 * @copyright     Copyright (c) Tirreno Technologies Sàrl (https://www.tirreno.com)
 | 
						|
 * @license       https://opensource.org/licenses/AGPL-3.0 AGPL License
 | 
						|
 * @link          https://www.tirreno.com Tirreno(tm)
 | 
						|
 */
 | 
						|
 | 
						|
namespace Models\Enrichment;
 | 
						|
 | 
						|
class Base {
 | 
						|
    public function queryParams(): array {
 | 
						|
        $properties = get_object_vars($this);
 | 
						|
        $modifiedArray = [];
 | 
						|
        foreach ($properties as $key => $value) {
 | 
						|
            $modifiedArray[':' . $key] = $value;
 | 
						|
        }
 | 
						|
 | 
						|
        return $modifiedArray;
 | 
						|
    }
 | 
						|
 | 
						|
    public function slimIds(array $ids): array {
 | 
						|
        $filtered = array_filter($ids, static function ($value): bool {
 | 
						|
            return $value !== null;
 | 
						|
        });
 | 
						|
 | 
						|
        return array_unique($filtered);
 | 
						|
    }
 | 
						|
 | 
						|
    public function updateStringByPlaceholders(array $placeholders): string {
 | 
						|
        $transformed = array_map(static function ($item): string {
 | 
						|
            $key = ltrim($item, ':');
 | 
						|
 | 
						|
            return "{$key} = {$item}";
 | 
						|
        }, $placeholders);
 | 
						|
        return implode(', ', $transformed);
 | 
						|
    }
 | 
						|
 | 
						|
    public function validateIP(string $ip): bool {
 | 
						|
        return filter_var($ip, FILTER_VALIDATE_IP) !== false;
 | 
						|
    }
 | 
						|
 | 
						|
    // Validate date
 | 
						|
    public function validateDate(string $date, string $format = 'Y-m-d'): bool {
 | 
						|
        $d = \DateTime::createFromFormat($format, $date);
 | 
						|
 | 
						|
        return $d && $d->format($format) === $date;
 | 
						|
    }
 | 
						|
 | 
						|
    public function validateDates(array $dates): bool {
 | 
						|
        foreach ($dates as $date) {
 | 
						|
            if ($date !== null && !$this->validateDate($date)) {
 | 
						|
                return false;
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        return true;
 | 
						|
    }
 | 
						|
 | 
						|
    public function validateCidr(string $cidr): bool {
 | 
						|
        $parts = explode('/', $cidr);
 | 
						|
        if (count($parts) !== 2) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
 | 
						|
        $ip = $parts[0];
 | 
						|
        $netmask = intval($parts[1]);
 | 
						|
 | 
						|
        if ($netmask < 0) {
 | 
						|
            return false;
 | 
						|
        }
 | 
						|
 | 
						|
        if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
 | 
						|
            return $netmask <= 32;
 | 
						|
        }
 | 
						|
 | 
						|
        if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
 | 
						|
            return $netmask <= 128;
 | 
						|
        }
 | 
						|
 | 
						|
        return false;
 | 
						|
    }
 | 
						|
}
 |