⚝
One Hat Cyber Team
⚝
Your IP:
216.73.216.97
Server IP:
41.128.143.86
Server:
Linux host.raqmix.cloud 6.8.0-1025-azure #30~22.04.1-Ubuntu SMP Wed Mar 12 15:28:20 UTC 2025 x86_64
Server Software:
Apache
PHP Version:
8.3.23
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
usr
/
share
/
psa-horde
/
mnemo
/
View File Name :
data.php
* @package Mnemo */ require_once __DIR__ . '/lib/Application.php'; $app_ob = Horde_Registry::appInit('mnemo'); if (!$conf['menu']['import_export']) { require MNEMO_BASE . '/index.php'; exit; } /* Importable file types. */ $file_types = array('csv' => _("CSV"), 'vnote' => _("vNote")); /* Templates for the different import steps. */ $templates = array( Horde_Data::IMPORT_CSV => array($registry->get('templates', 'horde') . '/data/csvinfo.inc'), Horde_Data::IMPORT_MAPPED => array($registry->get('templates', 'horde') . '/data/csvmap.inc'), ); if ($GLOBALS['injector']->getInstance('Horde_Core_Perms')->hasAppPermission('max_notes') !== true && $GLOBALS['injector']->getInstance('Horde_Core_Perms')->hasAppPermission('max_notes') <= Mnemo::countMemos()) { Horde::permissionDeniedError( 'mnemo', 'max_notes', sprintf(_("You are not allowed to create more than %d notes."), $GLOBALS['injector']->getInstance('Horde_Core_Perms')->hasAppPermission('max_notes')) ); $templates[Horde_Data::IMPORT_FILE] = array(MNEMO_TEMPLATES . '/data/export.inc'); } else { $templates[Horde_Data::IMPORT_FILE] = array(MNEMO_TEMPLATES . '/data/import.inc', MNEMO_TEMPLATES . '/data/export.inc'); } /* Field/clear name mapping. */ $app_fields = array('body' => _("Memo Text"), 'tags' => _("Tags")); /* Initial values. */ $param = array('file_types' => $file_types); $import_format = Horde_Util::getFormData('import_format', ''); $import_step = Horde_Util::getFormData('import_step', 0) + 1; $next_step = Horde_Data::IMPORT_FILE; $actionID = Horde_Util::getFormData('actionID'); $storage = $injector->getInstance('Horde_Core_Data_Storage'); /* Loop through the action handlers. */ switch ($actionID) { case Horde_Data::IMPORT_FILE: $storage->set('target', Horde_Util::getFormData('notepad_target')); break; } if ($import_format) { $data = null; try { $data = $injector->getInstance('Horde_Core_Factory_Data')->create($import_format, array('cleanup' => array($app_ob, 'cleanupData'))); $next_step = $data->nextStep($actionID, $param); } catch (Horde_Exception $e) { if ($data) { $notification->push($e, 'horde.error'); $next_step = $data->cleanup(); } else { $notification->push(_("This file format is not supported."), 'horde.error'); $next_step = Horde_Data::IMPORT_FILE; } } } /* We have a final result set. */ if (is_array($next_step)) { /* Create a Mnemo storage instance. */ $memo_storage = $GLOBALS['injector']->getInstance('Mnemo_Factory_Driver')->create($storage->get('target')); $max_memos = $GLOBALS['injector']->getInstance('Horde_Core_Perms')->hasAppPermission('max_notes'); $num_memos = Mnemo::countMemos(); foreach ($next_step as $row) { if ($max_memos !== true && $num_memos >= $max_memos) { Horde::permissionDeniedError( 'mnemo', 'max_notes', sprintf(_("You are not allowed to create more than %d notes."), $GLOBALS['injector']->getInstance('Horde_Core_Perms')->hasAppPermission('max_notes')) ); break; } /* Check if we need to convert from iCalendar data into an array. */ if ($row instanceof Horde_Icalendar_vnote) { $row = $storage->fromiCalendar($row); } foreach ($app_fields as $field => $null) { if (!isset($row[$field])) { $row[$field] = ''; } } /* Default the tags if there isn't one. */ if (empty($row['tags'])) { $row['tags'] = ''; } /* Parse out the first line as the description if necessary. */ if (empty($row['desc'])) { $tmp = explode("\n", $row['body'], 2); $row['desc'] = array_shift($tmp); } try { $result = $memo_storage->add($row['desc'], $row['body'], $row['tags']); } catch (Mnemo_Exception $e) { $haveError = $e->getMessage(); break; } $note = $memo_storage->get($result); /* If we have created or modified dates for the note, set them * correctly in the history log. */ if (!empty($row['created'])) { $history = $GLOBALS['injector']->getInstance('Horde_History'); if (is_array($row['created'])) { $row['created'] = $row['created']['ts']; } $history->log('mnemo:' . $storage->get('target') . ':' . $note['uid'], array('action' => 'add', 'ts' => $row['created']), true); } if (!empty($row['modified'])) { $history = $GLOBALS['injector']->getInstance('Horde_History'); if (is_array($row['modified'])) { $row['modified'] = $row['modified']['ts']; } $history->log('mnemo:' . $storage->get('target') . ':' . $note['uid'], array('action' => 'modify', 'ts' => $row['modified']), true); } $num_memos++; } if (!count($next_step)) { $notification->push(sprintf(_("The %s file didn't contain any notes."), $file_types[$storage->get('format')]), 'horde.error'); } elseif (!empty($haveError)) { $notification->push(sprintf(_("There was an error importing the data: %s"), $haveError), 'horde.error'); } else { $notification->push(sprintf(_("%s file successfully imported"), $file_types[$storage->get('format')]), 'horde.success'); } $next_step = $data->cleanup(); } $page_output->header(array( 'title' => _("Import/Export Notes") )); $notification->notify(); if (isset($templates[$next_step])) { foreach ($templates[$next_step] as $template) { require $template; } } $page_output->footer();