From 265ba139ebf56bbdc1c65f6ea4f367774c691fc0 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Wed, 3 Jan 2018 16:38:50 +0100 Subject: Send account activitypub update events --- .../custom-validators/activitypub/activity.ts | 5 +-- .../helpers/custom-validators/activitypub/actor.ts | 37 ++++++++++++---------- 2 files changed, 24 insertions(+), 18 deletions(-) (limited to 'server/helpers/custom-validators/activitypub') diff --git a/server/helpers/custom-validators/activitypub/activity.ts b/server/helpers/custom-validators/activitypub/activity.ts index fbdde10ad..856c87f2c 100644 --- a/server/helpers/custom-validators/activitypub/activity.ts +++ b/server/helpers/custom-validators/activitypub/activity.ts @@ -1,6 +1,6 @@ import * as validator from 'validator' import { Activity, ActivityType } from '../../../../shared/models/activitypub' -import { isActorAcceptActivityValid, isActorDeleteActivityValid, isActorFollowActivityValid } from './actor' +import { isActorAcceptActivityValid, isActorDeleteActivityValid, isActorFollowActivityValid, isActorUpdateActivityValid } from './actor' import { isAnnounceActivityValid } from './announce' import { isActivityPubUrlValid } from './misc' import { isDislikeActivityValid, isLikeActivityValid } from './rate' @@ -64,7 +64,8 @@ function checkCreateActivity (activity: any) { } function checkUpdateActivity (activity: any) { - return isVideoTorrentUpdateActivityValid(activity) + return isVideoTorrentUpdateActivityValid(activity) || + isActorUpdateActivityValid(activity) } function checkDeleteActivity (activity: any) { diff --git a/server/helpers/custom-validators/activitypub/actor.ts b/server/helpers/custom-validators/activitypub/actor.ts index 700e06007..8820bb2a4 100644 --- a/server/helpers/custom-validators/activitypub/actor.ts +++ b/server/helpers/custom-validators/activitypub/actor.ts @@ -45,22 +45,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 +84,11 @@ function isActorAcceptActivityValid (activity: any) { return isBaseActivityValid(activity, 'Accept') } +function isActorUpdateActivityValid (activity: any) { + return isBaseActivityValid(activity, 'Update') && + isActorObjectValid(activity.object) +} + // --------------------------------------------------------------------------- export { @@ -93,11 +98,11 @@ export { isActorPublicKeyValid, isActorPreferredUsernameValid, isActorPrivateKeyValid, - isRemoteActorValid, + isActorObjectValid, isActorFollowingCountValid, isActorFollowersCountValid, isActorFollowActivityValid, isActorAcceptActivityValid, isActorDeleteActivityValid, - isActorNameValid + isActorUpdateActivityValid } -- cgit v1.2.3