Override login_token's sequenceKey() so that it behaves correctly

This commit is contained in:
Craig Andrews 2009-12-10 13:08:24 -05:00
parent c0aad854f7
commit b07e1143cc
2 changed files with 14 additions and 1 deletions

View File

@ -39,4 +39,17 @@ class Login_token extends Memcached_DataObject
/* the code above is auto generated do not remove the tag below */ /* the code above is auto generated do not remove the tag below */
###END_AUTOCODE ###END_AUTOCODE
/*
DB_DataObject calculates the sequence key(s) by taking the first key returned by the keys() function.
In this case, the keys() function returns user_id as the first key. user_id is not a sequence, but
DB_DataObject's sequenceKey() will incorrectly think it is. Then, since the sequenceKey() is a numeric
type, but is not set to autoincrement in the database, DB_DataObject will create a _seq table and
manage the sequence itself. This is not the correct behavior for the user_id in this class.
So we override that incorrect behavior, and simply say there is no sequence key.
*/
function sequenceKey()
{
return array(false,false);
}
} }

View File

@ -584,7 +584,7 @@ class LoginCommand extends Command
function execute($channel) function execute($channel)
{ {
$disabled = common_config('logincommand','disabled'); $disabled = common_config('logincommand','disabled');
if(isset($disabled)) { if(isset($disabled) && $disabled) {
$channel->error($this->user, _('Login command is disabled')); $channel->error($this->user, _('Login command is disabled'));
return; return;
} }