3 * Table Definition for oauth_application
5 require_once INSTALLDIR.'/classes/Memcached_DataObject.php';
7 class Oauth_application extends Memcached_DataObject
10 /* the code below is auto generated do not remove the above tag */
12 public $__table = 'oauth_application'; // table name
13 public $id; // int(4) primary_key not_null
14 public $owner; // int(4) not_null
15 public $consumer_key; // varchar(255) not_null
16 public $name; // varchar(255) not_null
17 public $description; // varchar(255)
18 public $icon; // varchar(255) not_null
19 public $source_url; // varchar(255)
20 public $organization; // varchar(255)
21 public $homepage; // varchar(255)
22 public $callback_url; // varchar(255) not_null
23 public $type; // tinyint(1)
24 public $access_type; // tinyint(1)
25 public $created; // datetime not_null
26 public $modified; // timestamp not_null default_CURRENT_TIMESTAMP
29 function staticGet($k,$v=NULL) {
30 return Memcached_DataObject::staticGet('Oauth_application',$k,$v);
32 /* the code above is auto generated do not remove the tag below */
36 public static $readAccess = 1;
37 public static $writeAccess = 2;
39 public static $browser = 1;
40 public static $desktop = 2;
42 function getConsumer()
44 return Consumer::staticGet('consumer_key', $this->consumer_key);
47 static function maxDesc()
49 $desclimit = common_config('application', 'desclimit');
50 // null => use global limit (distinct from 0!)
51 if (is_null($desclimit)) {
52 $desclimit = common_config('site', 'textlimit');
57 static function descriptionTooLong($desc)
59 $desclimit = self::maxDesc();
60 return ($desclimit > 0 && !empty($desc) && (mb_strlen($desc) > $desclimit));
63 function setAccessFlags($read, $write)
66 $this->access_type |= self::$readAccess;
68 $this->access_type &= ~self::$readAccess;
72 $this->access_type |= self::$writeAccess;
74 $this->access_type &= ~self::$writeAccess;
78 function setOriginal($filename)
80 $imagefile = new ImageFile($this->id, Avatar::path($filename));
82 // XXX: Do we want to have a bunch of different size icons? homepage, stream, mini?
83 // or just one and control size via CSS? --Zach
86 $this->icon = Avatar::url($filename);
87 common_debug(common_log_objstring($this));
88 return $this->update($orig);
91 static function getByConsumerKey($key)
97 $app = new Oauth_application();
98 $app->consumer_key = $key;
100 $result = $app->find(true);
102 return empty($result) ? null : $app;
106 * Handle an image upload
108 * Does all the magic for handling an image upload, and crops the
114 function uploadLogo()
116 if ($_FILES['app_icon']['error'] ==
120 $imagefile = ImageFile::fromUpload('app_icon');
121 } catch (Exception $e) {
122 common_debug("damn that sucks");
123 $this->showForm($e->getMessage());
127 $filename = Avatar::filename($this->id,
128 image_type_to_extension($imagefile->type),
130 'oauth-app-icon-'.common_timestamp());
132 $filepath = Avatar::path($filename);
134 move_uploaded_file($imagefile->filepath, $filepath);
136 $this->setOriginal($filename);
142 $this->_deleteAppUsers();
144 $consumer = $this->getConsumer();
150 function _deleteAppUsers()
152 $oauser = new Oauth_application_user();
153 $oauser->application_id = $this->id;