X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Factivitypub%2Factor.ts;h=df0edc30e5bde124a49f9900674f2123fe8fd0da;hb=e8cb44090e654fda339506dccfcec7fea8722723;hp=700e060070472984b6b4030109df41179db05672;hpb=01de67b9a4fcdf01102ccc3cb7dc24beebf6c7ea;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/activitypub/actor.ts b/server/helpers/custom-validators/activitypub/actor.ts index 700e06007..df0edc30e 100644 --- a/server/helpers/custom-validators/activitypub/actor.ts +++ b/server/helpers/custom-validators/activitypub/actor.ts @@ -1,8 +1,6 @@ import * as validator from 'validator' import { CONSTRAINTS_FIELDS } from '../../../initializers' -import { isAccountNameValid } from '../accounts' import { exists } from '../misc' -import { isVideoChannelNameValid } from '../video-channels' import { isActivityPubUrlValid, isBaseActivityValid, setValidAttributedTo } from './misc' function isActorEndpointsObjectValid (endpointObject: any) { @@ -32,10 +30,6 @@ function isActorPreferredUsernameValid (preferredUsername: string) { return exists(preferredUsername) && validator.matches(preferredUsername, actorNameRegExp) } -function isActorNameValid (name: string) { - return isAccountNameValid(name) || isVideoChannelNameValid(name) -} - function isActorPrivateKeyValid (privateKey: string) { return exists(privateKey) && typeof privateKey === 'string' && @@ -45,22 +39,22 @@ function isActorPrivateKeyValid (privateKey: string) { validator.isLength(privateKey, CONSTRAINTS_FIELDS.ACTORS.PRIVATE_KEY) } -function isRemoteActorValid (remoteActor: any) { - return exists(remoteActor) && - isActivityPubUrlValid(remoteActor.id) && - isActorTypeValid(remoteActor.type) && - isActivityPubUrlValid(remoteActor.following) && - isActivityPubUrlValid(remoteActor.followers) && - isActivityPubUrlValid(remoteActor.inbox) && - isActivityPubUrlValid(remoteActor.outbox) && - isActorPreferredUsernameValid(remoteActor.preferredUsername) && - isActivityPubUrlValid(remoteActor.url) && - isActorPublicKeyObjectValid(remoteActor.publicKey) && - isActorEndpointsObjectValid(remoteActor.endpoints) && - setValidAttributedTo(remoteActor) && +function isActorObjectValid (actor: any) { + return exists(actor) && + isActivityPubUrlValid(actor.id) && + isActorTypeValid(actor.type) && + isActivityPubUrlValid(actor.following) && + isActivityPubUrlValid(actor.followers) && + isActivityPubUrlValid(actor.inbox) && + isActivityPubUrlValid(actor.outbox) && + isActorPreferredUsernameValid(actor.preferredUsername) && + isActivityPubUrlValid(actor.url) && + isActorPublicKeyObjectValid(actor.publicKey) && + isActorEndpointsObjectValid(actor.endpoints) && + setValidAttributedTo(actor) && // If this is not an account, it should be attributed to an account // In PeerTube we use this to attach a video channel to a specific account - (remoteActor.type === 'Person' || remoteActor.attributedTo.length !== 0) + (actor.type === 'Person' || actor.attributedTo.length !== 0) } function isActorFollowingCountValid (value: string) { @@ -84,6 +78,15 @@ function isActorAcceptActivityValid (activity: any) { return isBaseActivityValid(activity, 'Accept') } +function isActorRejectActivityValid (activity: any) { + return isBaseActivityValid(activity, 'Reject') +} + +function isActorUpdateActivityValid (activity: any) { + return isBaseActivityValid(activity, 'Update') && + isActorObjectValid(activity.object) +} + // --------------------------------------------------------------------------- export { @@ -93,11 +96,12 @@ export { isActorPublicKeyValid, isActorPreferredUsernameValid, isActorPrivateKeyValid, - isRemoteActorValid, + isActorObjectValid, isActorFollowingCountValid, isActorFollowersCountValid, isActorFollowActivityValid, isActorAcceptActivityValid, + isActorRejectActivityValid, isActorDeleteActivityValid, - isActorNameValid + isActorUpdateActivityValid }