X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FInvite.php;h=1f750f459fea19973dafae5284bd6fa0a6f05472;hb=3bca4fe2a64671d09e08346456cdfa6c12f996e9;hp=fc8b4abf90671fdd99b4e4a78d95605750939ffb;hpb=e37b1c8794ed1ef329ba41e54e5f103fa6fecbaa;p=friendica.git diff --git a/src/Module/Invite.php b/src/Module/Invite.php index fc8b4abf90..1f750f459f 100644 --- a/src/Module/Invite.php +++ b/src/Module/Invite.php @@ -1,11 +1,32 @@ . + * + */ namespace Friendica\Module; use Friendica\BaseModule; use Friendica\Core\Renderer; +use Friendica\Core\Search; use Friendica\DI; use Friendica\Model; +use Friendica\Model\User; use Friendica\Network\HTTPException; use Friendica\Protocol\Email; use Friendica\Util\Strings; @@ -15,9 +36,9 @@ use Friendica\Util\Strings; */ class Invite extends BaseModule { - public static function post(array $parameters = []) + protected function post(array $request = []) { - if (!local_user()) { + if (!DI::userSession()->getLocalUserId()) { throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); } @@ -31,14 +52,14 @@ class Invite extends BaseModule $max_invites = 50; } - $current_invites = intval(DI::pConfig()->get(local_user(), 'system', 'sent_invites')); + $current_invites = intval(DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'sent_invites')); if ($current_invites > $max_invites) { throw new HTTPException\ForbiddenException(DI::l10n()->t('Total invitation limit exceeded.')); } $recipients = !empty($_POST['recipients']) ? explode("\n", $_POST['recipients']) : []; - $message = !empty($_POST['message']) ? Strings::escapeTags(trim($_POST['message'])) : ''; + $message = !empty($_POST['message']) ? Strings::escapeHtml(trim($_POST['message'])) : ''; $total = 0; $invitation_only = false; @@ -46,28 +67,30 @@ class Invite extends BaseModule if ($config->get('system', 'invitation_only')) { $invitation_only = true; - $invites_remaining = DI::pConfig()->get(local_user(), 'system', 'invites_remaining'); - if ((!$invites_remaining) && (!is_site_admin())) { + $invites_remaining = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'invites_remaining'); + if ((!$invites_remaining) && (!$app->isSiteAdmin())) { throw new HTTPException\ForbiddenException(); } } + $user = User::getById(DI::userSession()->getLocalUserId()); + foreach ($recipients as $recipient) { $recipient = trim($recipient); if (!filter_var($recipient, FILTER_VALIDATE_EMAIL)) { - notice(DI::l10n()->t('%s : Not a valid email address.', $recipient) . EOL); + DI::sysmsg()->addNotice(DI::l10n()->t('%s : Not a valid email address.', $recipient)); continue; } - if ($invitation_only && ($invites_remaining || is_site_admin())) { + if ($invitation_only && ($invites_remaining || $app->isSiteAdmin())) { $code = Model\Register::createForInvitation(); $nmessage = str_replace('$invite_code', $code, $message); - if (!is_site_admin()) { + if (!$app->isSiteAdmin()) { $invites_remaining--; if ($invites_remaining >= 0) { - DI::pConfig()->set(local_user(), 'system', 'invites_remaining', $invites_remaining); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'invites_remaining', $invites_remaining); } else { return; } @@ -76,8 +99,7 @@ class Invite extends BaseModule $nmessage = $message; } - $additional_headers = 'From: ' . $app->user['email'] . "\n" - . 'Sender: ' . DI::emailer()->getSiteEmailAddress() . "\n" + $additional_headers = 'From: "' . $user['email'] . '" <' . DI::emailer()->getSiteEmailAddress() . ">\n" . 'Content-type: text/plain; charset=UTF-8' . "\n" . 'Content-transfer-encoding: 8bit'; @@ -90,22 +112,22 @@ class Invite extends BaseModule if ($res) { $total++; $current_invites++; - DI::pConfig()->set(local_user(), 'system', 'sent_invites', $current_invites); + DI::pConfig()->set(DI::userSession()->getLocalUserId(), 'system', 'sent_invites', $current_invites); if ($current_invites > $max_invites) { - notice(DI::l10n()->t('Invitation limit exceeded. Please contact your site administrator.') . EOL); + DI::sysmsg()->addNotice(DI::l10n()->t('Invitation limit exceeded. Please contact your site administrator.')); return; } } else { - notice(DI::l10n()->t('%s : Message delivery failed.', $recipient) . EOL); + DI::sysmsg()->addNotice(DI::l10n()->t('%s : Message delivery failed.', $recipient)); } } - notice(DI::l10n()->tt('%d message sent.', '%d messages sent.', $total) . EOL); + DI::sysmsg()->addInfo(DI::l10n()->tt('%d message sent.', '%d messages sent.', $total)); } - public static function content(array $parameters = []) + protected function content(array $request = []): string { - if (!local_user()) { + if (!DI::userSession()->getLocalUserId()) { throw new HTTPException\ForbiddenException(DI::l10n()->t('Permission denied.')); } @@ -116,25 +138,25 @@ class Invite extends BaseModule if ($config->get('system', 'invitation_only')) { $inviteOnly = true; - $x = DI::pConfig()->get(local_user(), 'system', 'invites_remaining'); - if ((!$x) && (!is_site_admin())) { + $x = DI::pConfig()->get(DI::userSession()->getLocalUserId(), 'system', 'invites_remaining'); + if ((!$x) && (!$app->isSiteAdmin())) { throw new HTTPException\ForbiddenException(DI::l10n()->t('You have no more invitations available')); } } - $dirLocation = $config->get('system', 'directory'); + $dirLocation = Search::getGlobalDirectory(); if (strlen($dirLocation)) { if ($config->get('config', 'register_policy') === Register::CLOSED) { $linkTxt = DI::l10n()->t('Visit %s for a list of public sites that you can join. Friendica members on other sites can all connect with each other, as well as with members of many other social networks.', $dirLocation . '/servers'); } else { - $linkTxt = DI::l10n()->t('To accept this invitation, please visit and register at %s or any other public Friendica website.', DI::baseUrl()->get()) + $linkTxt = DI::l10n()->t('To accept this invitation, please visit and register at %s or any other public Friendica website.', DI::baseUrl() . '/register') . "\r\n" . "\r\n" . DI::l10n()->t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks. See %s for a list of alternate Friendica sites you can join.', $dirLocation . '/servers'); } } else { // there is no global directory URL defined if ($config->get('config', 'register_policy') === Register::CLOSED) { return DI::l10n()->t('Our apologies. This system is not currently configured to connect with other public sites or invite members.'); } else { - $linkTxt = DI::l10n()->t('To accept this invitation, please visit and register at %s.', DI::baseUrl()->get() + $linkTxt = DI::l10n()->t('To accept this invitation, please visit and register at %s.', DI::baseUrl() . '/register' . "\r\n" . "\r\n" . DI::l10n()->t('Friendica sites all inter-connect to create a huge privacy-enhanced social web that is owned and controlled by its members. They can also connect with many traditional social networks.')); } } @@ -150,7 +172,7 @@ class Invite extends BaseModule DI::l10n()->t('You are cordially invited to join me and other close friends on Friendica - and help us to create a better social web.') . "\r\n" . "\r\n" . $linkTxt . "\r\n" . "\r\n" . (($inviteOnly) ? DI::l10n()->t('You will need to supply this invitation code: $invite_code') . "\r\n" . "\r\n" : '') . DI::l10n()->t('Once you have registered, please connect with me via my profile page at:') - . "\r\n" . "\r\n" . DI::baseUrl()->get() . '/profile/' . $app->user['nickname'] + . "\r\n" . "\r\n" . DI::baseUrl() . '/profile/' . $app->getLoggedInUserNickname() . "\r\n" . "\r\n" . DI::l10n()->t('For more information about the Friendica project and why we feel it is important, please visit http://friendi.ca') . "\r\n" . "\r\n", ], '$submit' => DI::l10n()->t('Submit')