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); } }
/** * @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'); }
/** * @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'); }); }
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); }
/** * @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'); }); }
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')); }); }
/** * * @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(); } }
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()))); } }); }
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); } }
/** * 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); } }
/** * 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; }
/** * @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(); }); }
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]; } }
/** * 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; }
\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();
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(); }); }
/** * @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(); }); }
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'); }
/** * 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)); } }
} 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);
/** * @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 über das Ereignis<b> ' . \OCP\Util::sanitizeHTML($summary) . '</b> , geplant für <b>' . date('d.m.Y', $tmpStartDate) . '.</b> Um das Ereignis zum Kalender hinzuzufü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); }
/** * @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); } }
/** * @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'))); } }
/** * 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)); } }
/** * 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(); } }
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')); }); }