Example #1
0
 public static function send($viewPath, $data, $callback)
 {
     $config = Bootstrap::get('config');
     $mailer = Bootstrap::get('mailer');
     if (!$mailer) {
         throw new InvalidArgumentException(__t('mail_configuration_no_defined'));
     }
     $DirectusSettingsTableGateway = new \Zend\Db\TableGateway\TableGateway('directus_settings', Bootstrap::get('zendDb'));
     $rowSet = $DirectusSettingsTableGateway->select();
     $settings = [];
     foreach ($rowSet as $setting) {
         $settings[$setting['collection']][$setting['name']] = $setting['value'];
     }
     $instance = new static($mailer, $settings);
     $message = Swift_Message::newInstance();
     // default mail from address
     $mailConfig = $config['mail'];
     $message->setFrom($mailConfig['from']);
     call_user_func($callback, $message);
     if ($message->getBody() == null) {
         // Slim Extras View twig act weird on this version
         $viewContent = $instance->getViewContent($viewPath, $data);
         $message->setBody($viewContent, 'text/html');
     }
     $instance->sendMessage($message);
 }
Example #2
0
 public function __construct($mailer)
 {
     $this->mailer = $mailer;
     $DirectusSettingsTableGateway = new \Zend\Db\TableGateway\TableGateway('directus_settings', Bootstrap::get('zendDb'));
     $rowSet = $DirectusSettingsTableGateway->select();
     foreach ($rowSet as $setting) {
         $this->settings[$setting['collection']][$setting['name']] = $setting['value'];
     }
 }
Example #3
0
 public function __construct()
 {
     parent::__construct(false);
     // @todo: global config object
     $DirectusSettingsTableGateway = new \Zend\Db\TableGateway\TableGateway('directus_settings', Bootstrap::get('zendDb'));
     $rowSet = $DirectusSettingsTableGateway->select();
     foreach ($rowSet as $setting) {
         $this->settings[$setting['collection']][$setting['name']] = $setting['value'];
     }
     $this->setFrom('*****@*****.**', 'Directus');
     $this->addReplyTo('*****@*****.**', 'No Reply');
     $this->headers[] = 'X-Mailer: PHP/' . phpversion();
     $this->headers[] = 'MIME-Version: 1.0';
     $this->ContentType = 'text/html';
 }
Example #4
0
// debug helper
$app->post("/{$v}/auth/forgot-password/?", function () use($app, $acl, $ZendDb) {
    if (!isset($_POST['email'])) {
        return JsonView::render(array('success' => false, 'message' => 'Invalid email address.'));
    }
    $DirectusUsersTableGateway = new DirectusUsersTableGateway($acl, $ZendDb);
    $user = $DirectusUsersTableGateway->findOneBy('email', $_POST['email']);
    if (false === $user) {
        return JsonView::render(array('success' => false, 'message' => "An account with that email address doesn't exist."));
    }
    $password = uniqid();
    $set = array();
    $set['salt'] = uniqid();
    $set['password'] = Auth::hashPassword($password, $set['salt']);
    // Skip ACL
    $DirectusUsersTableGateway = new \Zend\Db\TableGateway\TableGateway('directus_users', $ZendDb);
    $affectedRows = $DirectusUsersTableGateway->update($set, array('id' => $user['id']));
    if (1 !== $affectedRows) {
        return JsonView::render(array('success' => false));
    }
    $mail = new Directus\Mail\Mailer();
    $mail->send(new Directus\Mail\ForgotPasswordMail($user['email'], $password));
    $success = true;
    return JsonView::render(array('success' => $success));
})->name('auth_permissions');
// debug helper
$app->get("/{$v}/auth/permissions/?", function () use($app, $acl) {
    if ('production' === DIRECTUS_ENV) {
        return $app->halt('404');
    }
    $groupPrivileges = $acl->getGroupPrivileges();
<?php

/**
 * Issue SELECT command through adapter using name based container paramaterization
 */
$adapter = (include file_exists('bootstrap.php') ? 'bootstrap.php' : 'bootstrap.dist.php');
refresh_data($adapter);
$artistTable = new Zend\Db\TableGateway\TableGateway('artist', $adapter);
$rowset = $artistTable->select(array('id' => 2));
$row = $rowset->current();
$name = $row['name'];
$name2 = $row->name;
assert_example_works($name == 'Linkin Park' && $name2 == 'Linkin Park');
Example #6
0
    $app->halt(200, __t('password_reset_new_temporary_password_sent'));
})->name('auth_reset_password');
$app->post("/{$v}/auth/forgot-password/?", function () use($app, $acl, $ZendDb) {
    if (!isset($_POST['email'])) {
        return JsonView::render(['success' => false, 'message' => __t('password_forgot_invalid_email')]);
    }
    $DirectusUsersTableGateway = new DirectusUsersTableGateway($acl, $ZendDb);
    $user = $DirectusUsersTableGateway->findOneBy('email', $_POST['email']);
    if (false === $user) {
        return JsonView::render(['success' => false, 'message' => __t('password_forgot_no_account_found')]);
    }
    $set = [];
    $set['reset_token'] = StringUtils::randomString(30);
    $set['reset_expiration'] = DateUtils::inDays(2);
    // Skip ACL
    $DirectusUsersTableGateway = new \Zend\Db\TableGateway\TableGateway('directus_users', $ZendDb);
    $affectedRows = $DirectusUsersTableGateway->update($set, ['id' => $user['id']]);
    if (1 !== $affectedRows) {
        return JsonView::render(['success' => false]);
    }
    $data = ['reset_token' => $set['reset_token']];
    Mail::send('mail/reset-password.twig.html', $data, function ($message) use($user) {
        $message->setSubject(__t('password_forgot_password_reset_email_subject'));
        $message->setTo($user['email']);
    });
    $success = true;
    return JsonView::render(['success' => $success]);
})->name('auth_permissions');
// debug helper
$app->get("/{$v}/auth/permissions/?", function () use($app, $acl) {
    if ('production' === DIRECTUS_ENV) {
Example #7
0
 private function getTableGateway()
 {
     $table = new \Zend\Db\TableGateway\TableGateway("", $this->adapter, null);
     $table->getAdapter()->getDriver()->getConnection()->execute("SET search_path TO " . $this->sm->get('schema'));
     return $table;
 }