*/
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();
+ }
+
}