Ejemplo n.º 1
0
 public static function sendEmail($args)
 {
     $isEncrypted = \OC_App::isEnabled('files_encryption');
     if (!$isEncrypted || isset($_POST['continue'])) {
         $continue = true;
     } else {
         $continue = false;
     }
     if (\OC_User::userExists($_POST['user']) && $continue) {
         $token = hash('sha256', \OC_Util::generateRandomBytes(30) . \OC_Config::getValue('passwordsalt', ''));
         \OC_Preferences::setValue($_POST['user'], 'owncloud', 'lostpassword', hash('sha256', $token));
         // Hash the token again to prevent timing attacks
         $email = \OC_Preferences::getValue($_POST['user'], 'settings', 'email', '');
         if (!empty($email)) {
             $link = \OC_Helper::linkToRoute('core_lostpassword_reset', array('user' => $_POST['user'], 'token' => $token));
             $link = \OC_Helper::makeURLAbsolute($link);
             $tmpl = new \OC_Template('core/lostpassword', 'email');
             $tmpl->assign('link', $link, false);
             $msg = $tmpl->fetchPage();
             $l = \OC_L10N::get('core');
             $from = \OCP\Util::getDefaultEmailAddress('lostpassword-noreply');
             try {
                 $defaults = new \OC_Defaults();
                 \OC_Mail::send($email, $_POST['user'], $l->t('%s password reset', array($defaults->getName())), $msg, $from, $defaults->getName());
             } catch (Exception $e) {
                 \OC_Template::printErrorPage('A problem occurs during sending the e-mail please contact your administrator.');
             }
             self::displayLostPasswordPage(false, true);
         } else {
             self::displayLostPasswordPage(true, false);
         }
     } else {
         self::displayLostPasswordPage(true, false);
     }
 }
Ejemplo n.º 2
0
 /**
  * @NoAdminRequired
  * @NoCSRFRequired
  * @PublicPage
  */
 public function validateEmail()
 {
     $email = $this->request->getParam('email');
     if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
         return new TemplateResponse('', 'error', array(array('error' => $this->l10n->t('Email address you entered is not valid'))), 'error');
         return new TemplateResponse('', 'error', array('errors' => array(array('error' => $this->l10n->t('Email address you entered is not valid'), 'hint' => ''))), 'error');
     }
     if ($this->pendingreg->find($email)) {
         return new TemplateResponse('', 'error', array('errors' => array(array('error' => $this->l10n->t('There is already a pending registration with this email'), 'hint' => ''))), 'error');
     }
     if ($this->config->getUsersForUserValue('settings', 'email', $email)) {
         return new TemplateResponse('', 'error', array('errors' => array(array('error' => $this->l10n->t('There is an existing user with this email'), 'hint' => ''))), 'error');
     }
     // FEATURE: allow only from specific email domain
     $token = $this->pendingreg->save($email);
     //TODO: check for error
     $link = $this->urlgenerator->linkToRoute('registration.register.verifyToken', array('token' => $token));
     $link = $this->urlgenerator->getAbsoluteURL($link);
     $from = Util::getDefaultEmailAddress('register');
     $res = new TemplateResponse('registration', 'email', array('link' => $link), 'blank');
     $msg = $res->render();
     try {
         $this->mail->sendMail($email, 'ownCloud User', $this->l10n->t('Verify your ownCloud registration request'), $msg, $from, 'ownCloud');
     } catch (\Exception $e) {
         \OC_Template::printErrorPage('A problem occurs during sending the e-mail please contact your administrator.');
         return;
     }
     return new TemplateResponse('registration', 'message', array('msg' => $this->l10n->t('Verification email successfully sent.')), 'guest');
 }
Ejemplo n.º 3
0
 /**
  * @param array $urlParams
  */
 public function __construct(array $urlParams = array())
 {
     parent::__construct('settings', $urlParams);
     $container = $this->getContainer();
     /**
      * Controllers
      */
     $container->registerService('MailSettingsController', function (SimpleContainer $c) {
         return new MailSettingsController($c->query('AppName'), $c->query('Request'), $c->query('L10N'), $c->query('Config'), $c->query('UserSession'), $c->query('Defaults'), $c->query('Mail'), $c->query('DefaultMailAddress'));
     });
     /**
      * Core class wrappers
      */
     $container->registerService('Config', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getConfig();
     });
     $container->registerService('L10N', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getL10N('settings');
     });
     $container->registerService('UserSession', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getUserSession();
     });
     $container->registerService('Mail', function (SimpleContainer $c) {
         return new \OC_Mail();
     });
     $container->registerService('Defaults', function (SimpleContainer $c) {
         return new \OC_Defaults();
     });
     $container->registerService('DefaultMailAddress', function (SimpleContainer $c) {
         return Util::getDefaultEmailAddress('no-reply');
     });
 }
Ejemplo n.º 4
0
 public static function sendMail($path)
 {
     if (!\OCP\User::isLoggedIn()) {
         return;
     }
     $config = \OC::$server->getConfig();
     $user = \OC::$server->getUserSession()->getUser();
     $email = $user->getEMailAddress();
     $displayName = $user->getDisplayName();
     if (strval($displayName) === '') {
         $displayName = $user->getUID();
     }
     \OCP\Util::writeLog('files_antivirus', 'Email: ' . $email, \OCP\Util::DEBUG);
     if (!empty($email)) {
         try {
             $tmpl = new \OCP\Template('files_antivirus', 'notification');
             $tmpl->assign('file', $path);
             $tmpl->assign('host', \OC::$server->getRequest()->getServerHost());
             $tmpl->assign('user', $displayName);
             $msg = $tmpl->fetchPage();
             $from = \OCP\Util::getDefaultEmailAddress('security-noreply');
             $mailer = \OC::$server->getMailer();
             $message = $mailer->createMessage();
             $message->setSubject(\OCP\Util::getL10N('files_antivirus')->t('Malware detected'));
             $message->setFrom([$from => 'ownCloud Notifier']);
             $message->setTo([$email => $displayName]);
             $message->setPlainBody($msg);
             $message->setHtmlBody($msg);
             $mailer->send($message);
         } catch (\Exception $e) {
             \OC::$server->getLogger()->error(__METHOD__ . ', exception: ' . $e->getMessage(), ['app' => 'files_antivirus']);
         }
     }
 }
 /**
  *
  * @param string $sender user id
  */
 public function __construct($sender)
 {
     $this->l = \OC::$server->getL10N('lib');
     $this->senderId = $sender;
     $this->from = \OCP\Util::getDefaultEmailAddress('sharing-noreply');
     $this->replyTo = \OCP\Config::getUserValue($this->senderId, 'settings', 'email', $this->from);
     $this->senderDisplayName = \OCP\User::getDisplayName($this->senderId);
 }
