]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - server/models/oauth/oauth-token.ts
Merge branch 'release/3.2.0' into develop
[github/Chocobozzz/PeerTube.git] / server / models / oauth / oauth-token.ts
index 38953e8ad0aefd1b5a48d6dbeec5291f8e9e5d6e..af4b0ec421daf6cacdca629207996e7479f1ca4d 100644 (file)
@@ -1,3 +1,4 @@
+import { Transaction } from 'sequelize'
 import {
   AfterDestroy,
   AfterUpdate,
@@ -11,15 +12,15 @@ import {
   Table,
   UpdatedAt
 } from 'sequelize-typescript'
+import { TokensCache } from '@server/lib/auth/tokens-cache'
+import { MUserAccountId } from '@server/types/models'
+import { MOAuthTokenUser } from '@server/types/models/oauth/oauth-token'
+import { AttributesOnly } from '@shared/core-utils'
 import { logger } from '../../helpers/logger'
-import { UserModel } from '../account/user'
-import { OAuthClientModel } from './oauth-client'
-import { Transaction } from 'sequelize'
 import { AccountModel } from '../account/account'
-import { ActorModel } from '../activitypub/actor'
-import { clearCacheByToken } from '../../lib/oauth-model'
-import * as Bluebird from 'bluebird'
-import { MOAuthTokenUser } from '@server/typings/models/oauth/oauth-token'
+import { ActorModel } from '../actor/actor'
+import { UserModel } from '../user/user'
+import { OAuthClientModel } from './oauth-client'
 
 export type OAuthTokenInfo = {
   refreshToken: string
@@ -27,9 +28,7 @@ export type OAuthTokenInfo = {
   client: {
     id: number
   }
-  user: {
-    id: number
-  }
+  user: MUserAccountId
   token: MOAuthTokenUser
 }
 
@@ -80,7 +79,7 @@ enum ScopeNames {
     }
   ]
 })
-export class OAuthTokenModel extends Model<OAuthTokenModel> {
+export class OAuthTokenModel extends Model<Partial<AttributesOnly<OAuthTokenModel>>> {
 
   @AllowNull(false)
   @Column
@@ -134,7 +133,7 @@ export class OAuthTokenModel extends Model<OAuthTokenModel> {
   @AfterUpdate
   @AfterDestroy
   static removeTokenCache (token: OAuthTokenModel) {
-    return clearCacheByToken(token.accessToken)
+    return TokensCache.Instance.clearCacheByToken(token.accessToken)
   }
 
   static loadByRefreshToken (refreshToken: string) {
@@ -174,7 +173,7 @@ export class OAuthTokenModel extends Model<OAuthTokenModel> {
                           })
   }
 
-  static getByTokenAndPopulateUser (bearerToken: string): Bluebird<MOAuthTokenUser> {
+  static getByTokenAndPopulateUser (bearerToken: string): Promise<MOAuthTokenUser> {
     const query = {
       where: {
         accessToken: bearerToken
@@ -190,7 +189,7 @@ export class OAuthTokenModel extends Model<OAuthTokenModel> {
                           })
   }
 
-  static getByRefreshTokenAndPopulateUser (refreshToken: string): Bluebird<MOAuthTokenUser> {
+  static getByRefreshTokenAndPopulateUser (refreshToken: string): Promise<MOAuthTokenUser> {
     const query = {
       where: {
         refreshToken
@@ -207,6 +206,8 @@ export class OAuthTokenModel extends Model<OAuthTokenModel> {
   }
 
   static deleteUserToken (userId: number, t?: Transaction) {
+    TokensCache.Instance.deleteUserToken(userId)
+
     const query = {
       where: {
         userId