PATH:
home
/
vcomplcotr
/
www
/
wp-content
/
plugins
/
akeebabackupwp
/
app
/
Solo
/
Model
<?php /** * @package solo * @copyright Copyright (c)2014-2026 Nicholas K. Dionysopoulos / Akeeba Ltd * @license GNU General Public License version 3, or later */ namespace Solo\Model; use Akeeba\Engine\Platform; use Awf\Container\Container; use Awf\Mvc\DataModel; use Awf\Text\Language; use Awf\Text\Text; use RuntimeException; class Profiles extends DataModel { /** * Public constructor * * @param Container $container Configuration parameters */ public function __construct(?Container $container = null, ?Language $language = null) { $this->tableName = '#__ak_profiles'; $this->idFieldName = 'id'; parent::__construct($container, $language); $this->addBehaviour('filters'); } /** * Prevent the deletion of the default backup profile * * @param integer $id The profile ID which is about to be deleted * * @throws \RuntimeException When some wise guy tries to delete the default backup profile */ public function onBeforeDelete($id) { if ($id == 1) { throw new RuntimeException(Text::_('COM_AKEEBA_PROFILE_ERR_CANNOTDELETEDEFAULT'), 403); } // If you're deleting the current backup profile we have to switch to the default profile (#1) $activeProfile = Platform::getInstance()->get_active_profile(); if ($id == $activeProfile) { throw new RuntimeException(Text::sprintf('COM_AKEEBA_PROFILE_ERR_CANNOTDELETEACTIVE', $id), 500); } } /** * Check the data for validity. * * @return DataModel Self, for chaining * * @throws \RuntimeException When the data bound to this record is invalid */ public function check() { if (!$this->description) { throw new RuntimeException(Text::_('COM_AKEEBA_PROFILE_ERR_NODESCRIPTION')); } if (!$this->quickicon) { $this->quickicon = 0; } return parent::check(); } /** * Save a profile from imported configuration data. The $data array must contain the keys description (profile * description), configuration (engine configuration INI data) and filters (inclusion and inclusion filters JSON * configuration data). * * @param array $data See above * * @returns void * * @throws RuntimeException When an iport error occurs */ public function import($data) { // Check for data validity $isValid = is_array($data) && !empty($data) && array_key_exists('description', $data) && array_key_exists('configuration', $data) && array_key_exists('filters', $data); if (!$isValid) { throw new RuntimeException(Text::_('COM_AKEEBA_PROFILES_ERR_IMPORT_INVALID')); } // Unset the id, if it exists if (array_key_exists('id', $data)) { unset($data['id']); } $data['akeeba.flag.confwiz'] = 1; // Try saving the profile $result = $this->save($data); if (!$result) { throw new RuntimeException(Text::_('COM_AKEEBA_PROFILES_ERR_IMPORT_FAILED')); } } /** * Resets the configuration and filters of a backup profile without touching its ID, name, or description. * * @return bool True on success * @since 9.0.3 */ public function resetConfiguration(int $pk): bool { $this->findOrFail($pk); $this->save( [ 'configuration' => '', 'filters' => '', ] ); return true; } }
[+]
..
[-] Profiles.php
[edit]
[-] Fsfilters.php
[edit]
[-] Phpinfo.php
[edit]
[-] Manage.php
[edit]
[-] Dbfilters.php
[edit]
[-] Update.php
[edit]
[-] Main.php
[edit]
[-] Backup.php
[edit]
[-] Wizard.php
[edit]
[+]
Exception
[-] Stats.php
[edit]
[-] Sftpbrowser.php
[edit]
[-] Log.php
[edit]
[-] Ftpbrowser.php
[edit]
[-] Oauth2.php
[edit]
[+]
OAuth2
[-] Sysconfig.php
[edit]
[-] Configuration.php
[edit]
[+]
Mixin
[-] Browser.php
[edit]