Revert "Delete actor too when deleting account/video channel"

This reverts commit e04551d796.

See https://github.com/Chocobozzz/PeerTube/issues/870#issuecomment-408814420
This commit is contained in:
Chocobozzz 2018-07-30 13:39:20 +02:00
parent b7f5b52475
commit c5a893d536
No known key found for this signature in database
GPG Key ID: 583A612D890159BE
3 changed files with 34 additions and 42 deletions

View File

@ -16,6 +16,8 @@ import {
} from 'sequelize-typescript' } from 'sequelize-typescript'
import { Account } from '../../../shared/models/actors' import { Account } from '../../../shared/models/actors'
import { isAccountDescriptionValid } from '../../helpers/custom-validators/accounts' import { isAccountDescriptionValid } from '../../helpers/custom-validators/accounts'
import { logger } from '../../helpers/logger'
import { sendDeleteActor } from '../../lib/activitypub/send'
import { ActorModel } from '../activitypub/actor' import { ActorModel } from '../activitypub/actor'
import { ApplicationModel } from '../application/application' import { ApplicationModel } from '../application/application'
import { AvatarModel } from '../avatar/avatar' import { AvatarModel } from '../avatar/avatar'
@ -136,7 +138,12 @@ export class AccountModel extends Model<AccountModel> {
instance.Actor = await instance.$get('Actor', { transaction: options.transaction }) as ActorModel instance.Actor = await instance.$get('Actor', { transaction: options.transaction }) as ActorModel
} }
return instance.Actor.destroy({ transaction: options.transaction }) if (instance.isOwned()) {
logger.debug('Sending delete of actor of account %s.', instance.Actor.url)
return sendDeleteActor(instance.Actor, options.transaction)
}
return undefined
} }
static load (id: number) { static load (id: number) {
@ -239,12 +246,12 @@ export class AccountModel extends Model<AccountModel> {
} }
return AccountModel.findAndCountAll(query) return AccountModel.findAndCountAll(query)
.then(({ rows, count }) => { .then(({ rows, count }) => {
return { return {
data: rows, data: rows,
total: count total: count
} }
}) })
} }
toFormattedJSON (): Account { toFormattedJSON (): Account {

View File

@ -3,7 +3,6 @@ import { extname } from 'path'
import * as Sequelize from 'sequelize' import * as Sequelize from 'sequelize'
import { import {
AllowNull, AllowNull,
BeforeDestroy,
BelongsTo, BelongsTo,
Column, Column,
CreatedAt, CreatedAt,
@ -38,8 +37,6 @@ import { ServerModel } from '../server/server'
import { throwIfNotValid } from '../utils' import { throwIfNotValid } from '../utils'
import { VideoChannelModel } from '../video/video-channel' import { VideoChannelModel } from '../video/video-channel'
import { ActorFollowModel } from './actor-follow' import { ActorFollowModel } from './actor-follow'
import { logger } from '../../helpers/logger'
import { sendDeleteActor } from '../../lib/activitypub/send'
enum ScopeNames { enum ScopeNames {
FULL = 'FULL' FULL = 'FULL'
@ -227,28 +224,22 @@ export class ActorModel extends Model<ActorModel> {
@HasOne(() => AccountModel, { @HasOne(() => AccountModel, {
foreignKey: { foreignKey: {
allowNull: false allowNull: true
} },
onDelete: 'cascade',
hooks: true
}) })
Account: AccountModel Account: AccountModel
@HasOne(() => VideoChannelModel, { @HasOne(() => VideoChannelModel, {
foreignKey: { foreignKey: {
allowNull: false allowNull: true
} },
onDelete: 'cascade',
hooks: true
}) })
VideoChannel: VideoChannelModel VideoChannel: VideoChannelModel
@BeforeDestroy
static async sendDeleteIfOwned (instance: ActorModel, options) {
if (instance.isOwned()) {
logger.debug('Sending delete of actor %s.', instance.url)
return sendDeleteActor(instance, options.transaction)
}
return undefined
}
static load (id: number) { static load (id: number) {
return ActorModel.unscoped().findById(id) return ActorModel.unscoped().findById(id)
} }

View File

@ -1,27 +1,15 @@
import { import {
AllowNull, AllowNull, BeforeDestroy, BelongsTo, Column, CreatedAt, DefaultScope, ForeignKey, HasMany, Is, Model, Scopes, Table,
BeforeDestroy, UpdatedAt, Default, DataType
BelongsTo,
Column,
CreatedAt,
DataType,
Default,
DefaultScope,
ForeignKey,
HasMany,
Is,
Model,
Scopes,
Table,
UpdatedAt
} from 'sequelize-typescript' } from 'sequelize-typescript'
import { ActivityPubActor } from '../../../shared/models/activitypub' import { ActivityPubActor } from '../../../shared/models/activitypub'
import { VideoChannel } from '../../../shared/models/videos' import { VideoChannel } from '../../../shared/models/videos'
import { import {
isVideoChannelDescriptionValid, isVideoChannelDescriptionValid, isVideoChannelNameValid,
isVideoChannelNameValid,
isVideoChannelSupportValid isVideoChannelSupportValid
} from '../../helpers/custom-validators/video-channels' } from '../../helpers/custom-validators/video-channels'
import { logger } from '../../helpers/logger'
import { sendDeleteActor } from '../../lib/activitypub/send'
import { AccountModel } from '../account/account' import { AccountModel } from '../account/account'
import { ActorModel } from '../activitypub/actor' import { ActorModel } from '../activitypub/actor'
import { getSort, throwIfNotValid } from '../utils' import { getSort, throwIfNotValid } from '../utils'
@ -151,7 +139,13 @@ export class VideoChannelModel extends Model<VideoChannelModel> {
instance.Actor = await instance.$get('Actor', { transaction: options.transaction }) as ActorModel instance.Actor = await instance.$get('Actor', { transaction: options.transaction }) as ActorModel
} }
return instance.Actor.destroy({ transaction: options.transaction }) if (instance.Actor.isOwned()) {
logger.debug('Sending delete of actor of video channel %s.', instance.Actor.url)
return sendDeleteActor(instance.Actor, options.transaction)
}
return undefined
} }
static countByAccount (accountId: number) { static countByAccount (accountId: number) {