repair duplicate nickname accounts caused by race condition
This commit is contained in:
parent
067626380d
commit
6bc5d6f17b
2 changed files with 19 additions and 1 deletions
2
boot.php
2
boot.php
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
|
|
||||||
define ( 'FRIENDIKA_VERSION', '2.1.927' );
|
define ( 'FRIENDIKA_VERSION', '2.1.928' );
|
||||||
define ( 'DFRN_PROTOCOL_VERSION', '2.1' );
|
define ( 'DFRN_PROTOCOL_VERSION', '2.1' );
|
||||||
define ( 'DB_UPDATE_VERSION', 1045 );
|
define ( 'DB_UPDATE_VERSION', 1045 );
|
||||||
|
|
||||||
|
|
|
@ -199,6 +199,24 @@ function register_post(&$a) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* if somebody clicked submit twice very quickly, they could end up with two accounts
|
||||||
|
* due to race condition. Remove this one.
|
||||||
|
*/
|
||||||
|
|
||||||
|
$r = q("SELECT `uid` FROM `user`
|
||||||
|
WHERE `nickname` = '%s' ",
|
||||||
|
dbesc($nickname)
|
||||||
|
);
|
||||||
|
if((count($r) > 1) && $newuid) {
|
||||||
|
$err .= t('Nickname is already registered. Please choose another.') . EOL;
|
||||||
|
q("DELETE FROM `user` WHERE `uid` = %d LIMIT 1",
|
||||||
|
intval($newuid)
|
||||||
|
);
|
||||||
|
notice ($err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if(x($newuid) !== false) {
|
if(x($newuid) !== false) {
|
||||||
$r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` )
|
$r = q("INSERT INTO `profile` ( `uid`, `profile-name`, `is-default`, `name`, `photo`, `thumb`, `publish`, `net-publish` )
|
||||||
VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ",
|
VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, %d ) ",
|
||||||
|
|
Loading…
Reference in a new issue