...
 
Commits (2)
......@@ -14,6 +14,7 @@ use Zend\Diactoros\ServerRequestFactory;
use Zend\Diactoros\Response;
use Zend\Diactoros\Response\JsonResponse;
use Zend\Diactoros\Response\SapiEmitter;
use Minds\Core\Entities\Actions\Save;
use Sentry;
class token implements Interfaces\Api, Interfaces\ApiIgnorePam
......@@ -69,6 +70,15 @@ class token implements Interfaces\Api, Interfaces\ApiIgnorePam
$tokenId = $request->getAttribute('oauth_access_token_id');
$accessTokenRepository->revokeAccessToken($tokenId);
$refreshTokenRepository->revokeRefreshToken($tokenId);
// remove surge token for push notifications.
$user = Session::getLoggedinUser();
$user->setSurgeToken('');
$save = new Save();
$save->setEntity($user)
->save();
$response = new JsonResponse([]);
} catch (\Exception $e) {
Sentry\captureException($e); // Log to sentry
......
......@@ -62,6 +62,7 @@ class User extends \ElggUser
$this->attributes['mode'] = ChannelMode::OPEN;
$this->attributes['email_confirmation_token'] = null;
$this->attributes['email_confirmed_at'] = null;
$this->attributes['surge_token'] = '';
parent::initializeAttributes();
}
......@@ -1227,6 +1228,7 @@ class User extends \ElggUser
'toaster_notifications',
'mode',
'btc_address',
'surge_token',
]);
}
......@@ -1394,4 +1396,26 @@ class User extends \ElggUser
return $this;
}
/**
* Gets the Surge Token of the user for push notifications.
*
* @return string Token.
*/
public function getSurgeToken(): string
{
return (string) $this->surge_token ?? '';
}
/**
* Sets the Surge Token of the user for push notifications.
*
* @param string $token - the token string.
* @return User instance of $this for chaining.
*/
public function setSurgeToken(string $token = ''): User
{
$this->surge_token = $token;
return $this;
}
}
......@@ -71,4 +71,18 @@ class UserSpec extends ObjectBehavior
$export = $this->export()->getWrappedObject();
expect($export['mode'])->shouldEqual(ChannelMode::OPEN);
}
public function it_should_get_surge_token()
{
$token = '11111';
$this->surge_token = $token;
$this->getSurgeToken()->shouldReturn($token);
}
public function it_should_set_surge_token()
{
$token = '11111';
$this->setSurgeToken($token)->shouldReturnAnInstanceOf('Minds\Entities\User');
$this->getSurgeToken()->shouldReturn($token);
}
}