Ejemplo n.º 6
0
 /**
  * @param array $urlParams
  */
 public function __construct(array $urlParams = array())
 {
     parent::__construct('core', $urlParams);
     $container = $this->getContainer();
     /**
      * Controllers
      */
     $container->registerService('LostController', function (SimpleContainer $c) {
         return new LostController($c->query('AppName'), $c->query('Request'), $c->query('URLGenerator'), $c->query('UserManager'), $c->query('Defaults'), $c->query('L10N'), $c->query('Config'), $c->query('SecureRandom'), $c->query('DefaultEmailAddress'), $c->query('IsEncryptionEnabled'), $c->query('Mailer'));
     });
     $container->registerService('UserController', function (SimpleContainer $c) {
         return new UserController($c->query('AppName'), $c->query('Request'), $c->query('UserManager'), $c->query('Defaults'));
     });
     $container->registerService('AvatarController', function (SimpleContainer $c) {
         return new AvatarController($c->query('AppName'), $c->query('Request'), $c->query('AvatarManager'), $c->query('Cache'), $c->query('L10N'), $c->query('UserManager'), $c->query('UserSession'));
     });
     /**
      * Core class wrappers
      */
     $container->registerService('IsEncryptionEnabled', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getEncryptionManager()->isEnabled();
     });
     $container->registerService('URLGenerator', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getURLGenerator();
     });
     $container->registerService('UserManager', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getUserManager();
     });
     $container->registerService('Config', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getConfig();
     });
     $container->registerService('L10N', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getL10N('core');
     });
     $container->registerService('SecureRandom', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getSecureRandom();
     });
     $container->registerService('AvatarManager', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getAvatarManager();
     });
     $container->registerService('UserSession', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getUserSession();
     });
     $container->registerService('Cache', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getCache();
     });
     $container->registerService('Defaults', function () {
         return new \OC_Defaults();
     });
     $container->registerService('Mailer', function (SimpleContainer $c) {
         return $c->query('ServerContainer')->getMailer();
     });
     $container->registerService('DefaultEmailAddress', function () {
         return Util::getDefaultEmailAddress('lostpassword-noreply');
     });
 }
Ejemplo n.º 7
0
 public function __construct(array $urlParams = array())
 {
     parent::__construct('core', $urlParams);
     $container = $this->getContainer();
     /**
      * Controllers
      */
     $container->registerService('LostController', function ($c) {
         return new LostController($c->query('AppName'), $c->query('Request'), $c->query('ServerContainer')->getURLGenerator(), $c->query('ServerContainer')->getUserManager(), new \OC_Defaults(), $c->query('ServerContainer')->getL10N('core'), $c->query('ServerContainer')->getConfig(), $c->query('ServerContainer')->getUserSession(), \OCP\Util::getDefaultEmailAddress('lostpassword-noreply'), \OC_App::isEnabled('files_encryption'));
     });
 }
Ejemplo n.º 8
0
 /**
  *
  * @param string $sender user id (if nothing is set we use the currently logged-in user)
  */
 public function __construct($sender = null)
 {
     $this->l = \OC_L10N::get('core');
     $this->senderId = $sender;
     $this->from = \OCP\Util::getDefaultEmailAddress('sharing-noreply');
     if ($this->senderId) {
         $this->from = \OCP\Config::getUserValue($this->senderId, 'settings', 'email', $this->from);
         $this->senderDisplayName = \OCP\User::getDisplayName($this->senderId);
     } else {
         $this->senderDisplayName = \OCP\User::getDisplayName();
     }
 }
Ejemplo n.º 9
0
 public function __construct(IRequest $request, $baseUri)
 {
     $this->request = $request;
     $this->baseUri = $baseUri;
     $logger = \OC::$server->getLogger();
     $dispatcher = \OC::$server->getEventDispatcher();
     $root = new RootCollection();
     $this->server = new \OCA\DAV\Connector\Sabre\Server($root);
     // Backends
     $authBackend = new Auth(\OC::$server->getSession(), \OC::$server->getUserSession());
     // Set URL explicitly due to reverse-proxy situations
     $this->server->httpRequest->setUrl($this->request->getRequestUri());
     $this->server->setBaseUri($this->baseUri);
     $this->server->addPlugin(new BlockLegacyClientPlugin(\OC::$server->getConfig()));
     $this->server->addPlugin(new Plugin($authBackend, 'ownCloud'));
     $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\DummyGetResponsePlugin());
     $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin('webdav', $logger));
     $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\LockPlugin());
     $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\ListenerPlugin($dispatcher));
     $this->server->addPlugin(new \Sabre\DAV\Sync\Plugin());
     // acl
     $acl = new \Sabre\DAVACL\Plugin();
     $acl->defaultUsernamePath = 'principals/users';
     $this->server->addPlugin($acl);
     // calendar plugins
     $this->server->addPlugin(new \Sabre\CalDAV\Plugin());
     $this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
     $senderEmail = \OCP\Util::getDefaultEmailAddress('no-reply');
     $this->server->addPlugin(new \Sabre\CalDAV\Schedule\Plugin());
     $this->server->addPlugin(new \Sabre\CalDAV\Schedule\IMipPlugin($senderEmail));
     $this->server->addPlugin(new \Sabre\CalDAV\SharingPlugin());
     $this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin());
     $this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin());
     $this->server->addPlugin(new CardDAV\Sharing\Plugin($authBackend, \OC::$server->getRequest()));
     // addressbook plugins
     $this->server->addPlugin(new \OCA\DAV\CardDAV\Plugin());
     // system tags plugins
     $this->server->addPlugin(new \OCA\DAV\SystemTag\SystemTagPlugin(\OC::$server->getSystemTagManager()));
     // Finder on OS X requires Class 2 WebDAV support (locking), since we do
     // not provide locking we emulate it using a fake locking plugin.
     if ($request->isUserAgent(['/WebDAVFS/'])) {
         $this->server->addPlugin(new \OCA\DAV\Connector\Sabre\FakeLockerPlugin());
     }
     // wait with registering these until auth is handled and the filesystem is setup
     $this->server->on('beforeMethod', function () {
         // custom properties plugin must be the last one
         $user = \OC::$server->getUserSession()->getUser();
         if (!is_null($user)) {
             $this->server->addPlugin(new \Sabre\DAV\PropertyStorage\Plugin(new CustomPropertiesBackend($this->server->tree, \OC::$server->getDatabaseConnection(), \OC::$server->getUserSession()->getUser())));
         }
     });
 }
Ejemplo n.º 10
0
 public static function sendMail($path)
 {
     if (!\OCP\User::isLoggedIn()) {
         return;
     }
     $email = \OCP\Config::getUserValue(\OCP\User::getUser(), 'settings', 'email', '');
     \OCP\Util::writeLog('files_antivirus', 'Email: ' . $email, \OCP\Util::DEBUG);
     if (!empty($email)) {
         $defaults = new \OCP\Defaults();
         $tmpl = new \OCP\Template('files_antivirus', 'notification');
         $tmpl->assign('file', $path);
         $tmpl->assign('host', \OCP\Util::getServerHost());
         $tmpl->assign('user', \OCP\User::getDisplayName());
         $msg = $tmpl->fetchPage();
         $from = \OCP\Util::getDefaultEmailAddress('security-noreply');
         \OCP\Util::sendMail($email, \OCP\User::getUser(), \OCP\Util::getL10N('files_antivirus')->t('Malware detected'), $msg, $from, $defaults->getName(), true);
     }
 }
