basic *account* removal, but the channel removal which it calls still needs (lots of) work. Oh and the intro table is no longer used and won't be - so it's gone.

This commit is contained in:
friendica 2013-08-04 17:17:00 -07:00
parent 1b7b53f409
commit 68d907803a
4 changed files with 52 additions and 24 deletions

View File

@ -43,7 +43,7 @@ require_once('include/taxonomy.php');
define ( 'RED_PLATFORM', 'Red Matrix' );
define ( 'RED_VERSION', trim(file_get_contents('version.inc')) . 'R');
define ( 'ZOT_REVISION', 1 );
define ( 'DB_UPDATE_VERSION', 1057 );
define ( 'DB_UPDATE_VERSION', 1058 );
define ( 'EOL', '<br />' . "\r\n" );
define ( 'ATOM_TIME', 'Y-m-d\TH:i:s\Z' );

View File

@ -115,6 +115,49 @@ function user_remove($uid) {
}
function account_remove($account_id) {
if(! intval($account_id)) {
logger('account_remove: no account.');
return false;
}
// Don't let anybody nuke the only admin account.
$r = q("select account_id from account where (account_roles & %d)",
intval(ACCOUNT_ROLE_ADMIN)
);
if($r !== false && count($r) == 1 && $r[0]['account_id'] == $account_id) {
logger("Unable to remove the only remaining admin account");
return false;
}
$r = q("select * from account where account_id = %d limit 1",
intval($account_id)
);
if(! $r) {
logger('account_remove: No account with id: ' . $account_id);
return false;
}
$x = q("select channel_id from channel where channel_account_id = %d",
intval($account_id)
);
if($x) {
foreach($x as $xx) {
channel_remove($xx['channel_id']);
}
}
$r = q("delete from account where account_id = %d limit 1",
intval($account_id)
);
return $r;
}
function channel_remove($channel_id) {

View File

@ -386,28 +386,6 @@ CREATE TABLE IF NOT EXISTS `hubloc` (
KEY `hubloc_connected` (`hubloc_connected`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `intro` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`uid` int(10) unsigned NOT NULL,
`fid` int(11) NOT NULL DEFAULT '0',
`contact-id` int(11) NOT NULL,
`knowyou` tinyint(1) NOT NULL,
`duplex` tinyint(1) NOT NULL DEFAULT '0',
`note` text NOT NULL,
`hash` char(255) NOT NULL,
`datetime` datetime NOT NULL,
`blocked` tinyint(1) NOT NULL DEFAULT '1',
`ignore` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`),
KEY `uid` (`uid`),
KEY `fid` (`fid`),
KEY `hash` (`hash`),
KEY `datetime` (`datetime`),
KEY `blocked` (`blocked`),
KEY `ignore` (`ignore`),
KEY `contact-id` (`contact-id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE IF NOT EXISTS `issue` (
`issue_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`issue_created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',

View File

@ -1,6 +1,6 @@
<?php
define( 'UPDATE_VERSION' , 1057 );
define( 'UPDATE_VERSION' , 1058 );
/**
*
@ -663,3 +663,10 @@ ADD INDEX ( `xchan_instance_url` ) ");
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}
function update_r1057() {
$r = q("drop table intro");
if($r)
return UPDATE_SUCCESS;
return UPDATE_FAILED;
}