X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FLogin_token.php;h=5c463d55c663d708100ff7c003db93357eb6e44c;hb=7c373edf4d86c704320743614c696a44ef363858;hp=20d5d9dbcefcb3c62b9a9bfe8a7cf894f245a292;hpb=41dfea163460bb216483e8e12fff7a8afefbb4fb;p=quix0rs-gnu-social.git diff --git a/classes/Login_token.php b/classes/Login_token.php index 20d5d9dbce..5c463d55c6 100644 --- a/classes/Login_token.php +++ b/classes/Login_token.php @@ -23,7 +23,7 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); } require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Login_token extends Memcached_DataObject +class Login_token extends Managed_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ @@ -34,30 +34,30 @@ class Login_token extends Memcached_DataObject public $created; // datetime() not_null public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP - /* Static get */ - function staticGet($k,$v=NULL) { return DB_DataObject::staticGet('Login_token',$k,$v); } - /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE - const TIMEOUT = 120; // seconds after which to timeout the token - - /* - 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() + public static function schemaDef() { - return array(false,false); + return array( + 'fields' => array( + 'user_id' => array('type' => 'int', 'not null' => true, 'description' => 'user owning this token'), + 'token' => array('type' => 'char', 'length' => 32, 'not null' => true, 'description' => 'token useable for logging in'), + 'created' => array('type' => 'datetime', 'not null' => true, 'description' => 'date this record was created'), + 'modified' => array('type' => 'timestamp', 'not null' => true, 'description' => 'date this record was modified'), + ), + 'primary key' => array('user_id'), + 'foreign keys' => array( + 'login_token_user_id_fkey' => array('user', array('user_id' => 'id')), + ), + ); } + const TIMEOUT = 120; // seconds after which to timeout the token + function makeNew($user) { - $login_token = Login_token::staticGet('user_id', $user->id); + $login_token = Login_token::getKV('user_id', $user->id); if (!empty($login_token)) { $login_token->delete(); @@ -66,7 +66,7 @@ class Login_token extends Memcached_DataObject $login_token = new Login_token(); $login_token->user_id = $user->id; - $login_token->token = common_good_rand(16); + $login_token->token = common_random_hexstr(16); $login_token->created = common_sql_now(); $result = $login_token->insert();