Ejemplo n.º 11
0
 /**
  * Send a mail to test the settings
  */
 public static function sendTestMail()
 {
     \OC_Util::checkAdminUser();
     \OCP\JSON::callCheck();
     $l = \OC::$server->getL10N('settings');
     $email = \OC_Preferences::getValue(\OC_User::getUser(), 'settings', 'email', '');
     if (!empty($email)) {
         $defaults = new \OC_Defaults();
         try {
             \OC_Mail::send($email, \OC_User::getDisplayName(), $l->t('test email settings'), $l->t('If you received this email, the settings seem to be correct.'), \OCP\Util::getDefaultEmailAddress('no-reply'), $defaults->getName());
         } catch (\Exception $e) {
             $message = $l->t('A problem occurred while sending the e-mail. Please revisit your settings.');
             \OC_JSON::error(array("data" => array("message" => $message)));
             exit;
         }
         \OC_JSON::success(array("data" => array("message" => $l->t("Email sent"))));
     } else {
         $message = $l->t('You need to set your user email before being able to send test emails.');
         \OC_JSON::error(array("data" => array("message" => $message)));
     }
 }
 /**
  * Send a mail signaling a user deletion
  * @param \OC\User\User $user
  */
 public function mailUserDeletion(\OC\User\User $user)
 {
     $toAddress = $toName = $this->config->getSystemValue('monitoring_admin_email');
     $theme = new \OC_Defaults();
     $now = new \DateTime();
     $niceNow = date_format($now, 'd/m/Y H:i:s');
     $subject = (string) $this->l->t('%s - User %s just has been deleted (%s)', array($theme->getTitle(), $user->getUID(), $niceNow));
     $html = new \OCP\Template($this->appName, "mail_userdeletion_html", "");
     $html->assign('userUID', $user->getUID());
     $html->assign('datetime', $niceNow);
     $htmlMail = $html->fetchPage();
     $alttext = new \OCP\Template($this->appName, "mail_userdeletion_text", "");
     $alttext->assign('userUID', $user->getUID());
     $alttext->assign('datetime', $niceNow);
     $altMail = $alttext->fetchPage();
     $fromAddress = $fromName = \OCP\Util::getDefaultEmailAddress('owncloud');
     try {
         \OCP\Util::sendMail($toAddress, $toName, $subject, $htmlMail, $fromAddress, $fromName, 1, $altMail);
     } catch (\Exception $e) {
         \OCP\Util::writeLog('user_account_actions', "Can't send mail for user deletion: " . $e->getMessage(), \OCP\Util::ERROR);
     }
 }
Ejemplo n.º 13
0
 /**
  * Send the specified message. Also sets the from address to the value defined in config.php
  * if no-one has been passed.
  *
  * @param Message $message Message to send
  * @return string[] Array with failed recipients. Be aware that this depends on the used mail backend and
  * therefore should be considered
  * @throws \Exception In case it was not possible to send the message. (for example if an invalid mail address
  * has been supplied.)
  */
 public function send(Message $message)
 {
     $debugMode = $this->config->getSystemValue('mail_smtpdebug', false);
     if (sizeof($message->getFrom()) === 0) {
         $message->setFrom([\OCP\Util::getDefaultEmailAddress($this->defaults->getName())]);
     }
     $failedRecipients = [];
     $mailer = $this->getInstance();
     // Enable logger if debug mode is enabled
     if ($debugMode) {
         $mailLogger = new \Swift_Plugins_Loggers_ArrayLogger();
         $mailer->registerPlugin(new \Swift_Plugins_LoggerPlugin($mailLogger));
     }
     $mailer->send($message->getSwiftMessage(), $failedRecipients);
     // Debugging logging
     $logMessage = sprintf('Sent mail to "%s" with subject "%s"', print_r($message->getTo(), true), $message->getSubject());
     $this->logger->debug($logMessage, ['app' => 'core']);
     if ($debugMode && isset($mailLogger)) {
         $this->logger->debug($mailLogger->dump(), ['app' => 'core']);
     }
     return $failedRecipients;
 }
