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); }
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']; } }
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'; }
// 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');
$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) {
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; }