/**
  * Acción que permite al usuario agregar una nueva firma electrónica
  * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
  * @version 2015-09-22
  */
 public function agregar()
 {
     if (isset($_POST['submit'])) {
         // verificar que se haya podido subir el archivo con la firma
         if (!isset($_FILES['firma']) or $_FILES['firma']['error']) {
             \sowerphp\core\Model_Datasource_Session::message('Ocurrió un error al subir la firma', 'error');
             return;
         }
         // cargar firma
         $data = file_get_contents($_FILES['firma']['tmp_name']);
         try {
             $Firma = new \sasco\LibreDTE\FirmaElectronica(['data' => $data, 'pass' => $_POST['contrasenia']]);
         } catch (\sowerphp\core\Exception $e) {
             \sowerphp\core\Model_Datasource_Session::message($e->getMessage(), 'error');
             return;
         }
         // si todo fue ok se crea el objeto firma para la bd y se guarda
         $FirmaElectronica = new Model_FirmaElectronica($Firma->getID());
         $FirmaElectronica->nombre = $Firma->getName();
         $FirmaElectronica->email = $Firma->getEmail();
         $FirmaElectronica->desde = $Firma->getFrom();
         $FirmaElectronica->hasta = $Firma->getTo();
         $FirmaElectronica->emisor = $Firma->getIssuer();
         $FirmaElectronica->usuario = $this->Auth->User->id;
         $FirmaElectronica->archivo = base64_encode($data);
         $FirmaElectronica->contrasenia = \website\Dte\Utility_Data::encrypt($_POST['contrasenia']);
         try {
             $FirmaElectronica->save();
             \sowerphp\core\Model_Datasource_Session::message('Se asoció la firma electrónica de ' . $Firma->getName() . ' (' . $Firma->getID() . ') al usuario ' . $this->Auth->User->usuario, 'ok');
             $this->redirect('/dte/admin/firma_electronicas');
         } catch (\sowerphp\core\Exception_Model_Datasource_Database $e) {
             \sowerphp\core\Model_Datasource_Session::message('Ocurrió un error al guardar la firma.<br/>' . $e->getMessage(), 'error');
             return;
         }
     }
 }
Esempio n. 2
0
 * Debería haber recibido una copia de la Licencia Pública General GNU
 * junto a este programa.
 * En caso contrario, consulte <http://www.gnu.org/licenses/gpl.html>.
 */
/**
 * @file 019-firma_datos.php
 *
 * Ejemplo que muestra como obtener los datos de la persona dueña de la firma
 * electrónica
 *
 * @author Esteban De La Fuente Rubio, DeLaF (esteban[at]sasco.cl)
 * @version 2015-09-22
 */
// respuesta en texto plano
header('Content-type: text/plain');
// incluir archivos php de la biblioteca y configuraciones
include 'inc.php';
// objeto de la firma
$Firma = new \sasco\LibreDTE\FirmaElectronica($config['firma']);
// mostrar datos de la persona dueña de la firma
echo 'RUN    : ', $Firma->getID(), "\n";
echo 'Nombre : ', $Firma->getName(), "\n";
echo 'Email  : ', $Firma->getEmail(), "\n";
echo 'Desde  : ', $Firma->getFrom(), "\n";
echo 'Hasta  : ', $Firma->getTo(), "\n";
echo 'Emisor : ', $Firma->getIssuer(), "\n\n\n";
print_r($Firma->getData());
// si hubo errores mostrar
foreach (\sasco\LibreDTE\Log::readAll() as $error) {
    echo $error, "\n";
}