X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FConsumer.php;h=ce399f2783f7e965b59ecc85effe0078f696193c;hb=fa4a2d34855da5eca29d81409cb5fbd64f13faba;hp=7f64d3ea617969e4b77882ea679f3cc7c5a3ca6b;hpb=f6615f70e5278d22eb29cffb3f2273d19e75b71b;p=quix0rs-gnu-social.git diff --git a/classes/Consumer.php b/classes/Consumer.php index 7f64d3ea61..ce399f2783 100644 --- a/classes/Consumer.php +++ b/classes/Consumer.php @@ -2,22 +2,68 @@ /** * Table Definition for consumer */ -require_once INSTALLDIR.'classes/Memcached_DataObject.php'; +require_once INSTALLDIR.'/classes/Memcached_DataObject.php'; -class Consumer extends Memcached_DataObject +class Consumer extends Memcached_DataObject { ###START_AUTOCODE /* the code below is auto generated do not remove the above tag */ public $__table = 'consumer'; // table name public $consumer_key; // varchar(255) primary_key not_null + public $consumer_secret; // varchar(255) not_null public $seed; // char(32) not_null - public $created; // datetime() not_null - public $modified; // timestamp() not_null default_CURRENT_TIMESTAMP + public $created; // datetime not_null + public $modified; // timestamp not_null default_CURRENT_TIMESTAMP /* Static get */ - function staticGet($k,$v=NULL) { return Memcached_DataObject::staticGet('Consumer',$k,$v); } + function staticGet($k,$v=null) + { return Memcached_DataObject::staticGet('Consumer',$k,$v); } /* the code above is auto generated do not remove the tag below */ ###END_AUTOCODE + + static function generateNew() + { + $cons = new Consumer(); + $rand = common_good_rand(16); + + $cons->seed = $rand; + $cons->consumer_key = md5(time() + $rand); + $cons->consumer_secret = md5(md5(time() + time() + $rand)); + $cons->created = common_sql_now(); + + return $cons; + } + + /** + * Delete a Consumer and related tokens and nonces + * + * XXX: Should this happen in an OAuthDataStore instead? + * + */ + function delete() + { + // XXX: Is there any reason NOT to do this kind of cleanup? + + $this->_deleteTokens(); + $this->_deleteNonces(); + + parent::delete(); + } + + function _deleteTokens() + { + $token = new Token(); + $token->consumer_key = $this->consumer_key; + $token->delete(); + } + + function _deleteNonces() + { + $nonce = new Nonce(); + $nonce->consumer_key = $this->consumer_key; + $nonce->delete(); + } + }