Ejemplo n.º 14
0
 /**
  * @param array $urlParams
  */
 public function __construct(array $urlParams = [])
 {
     parent::__construct('settings', $urlParams);
     $container = $this->getContainer();
     /**
      * Controllers
      */
     $container->registerService('MailSettingsController', function (IContainer $c) {
         return new MailSettingsController($c->query('AppName'), $c->query('Request'), $c->query('L10N'), $c->query('Config'), $c->query('UserSession'), $c->query('Defaults'), $c->query('Mailer'), $c->query('DefaultMailAddress'));
     });
     $container->registerService('EncryptionController', function (IContainer $c) {
         return new EncryptionController($c->query('AppName'), $c->query('Request'), $c->query('L10N'), $c->query('Config'), $c->query('DatabaseConnection'), $c->query('UserManager'), new View(), $c->query('Logger'));
     });
     $container->registerService('AppSettingsController', function (IContainer $c) {
         return new AppSettingsController($c->query('AppName'), $c->query('Request'), $c->query('L10N'), $c->query('Config'), $c->query('ICacheFactory'), $c->query('INavigationManager'), $c->query('IAppManager'), $c->query('OcsClient'));
     });
     $container->registerService('AuthSettingsController', function (IContainer $c) {
         return new AuthSettingsController($c->query('AppName'), $c->query('Request'), $c->query('ServerContainer')->query('OC\\Authentication\\Token\\IProvider'), $c->query('UserManager'), $c->query('ServerContainer')->getSession(), $c->query('ServerContainer')->getSecureRandom(), $c->query('UserId'));
     });
     $container->registerService('SecuritySettingsController', function (IContainer $c) {
         return new SecuritySettingsController($c->query('AppName'), $c->query('Request'), $c->query('Config'));
     });
     $container->registerService('CertificateController', function (IContainer $c) {
         return new CertificateController($c->query('AppName'), $c->query('Request'), $c->query('CertificateManager'), $c->query('SystemCertificateManager'), $c->query('L10N'), $c->query('IAppManager'));
     });
     $container->registerService('GroupsController', function (IContainer $c) {
         return new GroupsController($c->query('AppName'), $c->query('Request'), $c->query('GroupManager'), $c->query('UserSession'), $c->query('IsAdmin'), $c->query('L10N'));
     });
     $container->registerService('UsersController', function (IContainer $c) {
         return new UsersController($c->query('AppName'), $c->query('Request'), $c->query('UserManager'), $c->query('GroupManager'), $c->query('UserSession'), $c->query('Config'), $c->query('IsAdmin'), $c->query('L10N'), $c->query('Logger'), $c->query('Defaults'), $c->query('Mailer'), $c->query('DefaultMailAddress'), $c->query('URLGenerator'), $c->query('OCP\\App\\IAppManager'), $c->query('OCP\\IAvatarManager'));
     });
     $container->registerService('LogSettingsController', function (IContainer $c) {
         return new LogSettingsController($c->query('AppName'), $c->query('Request'), $c->query('Config'), $c->query('L10N'));
     });
     $container->registerService('CheckSetupController', function (IContainer $c) {
         return new CheckSetupController($c->query('AppName'), $c->query('Request'), $c->query('Config'), $c->query('ClientService'), $c->query('URLGenerator'), $c->query('Util'), $c->query('L10N'), $c->query('Checker'));
     });
     /**
      * Middleware
      */
     $container->registerService('SubadminMiddleware', function (IContainer $c) {
         return new SubadminMiddleware($c->query('ControllerMethodReflector'), $c->query('IsSubAdmin'));
     });
     // Execute middlewares
     $container->registerMiddleware('SubadminMiddleware');
     /**
      * Core class wrappers
      */
     $container->registerService('Config', function (IContainer $c) {
         return $c->query('ServerContainer')->getConfig();
     });
     $container->registerService('ICacheFactory', function (IContainer $c) {
         return $c->query('ServerContainer')->getMemCacheFactory();
     });
     $container->registerService('L10N', function (IContainer $c) {
         return $c->query('ServerContainer')->getL10N('settings');
     });
     $container->registerService('GroupManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getGroupManager();
     });
     $container->registerService('UserManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getUserManager();
     });
     $container->registerService('UserSession', function (IContainer $c) {
         return $c->query('ServerContainer')->getUserSession();
     });
     /** FIXME: Remove once OC_User is non-static and mockable */
     $container->registerService('IsAdmin', function (IContainer $c) {
         return \OC_User::isAdminUser(\OC_User::getUser());
     });
     /** FIXME: Remove once OC_SubAdmin is non-static and mockable */
     $container->registerService('IsSubAdmin', function (IContainer $c) {
         $userObject = \OC::$server->getUserSession()->getUser();
         $isSubAdmin = false;
         if ($userObject !== null) {
             $isSubAdmin = \OC::$server->getGroupManager()->getSubAdmin()->isSubAdmin($userObject);
         }
         return $isSubAdmin;
     });
     $container->registerService('Mailer', function (IContainer $c) {
         return $c->query('ServerContainer')->getMailer();
     });
     $container->registerService('Defaults', function (IContainer $c) {
         return new \OC_Defaults();
     });
     $container->registerService('DefaultMailAddress', function (IContainer $c) {
         return Util::getDefaultEmailAddress('no-reply');
     });
     $container->registerService('Logger', function (IContainer $c) {
         return $c->query('ServerContainer')->getLogger();
     });
     $container->registerService('URLGenerator', function (IContainer $c) {
         return $c->query('ServerContainer')->getURLGenerator();
     });
     $container->registerService('ClientService', function (IContainer $c) {
         return $c->query('ServerContainer')->getHTTPClientService();
     });
     $container->registerService('INavigationManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getNavigationManager();
     });
     $container->registerService('IAppManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getAppManager();
     });
     $container->registerService('OcsClient', function (IContainer $c) {
         return $c->query('ServerContainer')->getOcsClient();
     });
     $container->registerService('Util', function (IContainer $c) {
         return new \OC_Util();
     });
     $container->registerService('DatabaseConnection', function (IContainer $c) {
         return $c->query('ServerContainer')->getDatabaseConnection();
     });
     $container->registerService('CertificateManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getCertificateManager();
     });
     $container->registerService('SystemCertificateManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getCertificateManager(null);
     });
     $container->registerService('Checker', function (IContainer $c) {
         /** @var Server $server */
         $server = $c->query('ServerContainer');
         return $server->getIntegrityCodeChecker();
     });
 }
Ejemplo n.º 15
0
 function testGetConfiguredEmailAddressFromConfig()
 {
     OC_Config::setValue('mail_domain', 'example.com');
     OC_Config::setValue('mail_from_address', 'owncloud');
     $email = \OCP\Util::getDefaultEmailAddress("no-reply");
     $this->assertEquals('*****@*****.**', $email);
     OC_Config::deleteKey('mail_domain');
     OC_Config::deleteKey('mail_from_address');
 }
 /**
  * inform recipient about public link share
  *
  * @param string $recipient recipient email address
  * @param string $filename the shared file
  * @param string $link the public link
  * @param int $expiration expiration date (timestamp)
  * @return array $result of failed recipients
  */
 public function sendLinkShareMail($recipient, $filename, $link, $expiration)
 {
     $subject = (string) $this->l->t('%s shared »%s« with you', [$this->senderDisplayName, $filename]);
     list($htmlBody, $textBody) = $this->createMailBody($filename, $link, $expiration);
     try {
         $message = $this->mailer->createMessage();
         $message->setSubject($subject);
         $message->setTo([$recipient]);
         $message->setHtmlBody($htmlBody);
         $message->setPlainBody($textBody);
         $message->setFrom([\OCP\Util::getDefaultEmailAddress('sharing-noreply') => (string) $this->l->t('%s via %s', [$this->senderDisplayName, $this->defaults->getName()])]);
         if (!is_null($this->replyTo)) {
             $message->setReplyTo([$this->replyTo]);
         }
         return $this->mailer->send($message);
     } catch (\Exception $e) {
         $this->logger->error("Can't send mail with public link to {$recipient}: " . $e->getMessage(), ['app' => 'sharing']);
         return [$recipient];
     }
 }
Ejemplo n.º 17
0
 /**
  * Get the sender data
  * @param string $setting Either `email` or `name`
  * @return string
  */
 protected function getSenderData($setting)
 {
     if (empty($this->senderAddress)) {
         $this->senderAddress = \OCP\Util::getDefaultEmailAddress('no-reply');
     }
     if (empty($this->senderName)) {
         $defaults = new \OC_Defaults();
         $this->senderName = $defaults->getName();
     }
     if ($setting === 'email') {
         return $this->senderAddress;
     }
     return $this->senderName;
 }
