File Manager

Current Directory: /home/astoriaah/www/old15/administrator/components/com_akeeba/controllers
Viewing File: /home/astoriaah/www/old15/administrator/components/com_akeeba/controllers/profiles.php
<?php /** * @package AkeebaBackup * @copyright Copyright (c)2009-2014 Nicholas K. Dionysopoulos * @license GNU General Public License version 3, or later * @since 1.3 */ // Protect from unauthorized access defined('_JEXEC') or die(); /** * Controller class for Profiles Administration page * */ class AkeebaControllerProfiles extends AkeebaControllerDefault { public function __construct($config = array()) { parent::__construct($config); $base_path = JPATH_COMPONENT_ADMINISTRATOR . '/plugins'; $model_path = $base_path . '/models'; $view_path = $base_path . '/views'; $this->addModelPath($model_path); $this->addViewPath($view_path); } /** * Copies the selected profile into a new record at the end of the list * */ public function copy() { // CSRF prevention if ($this->csrfProtection) { $this->_csrfProtection(); } /** @var AkeebaModelProfiles $model */ $model = $this->getThisModel(); if ($model->copy()) { // Show a "COPY OK" message $message = JText::_('PROFILE_COPY_OK'); $type = 'message'; $session = JFactory::getSession(); $session->set('profile', $model->getId(), 'akeeba'); } else { // Show message on failure $message = JText::_('PROFILE_COPY_ERROR'); $message .= ' [' . $model->getError() . ']'; $type = 'error'; } // Redirect $this->setRedirect('index.php?option=com_akeeba&view=profiles', $message, $type); } /** * Imports an exported profile .json file */ public function import() { $this->_csrfProtection(); $user = JFactory::getUser(); if (!$user->authorise('akeeba.configure', 'com_akeeba')) { return JError::raiseError(403, JText::_('JERROR_ALERTNOAUTHOR')); } // Get some data from the request $filesInput = JFactory::getApplication()->input->files; $file = $filesInput->get('importfile', array(), 'array'); if (isset($file['name'])) { // Load the file data $data = JFile::read($file['tmp_name']); @unlink($file['tmp_name']); // JSON decode $data = json_decode($data, true); // 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) { $this->setRedirect('index.php?option=com_akeeba&view=profiles', JText::_('COM_AKEEBA_PROFILES_ERR_IMPORT_INVALID'), 'error'); return false; } // Unset the id, if it exists if (array_key_exists('id', $data)) { unset($data['id']); } // Try saving the profile $result = $this->getThisModel()->getTable()->save($data); if ($result) { $this->setRedirect('index.php?option=com_akeeba&view=profiles', JText::_('COM_AKEEBA_PROFILES_MSG_IMPORT_COMPLETE')); } else { $this->setRedirect('index.php?option=com_akeeba&view=profiles', JText::_('COM_AKEEBA_PROFILES_ERR_IMPORT_FAILED'), 'error'); } } else { $this->setRedirect('index.php?option=com_akeeba&view=profiles', JText::_('MSG_UPLOAD_INVALID_REQUEST'), 'error'); return false; } } }