hasMany('Models\OAuth2\AccessToken'); } public function client(){ return $this->belongsTo('Models\OAuth2\Client'); } /** * @return IClient */ public function getClient(){ return Cache::remember ( 'client_'.$this->client_id, Config::get("cache_regions.region_clients_lifetime", 1140), function() { return $this->client()->first(); } ); } public function user(){ return $this->belongsTo('Auth\User'); } /** * @return User */ public function getUser(){ return Cache::remember ( 'user_'.$this->user_id, Config::get("cache_regions.region_users_lifetime", 1140), function() { return $this->user()->first(); } ); } /** * @return bool */ public function isVoid(){ if(intval($this->lifetime) == 0) return false; //check lifetime... $created_at = $this->created_at; $created_at->add(new DateInterval('PT' . intval($this->lifetime) . 'S')); $now = new DateTime(gmdate("Y-m-d H:i:s", time()), new DateTimeZone("UTC")); return ($now > $created_at); } /** * @return int */ public function getRemainingLifetime() { //check is refresh token is stills alive... (ZERO is infinite lifetime) if (intval($this->lifetime) == 0) return 0; $created_at = new DateTime($this->created_at, new DateTimeZone("UTC")); $created_at->add(new DateInterval('PT' . intval($this->lifetime) . 'S')); $now = new DateTime(gmdate("Y-m-d H:i:s", time()), new DateTimeZone("UTC")); //check validity... if ($now > $created_at) return -1; $seconds = abs($created_at->getTimestamp() - $now->getTimestamp());; return $seconds; } public function getFriendlyScopes(){ return $this->friendly_scopes; } public function setFriendlyScopes($friendly_scopes){ $this->friendly_scopes = $friendly_scopes; } public function setVoid(){ $this->void = true; } }