Ejemplo n.º 18
0
    \OCP\Share::registerBackend('addressbook', 'OCA\\Contacts\\Share\\Addressbook', 'contact');
}
// Backends
$authBackend = new \OC\Connector\Sabre\Auth();
$principalBackend = new \OC\Connector\Sabre\Principal(\OC::$server->getConfig(), \OC::$server->getUserManager());
$caldavBackend = new \OCA\Calendar\Sabre\Backend();
// Root nodes
$Sabre_CalDAV_Principal_Collection = new \Sabre\CalDAV\Principal\Collection($principalBackend);
$Sabre_CalDAV_Principal_Collection->disableListing = true;
// Disable listening
$calendarRoot = new \OCA\Calendar\Sabre\CalendarRoot($principalBackend, $caldavBackend);
$calendarRoot->disableListing = true;
// Disable listening
$nodes = array($Sabre_CalDAV_Principal_Collection, $calendarRoot);
// Fire up server
$server = new \Sabre\DAV\Server($nodes);
$server->httpRequest->setUrl(\OC::$server->getRequest()->getRequestUri());
$server->setBaseUri($baseuri);
// Add plugins
$adminmail = \OCP\Util::getDefaultEmailAddress('no-reply');
$server->addPlugin(new Sabre\CalDAV\Schedule\Plugin());
$server->addPlugin(new Sabre\CalDAV\Schedule\IMipPlugin($adminmail));
$server->addPlugin(new \OC\Connector\Sabre\MaintenancePlugin());
$server->addPlugin(new \Sabre\DAV\Auth\Plugin($authBackend, 'ownCloud'));
$server->addPlugin(new \Sabre\CalDAV\Plugin());
$server->addPlugin(new \Sabre\DAVACL\Plugin());
$server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin());
$server->addPlugin(new \OC\Connector\Sabre\ExceptionLoggerPlugin('caldav', \OC::$server->getLogger()));
$server->addPlugin(new \OC\Connector\Sabre\AppEnabledPlugin('calendar', OC::$server->getAppManager()));
// And off we go!
$server->exec();
Ejemplo n.º 19
0
    foreach ($users as $uid) {
        if ($user === $uid) {
            continue;
        }
        $email = \OCP\Config::getUserValue($uid, 'settings', 'email');
        if (strlen($email) === 0 || !isset($email)) {
            continue;
        }
        $url = \OC::$server->getURLGenerator()->getAbsoluteURL(OCP\Util::linkToRoute('polls_goto', array('poll_id' => $poll_id)));
        // set translation language according to the user who receives the email
        OC_L10N::forceLanguage($uid, 'core', 'lang', 'en');
        $msg = $l->t('Hello %s,<br/><br/><strong>%s</strong> participated in the poll \'%s\'.<br/><br/>To go directly to the poll, you can use this link: <a href="%s">%s</a>', array(OCP\User::getDisplayName($uid), OCP\User::getDisplayName($user), $title, $url, $url));
        $msg .= "<br/><br/>";
        $toname = OCP\User::getDisplayName($uid);
        $subject = $l->t('ownCloud Polls -- New Comment');
        $fromaddress = \OCP\Util::getDefaultEmailAddress('no-reply');
        $fromname = $l->t("ownCloud Polls");
        try {
            OCP\Util::sendMail($email, $toname, $subject, $msg, $fromaddress, $fromname, $html = 1);
        } catch (\Exception $e) {
            $message = 'error sending mail to: ' . $toname . ' (' . $email . ')';
            \OCP\Util::writeLog("polls", $message, \OCP\Util::ERROR);
        }
    }
    // set the language back (todo: really need this?)
    OC_L10N::forceLanguage($user, 'core', 'lang', 'en');
}
// save comment
if (isset($options->comment) && strlen($options->comment) > 0) {
    $query = DB::prepare('INSERT INTO *PREFIX*polls_comments(id,USER,dt,COMMENT) VALUES(?,?,?,?)');
    //$query->execute(array($poll_id, $user, date('d.m.Y_H:i'), $json->comment));
 public function __construct(array $urlParams = array())
 {
     parent::__construct('sharing_group', $urlParams);
     $container = $this->getContainer();
     $container->registerService('UserHooks', function ($c) {
         return new UserHooks($c->query('ServerContainer')->getUserManager());
     });
     $container->registerService('ActivityApplication', function ($c) {
         return new \OCA\Activity\AppInfo\Application();
     });
     $container->registerService('Hooks', function (IContainer $c) {
         return new FilesHooks($c->query('ActivityApplication')->getContainer()->query('ActivityData'), $c->query('ActivityApplication')->getContainer()->query('UserSettings'), $c->query('ActivityApplication')->getContainer()->query('CurrentUID'));
     });
     $container->registerService('GroupData', function (IContainer $c) {
         return new Data();
     });
     $container->registerService('CurrentUID', function (IContainer $c) {
         $server = $c->query('ServerContainer');
         $user = $server->getUserSession()->getUser();
         return $user ? $user->getUID() : '';
     });
     $container->registerService('SharingGroupsController', function (IContainer $c) {
         return new SharingGroupsController($c->query('AppName'), $c->query('Request'), $c->query('GroupData'), $c->query('CurrentUID'));
     });
     $container->registerService('SettingsApplication', function (IContainer $c) {
         return new \OC\Settings\Application();
     });
     $container->registerService('SharingGroupL10N', function (IContainer $c) {
         return $c->query('ServerContainer')->getL10N('sharing_group');
     });
     $container->registerService('UserController', function (IContainer $c) {
         return new UserController($c->query('AppName'), $c->query('Request'), $c->query('UserManager'), $c->query('GroupManager'), $c->query('UserSession'), $c->query('Config'), $c->query('IsAdmin'), $c->query('L10N'), $c->query('Logger'), $c->query('Defaults'), $c->query('Mailer'), $c->query('DefaultMailAddress'), $c->query('URLGenerator'), $c->query('OCP\\App\\IAppManager'), $c->query('SubAdminFactory'), $c->query('SharingGroupsController'));
     });
     /**
      * Core class wrappers
      */
     $container->registerService('Config', function (IContainer $c) {
         return $c->query('ServerContainer')->getConfig();
     });
     $container->registerService('L10N', function (IContainer $c) {
         return $c->query('ServerContainer')->getL10N('settings');
     });
     $container->registerService('GroupManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getGroupManager();
     });
     $container->registerService('UserManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getUserManager();
     });
     $container->registerService('UserSession', function (IContainer $c) {
         return $c->query('ServerContainer')->getUserSession();
     });
     /** FIXME: Remove once OC_User is non-static and mockable */
     $container->registerService('IsAdmin', function (IContainer $c) {
         return \OC_User::isAdminUser(\OC_User::getUser());
     });
     /** FIXME: Remove once OC_SubAdmin is non-static and mockable */
     $container->registerService('IsSubAdmin', function (IContainer $c) {
         return \OC_Subadmin::isSubAdmin(\OC_User::getUser());
     });
     /** FIXME: Remove once OC_SubAdmin is non-static and mockable */
     $container->registerService('SubAdminFactory', function (IContainer $c) {
         return new SubAdminFactory();
     });
     $container->registerService('Mailer', function (IContainer $c) {
         return $c->query('ServerContainer')->getMailer();
     });
     $container->registerService('Defaults', function (IContainer $c) {
         return new \OC_Defaults();
     });
     $container->registerService('DefaultMailAddress', function (IContainer $c) {
         return Util::getDefaultEmailAddress('no-reply');
     });
     $container->registerService('Logger', function (IContainer $c) {
         return $c->query('ServerContainer')->getLogger();
     });
     $container->registerService('URLGenerator', function (IContainer $c) {
         return $c->query('ServerContainer')->getURLGenerator();
     });
     $container->registerService('ClientService', function (IContainer $c) {
         return $c->query('ServerContainer')->getHTTPClientService();
     });
     $container->registerService('INavigationManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getNavigationManager();
     });
     $container->registerService('IAppManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getAppManager();
     });
 }
