X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=actions%2Finvite.php;h=2853fb070768f4b7477af85544957bb39dd039f4;hb=627d84a1e2db2aca5d2ce1272f6e83fb7faa8ad2;hp=75800aa8585430854c4dd92425cf4d62f32e4b02;hpb=cb183359e23ae7a5cfb483fa06c6c4b7a8b05fff;p=quix0rs-gnu-social.git diff --git a/actions/invite.php b/actions/invite.php index 75800aa858..2853fb0707 100644 --- a/actions/invite.php +++ b/actions/invite.php @@ -17,7 +17,7 @@ * along with this program. If not, see . */ -if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } +if (!defined('GNUSOCIAL')) { exit(1); } // @todo XXX: Add documentation. class InviteAction extends Action @@ -33,12 +33,12 @@ class InviteAction extends Action return; } - function isReadOnly($args) + function isReadOnly(array $args=array()) { return false; } - function handle($args) + function handle(array $args=array()) { parent::handle($args); if (!common_config('invite', 'enabled')) { @@ -111,15 +111,22 @@ class InviteAction extends Action foreach ($addresses as $email) { $email = common_canonical_email($email); - $other = User::staticGet('email', $email); - if ($other) { + try { + // If this user is already registered, subscribe to it! + $other = Profile::getByEmail($email); if ($user->isSubscribed($other)) { $this->already[] = $other; } else { - subs_subscribe_to($user, $other); - $this->subbed[] = $other; + try { + Subscription::start($profile, $other); + $this->subbed[] = $other; + } catch (Exception $e) { + // subscription failed, but keep working + common_debug('Invitation-based subscription failed: '.$e->getMessage()); + } } - } else { + } catch (NoSuchUserException $e) { + // If email was not known, let's send an invite! $this->sent[] = $email; $this->sendInvitation($email, $user, $personal); }