Changes to make contacts delete all content from the user when a user is deleted.
NOTE: I didn't add "AND account_removed = 0" to facebook.php because I don't have a clone of the addons repository. Please someone do that for me. Thanks. Please check carefully. I tested locally on my server, but not with other servers.
This commit is contained in:
parent
d3290f314f
commit
7de5c7ebe1
|
@ -22,7 +22,8 @@ function user_remove($uid) {
|
||||||
$r[0]['nickname']
|
$r[0]['nickname']
|
||||||
);
|
);
|
||||||
|
|
||||||
q("DELETE FROM `contact` WHERE `uid` = %d", intval($uid));
|
// don't delete yet, will be done later when contacts have deleted my stuff
|
||||||
|
// q("DELETE FROM `contact` WHERE `uid` = %d", intval($uid));
|
||||||
q("DELETE FROM `gcign` WHERE `uid` = %d", intval($uid));
|
q("DELETE FROM `gcign` WHERE `uid` = %d", intval($uid));
|
||||||
q("DELETE FROM `group` WHERE `uid` = %d", intval($uid));
|
q("DELETE FROM `group` WHERE `uid` = %d", intval($uid));
|
||||||
q("DELETE FROM `group_member` WHERE `uid` = %d", intval($uid));
|
q("DELETE FROM `group_member` WHERE `uid` = %d", intval($uid));
|
||||||
|
@ -41,7 +42,10 @@ function user_remove($uid) {
|
||||||
q("DELETE FROM `pconfig` WHERE `uid` = %d", intval($uid));
|
q("DELETE FROM `pconfig` WHERE `uid` = %d", intval($uid));
|
||||||
q("DELETE FROM `search` WHERE `uid` = %d", intval($uid));
|
q("DELETE FROM `search` WHERE `uid` = %d", intval($uid));
|
||||||
q("DELETE FROM `spam` WHERE `uid` = %d", intval($uid));
|
q("DELETE FROM `spam` WHERE `uid` = %d", intval($uid));
|
||||||
q("DELETE FROM `user` WHERE `uid` = %d", intval($uid));
|
// don't delete yet, will be done later when contacts have deleted my stuff
|
||||||
|
// q("DELETE FROM `user` WHERE `uid` = %d", intval($uid));
|
||||||
|
q("UPDATE `user` SET `account_removed` = 1, `account_expires_on` = UTC_TIMESTAMP() WHERE `uid` = %d", intval($uid));
|
||||||
|
proc_run('php', "include/notifier.php", "removeme", $uid);
|
||||||
if($uid == local_user()) {
|
if($uid == local_user()) {
|
||||||
unset($_SESSION['authenticated']);
|
unset($_SESSION['authenticated']);
|
||||||
unset($_SESSION['uid']);
|
unset($_SESSION['uid']);
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
// process normal login request
|
// process normal login request
|
||||||
|
|
||||||
$r = q("SELECT * FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' )
|
$r = q("SELECT * FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' )
|
||||||
AND `password` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `verified` = 1 LIMIT 1",
|
AND `password` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1",
|
||||||
dbesc(trim($user)),
|
dbesc(trim($user)),
|
||||||
dbesc(trim($user)),
|
dbesc(trim($user)),
|
||||||
dbesc($encrypted)
|
dbesc($encrypted)
|
||||||
|
|
|
@ -59,7 +59,7 @@ if((isset($_SESSION)) && (x($_SESSION,'authenticated')) && ((! (x($_POST,'auth-p
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("SELECT `user`.*, `user`.`pubkey` as `upubkey`, `user`.`prvkey` as `uprvkey`
|
$r = q("SELECT `user`.*, `user`.`pubkey` as `upubkey`, `user`.`prvkey` as `uprvkey`
|
||||||
FROM `user` WHERE `uid` = %d AND `blocked` = 0 AND `account_expired` = 0 AND `verified` = 1 LIMIT 1",
|
FROM `user` WHERE `uid` = %d AND `blocked` = 0 AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1",
|
||||||
intval($_SESSION['uid'])
|
intval($_SESSION['uid'])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -147,7 +147,7 @@ else {
|
||||||
|
|
||||||
$r = q("SELECT `user`.*, `user`.`pubkey` as `upubkey`, `user`.`prvkey` as `uprvkey`
|
$r = q("SELECT `user`.*, `user`.`pubkey` as `upubkey`, `user`.`prvkey` as `uprvkey`
|
||||||
FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' )
|
FROM `user` WHERE ( `email` = '%s' OR `nickname` = '%s' )
|
||||||
AND `password` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `verified` = 1 LIMIT 1",
|
AND `password` = '%s' AND `blocked` = 0 AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1",
|
||||||
dbesc(trim($_POST['username'])),
|
dbesc(trim($_POST['username'])),
|
||||||
dbesc(trim($_POST['username'])),
|
dbesc(trim($_POST['username'])),
|
||||||
dbesc($encrypted)
|
dbesc($encrypted)
|
||||||
|
|
|
@ -323,7 +323,7 @@ function delivery_run($argv, $argc){
|
||||||
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||||
AND `contact`.`network` = '%s' AND `user`.`nickname` = '%s'
|
AND `contact`.`network` = '%s' AND `user`.`nickname` = '%s'
|
||||||
$sql_extra
|
$sql_extra
|
||||||
AND `user`.`account_expired` = 0 LIMIT 1",
|
AND `user`.`account_expired` = 0 AND `user`.`account_removed` = 0 LIMIT 1",
|
||||||
dbesc(NETWORK_DFRN),
|
dbesc(NETWORK_DFRN),
|
||||||
dbesc($nickname)
|
dbesc($nickname)
|
||||||
);
|
);
|
||||||
|
|
|
@ -16,7 +16,7 @@ function diaspora_dispatch_public($msg) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$r = q("SELECT `user`.* FROM `user` WHERE `user`.`uid` IN ( SELECT `contact`.`uid` FROM `contact` WHERE `contact`.`network` = '%s' AND `contact`.`addr` = '%s' ) AND `account_expired` = 0 ",
|
$r = q("SELECT `user`.* FROM `user` WHERE `user`.`uid` IN ( SELECT `contact`.`uid` FROM `contact` WHERE `contact`.`network` = '%s' AND `contact`.`addr` = '%s' ) AND `account_expired` = 0 AND `account_removed` = 0 ",
|
||||||
dbesc(NETWORK_DIASPORA),
|
dbesc(NETWORK_DIASPORA),
|
||||||
dbesc($msg['author'])
|
dbesc($msg['author'])
|
||||||
);
|
);
|
||||||
|
|
|
@ -134,6 +134,20 @@ function notifier_run($argv, $argc){
|
||||||
$recipients[] = $suggest[0]['cid'];
|
$recipients[] = $suggest[0]['cid'];
|
||||||
$item = $suggest[0];
|
$item = $suggest[0];
|
||||||
}
|
}
|
||||||
|
elseif($cmd === 'removeme') {
|
||||||
|
$r = q("SELECT * FROM `user` WHERE `uid` = %d LIMIT 1", intval($item_id));
|
||||||
|
$user = $r[0];
|
||||||
|
$r = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1", intval($item_id));
|
||||||
|
$self = $r[0];
|
||||||
|
$r = q("SELECT * FROM `contact` WHERE `self` = 0 AND `uid` = %d", intval($item_id));
|
||||||
|
if(! count($r))
|
||||||
|
return;
|
||||||
|
require_once('include/Contact.php');
|
||||||
|
foreach($r as $contact) {
|
||||||
|
terminate_friendship($user, $self, $contact);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
// find ancestors
|
// find ancestors
|
||||||
|
@ -575,7 +589,7 @@ function notifier_run($argv, $argc){
|
||||||
AND `contact`.`pending` = 0
|
AND `contact`.`pending` = 0
|
||||||
AND `contact`.`network` = '%s' AND `user`.`nickname` = '%s'
|
AND `contact`.`network` = '%s' AND `user`.`nickname` = '%s'
|
||||||
$sql_extra
|
$sql_extra
|
||||||
AND `user`.`account_expired` = 0 LIMIT 1",
|
AND `user`.`account_expired` = 0 AND `user`.`account_removed` = 0 LIMIT 1",
|
||||||
dbesc(NETWORK_DFRN),
|
dbesc(NETWORK_DFRN),
|
||||||
dbesc($nickname)
|
dbesc($nickname)
|
||||||
);
|
);
|
||||||
|
|
|
@ -133,7 +133,7 @@ class FKOAuth1 extends OAuthServer {
|
||||||
function loginUser($uid){
|
function loginUser($uid){
|
||||||
logger("FKOAuth1::loginUser $uid");
|
logger("FKOAuth1::loginUser $uid");
|
||||||
$a = get_app();
|
$a = get_app();
|
||||||
$r = q("SELECT * FROM `user` WHERE uid=%d AND `blocked` = 0 AND `account_expired` = 0 AND `verified` = 1 LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE uid=%d AND `blocked` = 0 AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1",
|
||||||
intval($uid)
|
intval($uid)
|
||||||
);
|
);
|
||||||
if(count($r)){
|
if(count($r)){
|
||||||
|
|
|
@ -68,6 +68,16 @@ function poller_run($argv, $argc){
|
||||||
AND `account_expires_on` != '0000-00-00 00:00:00'
|
AND `account_expires_on` != '0000-00-00 00:00:00'
|
||||||
AND `account_expires_on` < UTC_TIMESTAMP() ");
|
AND `account_expires_on` < UTC_TIMESTAMP() ");
|
||||||
|
|
||||||
|
// delete user and contact records for recently removed accounts
|
||||||
|
|
||||||
|
$r = q("SELECT * FROM `user` WHERE `account_removed` = 1 AND `account_expires_on` < UTC_TIMESTAMP() - INTERVAL 3 DAY");
|
||||||
|
if (count($r)) {
|
||||||
|
foreach($r as $user) {
|
||||||
|
q("DELETE FROM `contact` WHERE `uid` = %d", intval($user['uid']));
|
||||||
|
q("DELETE FROM `user` WHERE `uid` = %d", intval($user['uid']));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$abandon_days = intval(get_config('system','account_abandon_days'));
|
$abandon_days = intval(get_config('system','account_abandon_days'));
|
||||||
if($abandon_days < 1)
|
if($abandon_days < 1)
|
||||||
$abandon_days = 0;
|
$abandon_days = 0;
|
||||||
|
@ -154,7 +164,7 @@ function poller_run($argv, $argc){
|
||||||
$sql_extra
|
$sql_extra
|
||||||
AND `self` = 0 AND `contact`.`blocked` = 0 AND `contact`.`readonly` = 0
|
AND `self` = 0 AND `contact`.`blocked` = 0 AND `contact`.`readonly` = 0
|
||||||
AND `contact`.`archive` = 0
|
AND `contact`.`archive` = 0
|
||||||
AND `user`.`account_expired` = 0 $abandon_sql ORDER BY RAND()",
|
AND `user`.`account_expired` = 0 AND `user`.`account_removed` = 0 $abandon_sql ORDER BY RAND()",
|
||||||
intval(CONTACT_IS_SHARING),
|
intval(CONTACT_IS_SHARING),
|
||||||
intval(CONTACT_IS_FRIEND),
|
intval(CONTACT_IS_FRIEND),
|
||||||
dbesc(NETWORK_DIASPORA),
|
dbesc(NETWORK_DIASPORA),
|
||||||
|
|
|
@ -77,7 +77,7 @@ function dfrn_notify_post(&$a) {
|
||||||
FROM `contact`
|
FROM `contact`
|
||||||
LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
|
LEFT JOIN `user` ON `contact`.`uid` = `user`.`uid`
|
||||||
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0
|
||||||
AND `user`.`nickname` = '%s' AND `user`.`account_expired` = 0 $sql_extra LIMIT 1",
|
AND `user`.`nickname` = '%s' AND `user`.`account_expired` = 0 AND `user`.`account_removed` = 0 $sql_extra LIMIT 1",
|
||||||
dbesc($a->argv[1])
|
dbesc($a->argv[1])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -220,7 +220,7 @@ function dfrn_notify_content(&$a) {
|
||||||
|
|
||||||
$r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`page-flags` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
|
$r = q("SELECT `contact`.*, `user`.`nickname`, `user`.`page-flags` FROM `contact` LEFT JOIN `user` ON `user`.`uid` = `contact`.`uid`
|
||||||
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `user`.`nickname` = '%s'
|
WHERE `contact`.`blocked` = 0 AND `contact`.`pending` = 0 AND `user`.`nickname` = '%s'
|
||||||
AND `user`.`account_expired` = 0 $sql_extra LIMIT 1",
|
AND `user`.`account_expired` = 0 AND `user`.`account_removed` = 0 $sql_extra LIMIT 1",
|
||||||
dbesc($a->argv[1])
|
dbesc($a->argv[1])
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ function openid_content(&$a) {
|
||||||
|
|
||||||
$r = q("SELECT `user`.*, `user`.`pubkey` as `upubkey`, `user`.`prvkey` as `uprvkey`
|
$r = q("SELECT `user`.*, `user`.`pubkey` as `upubkey`, `user`.`prvkey` as `uprvkey`
|
||||||
FROM `user` WHERE `openid` = '%s' AND `blocked` = 0
|
FROM `user` WHERE `openid` = '%s' AND `blocked` = 0
|
||||||
AND `account_expired` = 0 AND `verified` = 1 LIMIT 1",
|
AND `account_expired` = 0 AND `account_removed` = 0 AND `verified` = 1 LIMIT 1",
|
||||||
dbesc($authid)
|
dbesc($authid)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ function post_post(&$a) {
|
||||||
else {
|
else {
|
||||||
$nickname = $a->argv[2];
|
$nickname = $a->argv[2];
|
||||||
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s'
|
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s'
|
||||||
AND `account_expired` = 0 LIMIT 1",
|
AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
||||||
dbesc($nickname)
|
dbesc($nickname)
|
||||||
);
|
);
|
||||||
if(! count($r))
|
if(! count($r))
|
||||||
|
|
|
@ -12,7 +12,7 @@ function profile_init(&$a) {
|
||||||
if($a->argc > 1)
|
if($a->argc > 1)
|
||||||
$which = $a->argv[1];
|
$which = $a->argv[1];
|
||||||
else {
|
else {
|
||||||
$r = q("select nickname from user where blocked = 0 and account_expired = 0 and verified = 1 order by rand() limit 1");
|
$r = q("select nickname from user where blocked = 0 and account_expired = 0 and account_removed = 0 and verified = 1 order by rand() limit 1");
|
||||||
if(count($r)) {
|
if(count($r)) {
|
||||||
goaway($a->get_baseurl() . '/profile/' . $r[0]['nickname']);
|
goaway($a->get_baseurl() . '/profile/' . $r[0]['nickname']);
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ function pubsub_init(&$a) {
|
||||||
|
|
||||||
$subscribe = (($hub_mode === 'subscribe') ? 1 : 0);
|
$subscribe = (($hub_mode === 'subscribe') ? 1 : 0);
|
||||||
|
|
||||||
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
||||||
dbesc($nick)
|
dbesc($nick)
|
||||||
);
|
);
|
||||||
if(! count($r)) {
|
if(! count($r)) {
|
||||||
|
@ -112,7 +112,7 @@ function pubsub_post(&$a) {
|
||||||
$nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : '');
|
$nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : '');
|
||||||
$contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0 );
|
$contact_id = (($a->argc > 2) ? intval($a->argv[2]) : 0 );
|
||||||
|
|
||||||
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
||||||
dbesc($nick)
|
dbesc($nick)
|
||||||
);
|
);
|
||||||
if(! count($r))
|
if(! count($r))
|
||||||
|
|
|
@ -31,7 +31,7 @@ function receive_post(&$a) {
|
||||||
|
|
||||||
$guid = $a->argv[2];
|
$guid = $a->argv[2];
|
||||||
|
|
||||||
$r = q("SELECT * FROM `user` WHERE `guid` = '%s' AND `account_expired` = 0 LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `guid` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
||||||
dbesc($guid)
|
dbesc($guid)
|
||||||
);
|
);
|
||||||
if(! count($r))
|
if(! count($r))
|
||||||
|
|
|
@ -30,7 +30,7 @@ function salmon_post(&$a) {
|
||||||
$nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : '');
|
$nick = (($a->argc > 1) ? notags(trim($a->argv[1])) : '');
|
||||||
$mentions = (($a->argc > 2 && $a->argv[2] === 'mention') ? true : false);
|
$mentions = (($a->argc > 2 && $a->argv[2] === 'mention') ? true : false);
|
||||||
|
|
||||||
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 LIMIT 1",
|
$r = q("SELECT * FROM `user` WHERE `nickname` = '%s' AND `account_expired` = 0 AND `account_removed` = 0 LIMIT 1",
|
||||||
dbesc($nick)
|
dbesc($nick)
|
||||||
);
|
);
|
||||||
if(! count($r))
|
if(! count($r))
|
||||||
|
|
Loading…
Reference in a new issue