Ejemplo n.º 21
0
 /**
  * @param array $urlParams
  */
 public function __construct(array $urlParams = array())
 {
     parent::__construct('settings', $urlParams);
     $container = $this->getContainer();
     /**
      * Controllers
      */
     $container->registerService('MailSettingsController', function (IContainer $c) {
         return new MailSettingsController($c->query('AppName'), $c->query('Request'), $c->query('L10N'), $c->query('Config'), $c->query('UserSession'), $c->query('Defaults'), $c->query('Mail'), $c->query('DefaultMailAddress'));
     });
     $container->registerService('AppSettingsController', function (IContainer $c) {
         return new AppSettingsController($c->query('AppName'), $c->query('Request'), $c->query('L10N'), $c->query('Config'), $c->query('ICacheFactory'));
     });
     $container->registerService('SecuritySettingsController', function (IContainer $c) {
         return new SecuritySettingsController($c->query('AppName'), $c->query('Request'), $c->query('Config'));
     });
     $container->registerService('GroupsController', function (IContainer $c) {
         return new GroupsController($c->query('AppName'), $c->query('Request'), $c->query('GroupManager'), $c->query('UserSession'), $c->query('IsAdmin'), $c->query('L10N'));
     });
     $container->registerService('UsersController', function (IContainer $c) {
         return new UsersController($c->query('AppName'), $c->query('Request'), $c->query('UserManager'), $c->query('GroupManager'), $c->query('UserSession'), $c->query('Config'), $c->query('IsAdmin'), $c->query('L10N'), $c->query('Logger'), $c->query('Defaults'), $c->query('Mail'), $c->query('DefaultMailAddress'), $c->query('URLGenerator'), $c->query('OCP\\App\\IAppManager'), $c->query('SubAdminFactory'));
     });
     $container->registerService('LogSettingsController', function (IContainer $c) {
         return new LogSettingsController($c->query('AppName'), $c->query('Request'), $c->query('Config'), $c->query('L10N'), $c->query('TimeFactory'));
     });
     /**
      * Middleware
      */
     $container->registerService('SubadminMiddleware', function (IContainer $c) {
         return new SubadminMiddleware($c->query('ControllerMethodReflector'), $c->query('IsSubAdmin'));
     });
     // Execute middlewares
     $container->registerMiddleware('SubadminMiddleware');
     /**
      * Core class wrappers
      */
     $container->registerService('Config', function (IContainer $c) {
         return $c->query('ServerContainer')->getConfig();
     });
     $container->registerService('ICacheFactory', function (IContainer $c) {
         return $c->query('ServerContainer')->getMemCacheFactory();
     });
     $container->registerService('L10N', function (IContainer $c) {
         return $c->query('ServerContainer')->getL10N('settings');
     });
     $container->registerService('GroupManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getGroupManager();
     });
     $container->registerService('UserManager', function (IContainer $c) {
         return $c->query('ServerContainer')->getUserManager();
     });
     $container->registerService('UserSession', function (IContainer $c) {
         return $c->query('ServerContainer')->getUserSession();
     });
     /** FIXME: Remove once OC_User is non-static and mockable */
     $container->registerService('IsAdmin', function (IContainer $c) {
         return \OC_User::isAdminUser(\OC_User::getUser());
     });
     /** FIXME: Remove once OC_SubAdmin is non-static and mockable */
     $container->registerService('IsSubAdmin', function (IContainer $c) {
         return \OC_Subadmin::isSubAdmin(\OC_User::getUser());
     });
     /** FIXME: Remove once OC_SubAdmin is non-static and mockable */
     $container->registerService('SubAdminFactory', function (IContainer $c) {
         return new SubAdminFactory();
     });
     $container->registerService('Mail', function (IContainer $c) {
         return new \OC_Mail();
     });
     $container->registerService('Defaults', function (IContainer $c) {
         return new \OC_Defaults();
     });
     $container->registerService('DefaultMailAddress', function (IContainer $c) {
         return Util::getDefaultEmailAddress('no-reply');
     });
     $container->registerService('Logger', function (IContainer $c) {
         return $c->query('ServerContainer')->getLogger();
     });
     $container->registerService('URLGenerator', function (IContainer $c) {
         return $c->query('ServerContainer')->getURLGenerator();
     });
 }
Ejemplo n.º 22
0
 function testGetConfiguredEmailAddressFromConfig()
 {
     $config = \OC::$server->getConfig();
     $config->setSystemValue('mail_domain', 'example.com');
     $config->setSystemValue('mail_from_address', 'owncloud');
     $email = \OCP\Util::getDefaultEmailAddress("no-reply");
     $this->assertEquals('*****@*****.**', $email);
     $config->deleteSystemValue('mail_domain');
     $config->deleteSystemValue('mail_from_address');
 }
Ejemplo n.º 23
0
 /**
  * Sends validation email
  * @param string $token
  * @param string $to
  * @return null
  * @throws \Exception
  */
 private function sendValidationEmail(string $token, string $to)
 {
     $link = $this->urlgenerator->linkToRoute('registration.register.verifyToken', array('token' => $token));
     $link = $this->urlgenerator->getAbsoluteURL($link);
     $html_template = new TemplateResponse('registration', 'email_html', array('link' => $link), 'blank');
     $html_part = $html_template->render();
     $plaintext_template = new TemplateResponse('registration', 'email_plaintext', array('link' => $link), 'blank');
     $plaintext_part = $plaintext_template->render();
     $subject = $this->l10n->t('Verify your ownCloud registration request');
     $from = Util::getDefaultEmailAddress('register');
     $message = $this->mailer->createMessage();
     $message->setFrom([$from]);
     $message->setTo([$to]);
     $message->setSubject($subject);
     $message->setPlainBody($plaintext_part);
     $message->setHtmlBody($html_part);
     $failed_recipients = $this->mailer->send($message);
     if (!empty($failed_recipients)) {
         throw new \Exception('Failed recipients: ' . print_r($failed_recipients, true));
     }
 }
