replies from people you're not subscribed to over Jabber
darcs-hash:20080715195513-84dde-454419c971015be385d9c4c35f7acbee419031f9.gz
This commit is contained in:
parent
3f59000e73
commit
499afd8c22
@ -73,6 +73,9 @@ class ImsettingsAction extends SettingsAction {
|
|||||||
common_checkbox('updatefrompresence',
|
common_checkbox('updatefrompresence',
|
||||||
_('Post a notice when my Jabber/GTalk status changes.'),
|
_('Post a notice when my Jabber/GTalk status changes.'),
|
||||||
$user->updatefrompresence);
|
$user->updatefrompresence);
|
||||||
|
common_checkbox('jabberreplies',
|
||||||
|
_('Send me replies through Jabber/GTalk from people I\'m not subscribed to.'),
|
||||||
|
$user->jabberreplies);
|
||||||
common_submit('save', _('Save'));
|
common_submit('save', _('Save'));
|
||||||
|
|
||||||
common_element_end('form');
|
common_element_end('form');
|
||||||
@ -110,6 +113,7 @@ class ImsettingsAction extends SettingsAction {
|
|||||||
|
|
||||||
$jabbernotify = $this->boolean('jabbernotify');
|
$jabbernotify = $this->boolean('jabbernotify');
|
||||||
$updatefrompresence = $this->boolean('updatefrompresence');
|
$updatefrompresence = $this->boolean('updatefrompresence');
|
||||||
|
$jabberreplies = $this->boolean('jabberreplies');
|
||||||
|
|
||||||
$user = common_current_user();
|
$user = common_current_user();
|
||||||
|
|
||||||
@ -121,6 +125,7 @@ class ImsettingsAction extends SettingsAction {
|
|||||||
|
|
||||||
$user->jabbernotify = $jabbernotify;
|
$user->jabbernotify = $jabbernotify;
|
||||||
$user->updatefrompresence = $updatefrompresence;
|
$user->updatefrompresence = $updatefrompresence;
|
||||||
|
$user->jabberreplies = $jabberreplies;
|
||||||
|
|
||||||
$result = $user->update($original);
|
$result = $user->update($original);
|
||||||
|
|
||||||
|
@ -4,18 +4,18 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Avatar extends DB_DataObject
|
class Avatar extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
|
|
||||||
public $__table = 'avatar'; // table name
|
public $__table = 'avatar'; // table name
|
||||||
public $profile_id; // int(4) primary_key not_null
|
public $profile_id; // int(4) primary_key not_null
|
||||||
public $original; // tinyint(1)
|
public $original; // tinyint(1)
|
||||||
public $width; // int(4) primary_key not_null
|
public $width; // int(4) primary_key not_null
|
||||||
public $height; // int(4) primary_key not_null
|
public $height; // int(4) primary_key not_null
|
||||||
public $mediatype; // varchar(32) not_null
|
public $mediatype; // varchar(32) not_null
|
||||||
public $filename; // varchar(255)
|
public $filename; // varchar(255)
|
||||||
public $url; // varchar(255) unique_key
|
public $url; // varchar(255) unique_key
|
||||||
public $created; // datetime() not_null
|
public $created; // datetime() not_null
|
||||||
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Confirm_address extends DB_DataObject
|
class Confirm_address extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
@ -15,8 +15,8 @@ class Confirm_address extends DB_DataObject
|
|||||||
public $address; // varchar(255) not_null
|
public $address; // varchar(255) not_null
|
||||||
public $address_extra; // varchar(255) not_null
|
public $address_extra; // varchar(255) not_null
|
||||||
public $address_type; // varchar(8) not_null
|
public $address_type; // varchar(8) not_null
|
||||||
public $claimed; // datetime()
|
public $claimed; // datetime()
|
||||||
public $sent; // datetime()
|
public $sent; // datetime()
|
||||||
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
||||||
|
|
||||||
/* Static get */
|
/* Static get */
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Consumer extends DB_DataObject
|
class Consumer extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Nonce extends DB_DataObject
|
class Nonce extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
|
@ -24,7 +24,7 @@ if (!defined('LACONICA')) { exit(1); }
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Notice extends DB_DataObject
|
class Notice extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
@ -33,12 +33,12 @@ class Notice extends DB_DataObject
|
|||||||
public $id; // int(4) primary_key not_null
|
public $id; // int(4) primary_key not_null
|
||||||
public $profile_id; // int(4) not_null
|
public $profile_id; // int(4) not_null
|
||||||
public $uri; // varchar(255) unique_key
|
public $uri; // varchar(255) unique_key
|
||||||
public $content; // varchar(140)
|
public $content; // varchar(140)
|
||||||
public $rendered; // text()
|
public $rendered; // text()
|
||||||
public $url; // varchar(255)
|
public $url; // varchar(255)
|
||||||
public $created; // datetime() not_null
|
public $created; // datetime() not_null
|
||||||
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
||||||
public $reply_to; // int(4)
|
public $reply_to; // int(4)
|
||||||
|
|
||||||
/* Static get */
|
/* Static get */
|
||||||
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Notice',$k,$v); }
|
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Notice',$k,$v); }
|
||||||
|
@ -24,7 +24,7 @@ if (!defined('LACONICA')) { exit(1); }
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Profile extends DB_DataObject
|
class Profile extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
@ -33,7 +33,7 @@ class Profile extends DB_DataObject
|
|||||||
public $id; // int(4) primary_key not_null
|
public $id; // int(4) primary_key not_null
|
||||||
public $nickname; // varchar(64) multiple_key not_null
|
public $nickname; // varchar(64) multiple_key not_null
|
||||||
public $fullname; // varchar(255) multiple_key
|
public $fullname; // varchar(255) multiple_key
|
||||||
public $profileurl; // varchar(255)
|
public $profileurl; // varchar(255)
|
||||||
public $homepage; // varchar(255) multiple_key
|
public $homepage; // varchar(255) multiple_key
|
||||||
public $bio; // varchar(140) multiple_key
|
public $bio; // varchar(140) multiple_key
|
||||||
public $location; // varchar(255) multiple_key
|
public $location; // varchar(255) multiple_key
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Queue_item extends DB_DataObject
|
class Queue_item extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
@ -12,7 +12,7 @@ class Queue_item extends DB_DataObject
|
|||||||
public $__table = 'queue_item'; // table name
|
public $__table = 'queue_item'; // table name
|
||||||
public $notice_id; // int(4) primary_key not_null
|
public $notice_id; // int(4) primary_key not_null
|
||||||
public $created; // datetime() not_null
|
public $created; // datetime() not_null
|
||||||
public $claimed; // datetime()
|
public $claimed; // datetime()
|
||||||
|
|
||||||
/* Static get */
|
/* Static get */
|
||||||
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Queue_item',$k,$v); }
|
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Queue_item',$k,$v); }
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Remember_me extends DB_DataObject
|
class Remember_me extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
|
@ -24,7 +24,7 @@ if (!defined('LACONICA')) { exit(1); }
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Remote_profile extends DB_DataObject
|
class Remote_profile extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
@ -32,8 +32,8 @@ class Remote_profile extends DB_DataObject
|
|||||||
public $__table = 'remote_profile'; // table name
|
public $__table = 'remote_profile'; // table name
|
||||||
public $id; // int(4) primary_key not_null
|
public $id; // int(4) primary_key not_null
|
||||||
public $uri; // varchar(255) unique_key
|
public $uri; // varchar(255) unique_key
|
||||||
public $postnoticeurl; // varchar(255)
|
public $postnoticeurl; // varchar(255)
|
||||||
public $updateprofileurl; // varchar(255)
|
public $updateprofileurl; // varchar(255)
|
||||||
public $created; // datetime() not_null
|
public $created; // datetime() not_null
|
||||||
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Reply extends DB_DataObject
|
class Reply extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
@ -12,8 +12,8 @@ class Reply extends DB_DataObject
|
|||||||
public $__table = 'reply'; // table name
|
public $__table = 'reply'; // table name
|
||||||
public $notice_id; // int(4) primary_key not_null
|
public $notice_id; // int(4) primary_key not_null
|
||||||
public $profile_id; // int(4) primary_key not_null
|
public $profile_id; // int(4) primary_key not_null
|
||||||
public $replied_id; // int(4)
|
|
||||||
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
||||||
|
public $replied_id; // int(4)
|
||||||
|
|
||||||
/* Static get */
|
/* Static get */
|
||||||
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Reply',$k,$v); }
|
function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Reply',$k,$v); }
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Sms_carrier extends DB_DataObject
|
class Sms_carrier extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
|
@ -24,7 +24,7 @@ if (!defined('LACONICA')) { exit(1); }
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Subscription extends DB_DataObject
|
class Subscription extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
@ -32,8 +32,8 @@ class Subscription extends DB_DataObject
|
|||||||
public $__table = 'subscription'; // table name
|
public $__table = 'subscription'; // table name
|
||||||
public $subscriber; // int(4) primary_key not_null
|
public $subscriber; // int(4) primary_key not_null
|
||||||
public $subscribed; // int(4) primary_key not_null
|
public $subscribed; // int(4) primary_key not_null
|
||||||
public $token; // varchar(255)
|
public $token; // varchar(255)
|
||||||
public $secret; // varchar(255)
|
public $secret; // varchar(255)
|
||||||
public $created; // datetime() not_null
|
public $created; // datetime() not_null
|
||||||
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class Token extends DB_DataObject
|
class Token extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
@ -14,7 +14,7 @@ class Token extends DB_DataObject
|
|||||||
public $tok; // char(32) primary_key not_null
|
public $tok; // char(32) primary_key not_null
|
||||||
public $secret; // char(32) not_null
|
public $secret; // char(32) not_null
|
||||||
public $type; // tinyint(1) not_null
|
public $type; // tinyint(1) not_null
|
||||||
public $state; // tinyint(1)
|
public $state; // tinyint(1)
|
||||||
public $created; // datetime() not_null
|
public $created; // datetime() not_null
|
||||||
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ if (!defined('LACONICA')) { exit(1); }
|
|||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
require_once 'Validate.php';
|
require_once 'Validate.php';
|
||||||
|
|
||||||
class User extends DB_DataObject
|
class User extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
@ -32,14 +32,15 @@ class User extends DB_DataObject
|
|||||||
public $__table = 'user'; // table name
|
public $__table = 'user'; // table name
|
||||||
public $id; // int(4) primary_key not_null
|
public $id; // int(4) primary_key not_null
|
||||||
public $nickname; // varchar(64) unique_key
|
public $nickname; // varchar(64) unique_key
|
||||||
public $password; // varchar(255)
|
public $password; // varchar(255)
|
||||||
public $email; // varchar(255) unique_key
|
public $email; // varchar(255) unique_key
|
||||||
public $jabber; // varchar(255) unique_key
|
public $jabber; // varchar(255) unique_key
|
||||||
public $jabbernotify; // tinyint(1)
|
public $jabbernotify; // tinyint(1)
|
||||||
public $updatefrompresence; // tinyint(1)
|
public $jabberreplies; // tinyint(1)
|
||||||
|
public $updatefrompresence; // tinyint(1)
|
||||||
public $sms; // varchar(64) unique_key
|
public $sms; // varchar(64) unique_key
|
||||||
public $carrier; // int(4)
|
public $carrier; // int(4)
|
||||||
public $smsnotify; // tinyint(1)
|
public $smsnotify; // tinyint(1)
|
||||||
public $uri; // varchar(255) unique_key
|
public $uri; // varchar(255) unique_key
|
||||||
public $created; // datetime() not_null
|
public $created; // datetime() not_null
|
||||||
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
*/
|
*/
|
||||||
require_once 'DB/DataObject.php';
|
require_once 'DB/DataObject.php';
|
||||||
|
|
||||||
class User_openid extends DB_DataObject
|
class User_openid extends DB_DataObject
|
||||||
{
|
{
|
||||||
###START_AUTOCODE
|
###START_AUTOCODE
|
||||||
/* the code below is auto generated do not remove the above tag */
|
/* the code below is auto generated do not remove the above tag */
|
||||||
|
@ -159,6 +159,7 @@ password = 2
|
|||||||
email = 2
|
email = 2
|
||||||
jabber = 2
|
jabber = 2
|
||||||
jabbernotify = 17
|
jabbernotify = 17
|
||||||
|
jabberreplies = 17
|
||||||
updatefrompresence = 17
|
updatefrompresence = 17
|
||||||
sms = 2
|
sms = 2
|
||||||
carrier = 1
|
carrier = 1
|
||||||
|
@ -47,6 +47,7 @@ create table user (
|
|||||||
email varchar(255) unique key comment 'email address for password recovery etc.',
|
email varchar(255) unique key comment 'email address for password recovery etc.',
|
||||||
jabber varchar(255) unique key comment 'jabber ID for notices',
|
jabber varchar(255) unique key comment 'jabber ID for notices',
|
||||||
jabbernotify tinyint default 0 comment 'whether to send notices to jabber',
|
jabbernotify tinyint default 0 comment 'whether to send notices to jabber',
|
||||||
|
jabberreplies tinyint default 0 comment 'whether to send notices to jabber on replies',
|
||||||
updatefrompresence tinyint default 0 comment 'whether to record updates from Jabber presence notices',
|
updatefrompresence tinyint default 0 comment 'whether to record updates from Jabber presence notices',
|
||||||
sms varchar(64) unique key comment 'sms phone number',
|
sms varchar(64) unique key comment 'sms phone number',
|
||||||
carrier integer comment 'foreign key to sms_carrier' references sms_carrier (id),
|
carrier integer comment 'foreign key to sms_carrier' references sms_carrier (id),
|
||||||
|
@ -194,8 +194,6 @@ function jabber_special_presence($type, $to=NULL, $show=NULL, $status=NULL) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function jabber_broadcast_notice($notice) {
|
function jabber_broadcast_notice($notice) {
|
||||||
# First, get users subscribed to this profile
|
|
||||||
# XXX: use a join here rather than looping through results
|
|
||||||
$profile = Profile::staticGet($notice->profile_id);
|
$profile = Profile::staticGet($notice->profile_id);
|
||||||
if (!$profile) {
|
if (!$profile) {
|
||||||
common_log(LOG_WARNING, 'Refusing to broadcast notice with ' .
|
common_log(LOG_WARNING, 'Refusing to broadcast notice with ' .
|
||||||
@ -203,23 +201,50 @@ function jabber_broadcast_notice($notice) {
|
|||||||
__FILE__);
|
__FILE__);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
$sub = new Subscription();
|
$sent_to = array();
|
||||||
$sub->subscribed = $notice->profile_id;
|
# First, get users who this is a direct reply to
|
||||||
if ($sub->find()) {
|
$reply = new Reply();
|
||||||
while ($sub->fetch()) {
|
$reply->notice_id = $notice->id;
|
||||||
$user = User::staticGet($sub->subscriber);
|
if ($reply->find()) {
|
||||||
if ($user && $user->jabber && $user->jabbernotify) {
|
while ($reply->fetch()) {
|
||||||
|
$user = User::staticGet($reply->profile_id);
|
||||||
|
if ($user && $user->jabber && $user->jabbernotify && $user->jabberreplies) {
|
||||||
common_log(LOG_INFO,
|
common_log(LOG_INFO,
|
||||||
'Sending notice ' . $notice->id . ' to ' . $user->jabber,
|
'Sending reply notice ' . $notice->id . ' to ' . $user->jabber,
|
||||||
__FILE__);
|
__FILE__);
|
||||||
$success = jabber_send_notice($user->jabber, $notice);
|
$success = jabber_send_notice($user->jabber, $notice);
|
||||||
if (!$success) {
|
if ($success) {
|
||||||
|
# Remember so we don't send twice
|
||||||
|
$sent_to[$user->id] = true;
|
||||||
|
} else {
|
||||||
# XXX: Not sure, but I think that's the right thing to do
|
# XXX: Not sure, but I think that's the right thing to do
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
# Now, get users subscribed to this profile
|
||||||
|
# XXX: use a join here rather than looping through results
|
||||||
|
$sub = new Subscription();
|
||||||
|
$sub->subscribed = $notice->profile_id;
|
||||||
|
|
||||||
|
if ($sub->find()) {
|
||||||
|
while ($sub->fetch()) {
|
||||||
|
$user = User::staticGet($sub->subscriber);
|
||||||
|
if ($user && $user->jabber && $user->jabbernotify && !$sent_to[$user->id]) {
|
||||||
|
common_log(LOG_INFO,
|
||||||
|
'Sending notice ' . $notice->id . ' to ' . $user->jabber,
|
||||||
|
__FILE__);
|
||||||
|
$success = jabber_send_notice($user->jabber, $notice);
|
||||||
|
if ($success) {
|
||||||
|
$sent_to[$user->id] = true;
|
||||||
|
# XXX: Not sure, but I think that's the right thing to do
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user