| Server IP : 104.21.84.107 / Your IP : 104.23.243.197 Web Server : Apache/2.4.63 (Ubuntu) System : Linux adminpruebas-Virtual-Machine 6.14.0-37-generic #37-Ubuntu SMP PREEMPT_DYNAMIC Fri Nov 14 22:10:32 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 8.4.5 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/pregrados/ingenieria-procesos/plugins/system/sourcerer/src/ |
Upload File : |
<?php
/**
* @package Sourcerer
* @version 10.0.4
*
* @author Peter van Westen <[email protected]>
* @link https://regularlabs.com
* @copyright Copyright © 2023 Regular Labs All Rights Reserved
* @license GNU General Public License version 2 or later
*/
namespace RegularLabs\Plugin\System\Sourcerer;
defined('_JEXEC') or die;
use Joomla\CMS\Factory as JFactory;
class Security
{
protected static $security = null;
public static function get(): object
{
if ( ! is_null(self::$security))
{
return self::$security;
}
self::$security = (object) [
'pass' => true,
'pass_css' => true,
'pass_js' => true,
'pass_php' => true,
];
return self::$security;
}
public static function set(object|false|null $article = null): void
{
if ( ! isset($article->created_by))
{
return;
}
$params = Params::get();
$security_level = (array) $params->articles_security_level;
$security_css = $params->articles_security_level_default_css
? (array) $params->articles_security_level
: (array) $params->articles_security_level_css;
$security_js = $params->articles_security_level_default_js
? (array) $params->articles_security_level
: (array) $params->articles_security_level_js;
$security_php = $params->articles_security_level_default_php
? (array) $params->articles_security_level
: (array) $params->articles_security_level_php;
$user = JFactory::getApplication()->getIdentity() ?: JFactory::getUser();
$table = $user->getTable();
if ($table->load($article->created_by))
{
$user = JFactory::getUser($article->created_by);
}
$groups = $user->getAuthorisedGroups();
array_unshift($groups, -1);
// Set if security is passed
// passed = creator is equal or higher than security group level
$security = (object) [];
$pass = array_intersect($security_level, $groups);
$security->pass = ( ! empty($pass));
$pass = array_intersect($security_css, $groups);
$security->pass_css = ( ! empty($pass));
$pass = array_intersect($security_js, $groups);
$security->pass_js = ( ! empty($pass));
$pass = array_intersect($security_php, $groups);
$security->pass_php = ( ! empty($pass));
self::$security = $security;
}
}