Ejemplo n.º 24
0
     }
     break;
 case 'setExpirationDate':
     if (isset($_POST['date'])) {
         $return = OCP\Share::setExpirationDate($_POST['itemType'], $_POST['itemSource'], $_POST['date']);
         $return ? OC_JSON::success() : OC_JSON::error();
     }
     break;
 case 'informRecipients':
     $l = OC_L10N::get('core');
     $shareType = (int) $_POST['shareType'];
     $itemType = $_POST['itemType'];
     $itemSource = $_POST['itemSource'];
     $recipient = $_POST['recipient'];
     $ownerDisplayName = \OCP\User::getDisplayName();
     $from = \OCP\Util::getDefaultEmailAddress('sharing-noreply');
     $noMail = array();
     $recipientList = array();
     if ($shareType === \OCP\Share::SHARE_TYPE_USER) {
         $recipientList[] = $recipient;
     } elseif ($shareType === \OCP\Share::SHARE_TYPE_GROUP) {
         $recipientList = \OC_Group::usersInGroup($recipient);
     }
     // don't send a mail to the user who shared the file
     $recipientList = array_diff($recipientList, array(\OCP\User::getUser()));
     // send mail to all recipients with an email address
     foreach ($recipientList as $recipient) {
         //get correct target folder name
         $email = OC_Preferences::getValue($recipient, 'settings', 'email', '');
         if ($email !== '') {
             $displayName = \OCP\User::getDisplayName($recipient);
Ejemplo n.º 25
0
 /**
  * @brief use to create HTML emails and send them
  * @param $eventid The event id
  * @param $location The location
  * @param $description The description
  * @param $dtstart The start date
  * @param $dtend The end date
  *
  */
 public static function sendEmails($eventid, $summary, $dtstart, $dtend, $emails)
 {
     $user = \OCP\User::getDisplayName();
     $useremail = \OCP\Util::getDefaultEmailAddress('sharing-noreply');
     $eventsharees = array();
     $eventShareesNames = array();
     //$emails = array();
     //$data = App::getEventObject($eventid, true);
     $data = Export::export($eventid, Export::EVENT);
     $tmpStartDate = strtotime($dtstart);
     $myFile = date('Ymd', $tmpStartDate) . '.ics';
     $fh = fopen(\OCP\User::getHome($user) . '/files/' . $myFile, "x+");
     fwrite($fh, $data);
     fclose($fh);
     $attach['path'] = \OCP\User::getHome($user) . '/files/' . $myFile;
     $attach['name'] = $myFile;
     //$useremail = Calendar::getUsersEmails($user);
     //$testEmail=explode(",",$emails);
     //if(count($testEmail)>1)
     foreach ($emails as $email) {
         if ($email === null) {
             continue;
         }
         $subject = 'Termineinladung/ Calendar Invitation';
         $message = '<b>' . $user . '</b> informiert Sie &uuml;ber das Ereignis<b> ' . \OCP\Util::sanitizeHTML($summary) . '</b> , geplant f&uuml;r <b>' . date('d.m.Y', $tmpStartDate) . '.</b> 
          Um das Ereignis zum Kalender hinzuzuf&uuml;gen, klicken Sie auf den Link.<br><br>';
         \OC_MAIL::send($email, "User", $subject, $message, $useremail, $user, $html = 1, $altbody = '', $ccaddress = '', $ccname = '', $bcc = '', $attach);
     }
     unlink(\OCP\User::getHome($user) . '/files/' . $myFile);
 }
Ejemplo n.º 26
0
 /**
  * @brief use to create HTML emails and send them
  * @param $eventid The event id
  * @param $location The location
  * @param $description The description
  * @param $dtstart The start date
  * @param $dtend The end date
  *
  */
 public static function sendEmails($eventid, $summary, $location, $description, $dtstart, $dtend)
 {
     $user = \OCP\User::getUser();
     $eventsharees = array();
     $eventShareesNames = array();
     $emails = array();
     $sharedwithByEvent = \OCP\Share::getItemShared('event', $eventid);
     if (is_array($sharedwithByEvent)) {
         foreach ($sharedwithByEvent as $share) {
             if ($share['share_type'] === \OCP\Share::SHARE_TYPE_USER || $share['share_type'] === \OCP\Share::SHARE_TYPE_GROUP) {
                 $eventsharees[] = $share;
             }
         }
         foreach ($eventsharees as $sharee) {
             $shwth = $sharee['share_with'];
             if ($sharee['share_type'] == \OCP\Share::SHARE_TYPE_GROUP) {
                 foreach (OC_Group::usersInGroup($shwth) as $u) {
                     if (!in_array($u, $eventShareesNames)) {
                         $eventShareesNames[] = $u;
                     }
                 }
             } else {
                 if (!in_array($shwth, $eventShareesNames)) {
                     $eventShareesNames[] = $shwth;
                 }
             }
         }
     }
     foreach ($eventShareesNames as $name) {
         $result = OC_Calendar_Calendar::getUsersEmails($name);
         $emails[] = $result;
     }
     $adminmail = \OCP\Util::getDefaultEmailAddress('no-reply');
     foreach ($emails as $email) {
         if ($email === null) {
             continue;
         }
         $subject = 'Calendar Event Shared';
         $message = '<html><body>';
         $message .= '<table style="border:1px solid black;" cellpadding="10">';
         $message .= "<tr style='background: #eee;'><td colspan='2'><strong>" . $user . '</strong><strong> has shared with you an event</strong></td></tr>';
         $message .= '<tr><td><strong>Summary:</strong> </td><td>' . \OCP\Util::sanitizeHTML($summary) . '</td></tr>';
         $message .= '<tr><td><strong>Location:</strong> </td><td>' . \OCP\Util::sanitizeHTML($location) . '</td></tr>';
         $message .= '<tr><td><strong>Description:</strong> </td><td>' . \OCP\Util::sanitizeHTML($description) . '</td></tr>';
         $message .= '</table>';
         $message .= '</body></html>';
         OCP\Util::sendMail($email, \OCP\User::getDisplayName(), $subject, $message, $adminmail, $user, $html = 1);
     }
 }
Ejemplo n.º 27
0
 /**
  * @param string $subject
  */
 protected function setupMailerMock($subject, $to, $exceptionOnSend = true)
 {
     $message = $this->getMockBuilder('\\OC\\Mail\\Message')->disableOriginalConstructor()->getMock();
     $message->expects($this->once())->method('setSubject')->with($subject);
     $message->expects($this->once())->method('setTo')->with($to);
     $message->expects($this->once())->method('setHtmlBody');
     $message->expects($this->once())->method('setPlainBody');
     $message->expects($this->once())->method('setFrom')->with([\OCP\Util::getDefaultEmailAddress('sharing-noreply') => 'TestUser via UnitTestCloud']);
     $this->mailer->expects($this->once())->method('createMessage')->will($this->returnValue($message));
     if ($exceptionOnSend) {
         $this->mailer->expects($this->once())->method('send')->with($message)->will($this->throwException(new Exception('Some Exception Message')));
     }
 }
Ejemplo n.º 28
0
 /**
  * Sends new user notification email to admin
  * @param array $to
  * @param string $username the new user
  * @return null
  * @throws \Exception
  */
 private function sendNewUserNotifEmail(array $to, string $username)
 {
     $template_var = ['user' => $username, 'sitename' => $this->defaults->getName()];
     $html_template = new TemplateResponse('registration', 'email.newuser_html', $template_var, 'blank');
     $html_part = $html_template->render();
     $plaintext_template = new TemplateResponse('registration', 'email.newuser_plaintext', $template_var, 'blank');
     $plaintext_part = $plaintext_template->render();
     $subject = $this->l10n->t('A new user "%s" had created an account on %s', [$username, $this->defaults->getName()]);
     $from = Util::getDefaultEmailAddress('register');
     $message = $this->mailer->createMessage();
     $message->setFrom([$from => $this->defaults->getName()]);
     $message->setTo($to);
     $message->setSubject($subject);
     $message->setPlainBody($plaintext_part);
     $message->setHtmlBody($html_part);
     $failed_recipients = $this->mailer->send($message);
     if (!empty($failed_recipients)) {
         throw new \Exception('Failed recipients: ' . print_r($failed_recipients, true));
     }
 }
Ejemplo n.º 29
0
 /**
  * send encryption key passwords to the users by mail
  */
 protected function sendPasswordsByMail()
 {
     $noMail = [];
     $this->output->writeln('');
     $progress = new ProgressBar($this->output, count($this->userPasswords));
     $progress->start();
     foreach ($this->userPasswords as $uid => $password) {
         $progress->advance();
         if (!empty($password)) {
             $recipient = $this->userManager->get($uid);
             $recipientDisplayName = $recipient->getDisplayName();
             $to = $recipient->getEMailAddress();
             if ($to === '') {
                 $noMail[] = $uid;
                 continue;
             }
             $subject = (string) $this->l->t('one-time password for server-side-encryption');
             list($htmlBody, $textBody) = $this->createMailBody($password);
             // send it out now
             try {
                 $message = $this->mailer->createMessage();
                 $message->setSubject($subject);
                 $message->setTo([$to => $recipientDisplayName]);
                 $message->setHtmlBody($htmlBody);
                 $message->setPlainBody($textBody);
                 $message->setFrom([Util::getDefaultEmailAddress('admin-noreply')]);
                 $this->mailer->send($message);
             } catch (\Exception $e) {
                 $noMail[] = $uid;
             }
         }
     }
     $progress->finish();
     if (empty($noMail)) {
         $this->output->writeln("\n\nPassword successfully send to all users");
     } else {
         $table = new Table($this->output);
         $table->setHeaders(array('Username', 'Private key password'));
         $this->output->writeln("\n\nCould not send password to following users:\n");
         $rows = [];
         foreach ($noMail as $uid) {
             $rows[] = [$uid, $this->userPasswords[$uid]];
         }
         $table->setRows($rows);
         $table->render();
     }
 }
Ejemplo n.º 30
0
 public function __construct(array $urlParams = array())
 {
     parent::__construct('user_shib', $urlParams);
     $container = $this->getContainer();
     /**
      * Controllers
      */
     $container->registerService('SettingsController', function ($c) {
         return new SettingsController($c->query('AppName'), $c->query('Request'), $c->query('UserSession')->getUser()->getUID(), $c->query('AppConfig'), $c->query('OcConfig'), $c->query('TimeFactory'), $c->query('L10N'));
     });
     $container->registerService('SessionController', function ($c) {
         return new SessionController($c->query('AppName'), $c->query('Request'), $c->query('URLGenerator'), $c->query('Logger'), $c->query('UserSession'));
     });
     /**
      * User Backend
      */
     $container->registerService('UserBackend', function ($c) {
         return new UserShib($c->query('AppName'), $c->query('UserManager'), $c->query('UserAttributeManager'), $c->query('IdentityMapper'), $c->query('Logger'), $c->query('BackendConfig'), $c->query('SecureGenerator'));
     });
     $container->registerService('BackendConfig', function ($c) {
         $appName = $c->query('AppName');
         $config = $c->query('AppConfig');
         $active = $config->getValue($appName, 'active');
         $autocreate = $config->getValue($appName, 'autocreate');
         $autoupdate = $config->getValue($appName, 'autoupdate');
         $pgrp = $config->getValue($appName, 'protected_groups', array());
         $rqattrs = $config->getValue($appName, 'required_attrs', array());
         return array('active' => (bool) $active, 'autocreate' => (bool) $autocreate, 'autoupdate' => (bool) $autoupdate, 'protected_groups' => $pgrp, 'required_attrs' => $rqattrs);
     });
     /**
      * Application Services
      */
     $container->registerService('UserAttributeManager', function ($c) {
         return new UserAttributeManager($c->query('AppName'), $c->query('OcConfig'), $c->query('BackendConfig'), $_SERVER, $c->query('UserManager'), $c->query('IdentityMapper'), $c->query('Logger'));
     });
     $container->registerService('IdentityMapper', function ($c) {
         return new IdentityMapper($c->query('AppName'), $c->query('Logger'), $c->query('Db'), $c->query('UserManager'));
     });
     $container->registerService('UserMailer', function ($c) {
         return new UserMailer($c->query('AppName'), $c->query('L10N'), $c->query('OcConfig'), $c->query('Mailer'), $c->query('Defaults'), $c->query('Logger'), $c->query('DefaultMailAddress'), $c->query('URLGenerator'), $c->query('SecureGenerator'), $c->query('TimeFactory'));
     });
     /**
      * OC Server Services
      */
     $container->registerService('UserManager', function ($c) {
         return $c->query('ServerContainer')->getUserManager();
     });
     $container->registerService('UserSession', function ($c) {
         return $c->query('ServerContainer')->getUserSession();
     });
     $container->registerService('AppConfig', function ($c) {
         return $c->query('ServerContainer')->getAppConfig();
     });
     $container->registerService('Defaults', function ($c) {
         return new \OC_Defaults();
     });
     $container->registerService('DefaultMailAddress', function ($c) {
         return \OCP\Util::getDefaultEmailAddress('no-reply');
     });
     $container->registerService('Mailer', function ($c) {
         return $c->query('ServerContainer')->getMailer();
     });
     $container->registerService('OcConfig', function ($c) {
         return $c->query('ServerContainer')->getConfig();
     });
     $container->registerService('Logger', function ($c) {
         return $c->query('ServerContainer')->getLogger();
     });
     $container->registerService('L10N', function ($c) {
         return $c->query('ServerContainer')->getL10N($c->query('AppName'));
     });
     $container->registerService('URLGenerator', function ($c) {
         return $c->query('ServerContainer')->getURLGenerator();
     });
     $container->registerService('Db', function ($c) {
         return $c->query('ServerContainer')->getDb();
     });
     $container->registerService('SecureGenerator', function ($c) {
         return $c->query('ServerContainer')->getSecureRandom()->getMediumStrengthGenerator();
     });
     $container->registerService('TimeFactory', function ($c) {
         return new TimeFactory();
     });
     /**
      * Hooks
      */
     $container->registerService('UserHooks', function ($c) {
         return new UserHooks($c->query('AppName'), $c->query('Logger'), $c->query('UserManager'), $c->query('UserAttributeManager'), $c->query('UserMailer'), $c->query('IdentityMapper'), $c->query('BackendConfig'), $c->query('URLGenerator'), $c->query('Request'));
     });
 }