diff options
Diffstat (limited to 'server/helpers/custom-validators/activitypub/actor.ts')
-rw-r--r-- | server/helpers/custom-validators/activitypub/actor.ts | 37 |
1 files changed, 21 insertions, 16 deletions
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) { | |||
45 | validator.isLength(privateKey, CONSTRAINTS_FIELDS.ACTORS.PRIVATE_KEY) | 45 | validator.isLength(privateKey, CONSTRAINTS_FIELDS.ACTORS.PRIVATE_KEY) |
46 | } | 46 | } |
47 | 47 | ||
48 | function isRemoteActorValid (remoteActor: any) { | 48 | function isActorObjectValid (actor: any) { |
49 | return exists(remoteActor) && | 49 | return exists(actor) && |
50 | isActivityPubUrlValid(remoteActor.id) && | 50 | isActivityPubUrlValid(actor.id) && |
51 | isActorTypeValid(remoteActor.type) && | 51 | isActorTypeValid(actor.type) && |
52 | isActivityPubUrlValid(remoteActor.following) && | 52 | isActivityPubUrlValid(actor.following) && |
53 | isActivityPubUrlValid(remoteActor.followers) && | 53 | isActivityPubUrlValid(actor.followers) && |
54 | isActivityPubUrlValid(remoteActor.inbox) && | 54 | isActivityPubUrlValid(actor.inbox) && |
55 | isActivityPubUrlValid(remoteActor.outbox) && | 55 | isActivityPubUrlValid(actor.outbox) && |
56 | isActorPreferredUsernameValid(remoteActor.preferredUsername) && | 56 | isActorPreferredUsernameValid(actor.preferredUsername) && |
57 | isActivityPubUrlValid(remoteActor.url) && | 57 | isActivityPubUrlValid(actor.url) && |
58 | isActorPublicKeyObjectValid(remoteActor.publicKey) && | 58 | isActorPublicKeyObjectValid(actor.publicKey) && |
59 | isActorEndpointsObjectValid(remoteActor.endpoints) && | 59 | isActorEndpointsObjectValid(actor.endpoints) && |
60 | setValidAttributedTo(remoteActor) && | 60 | setValidAttributedTo(actor) && |
61 | // If this is not an account, it should be attributed to an account | 61 | // If this is not an account, it should be attributed to an account |
62 | // In PeerTube we use this to attach a video channel to a specific account | 62 | // In PeerTube we use this to attach a video channel to a specific account |
63 | (remoteActor.type === 'Person' || remoteActor.attributedTo.length !== 0) | 63 | (actor.type === 'Person' || actor.attributedTo.length !== 0) |
64 | } | 64 | } |
65 | 65 | ||
66 | function isActorFollowingCountValid (value: string) { | 66 | function isActorFollowingCountValid (value: string) { |
@@ -84,6 +84,11 @@ function isActorAcceptActivityValid (activity: any) { | |||
84 | return isBaseActivityValid(activity, 'Accept') | 84 | return isBaseActivityValid(activity, 'Accept') |
85 | } | 85 | } |
86 | 86 | ||
87 | function isActorUpdateActivityValid (activity: any) { | ||
88 | return isBaseActivityValid(activity, 'Update') && | ||
89 | isActorObjectValid(activity.object) | ||
90 | } | ||
91 | |||
87 | // --------------------------------------------------------------------------- | 92 | // --------------------------------------------------------------------------- |
88 | 93 | ||
89 | export { | 94 | export { |
@@ -93,11 +98,11 @@ export { | |||
93 | isActorPublicKeyValid, | 98 | isActorPublicKeyValid, |
94 | isActorPreferredUsernameValid, | 99 | isActorPreferredUsernameValid, |
95 | isActorPrivateKeyValid, | 100 | isActorPrivateKeyValid, |
96 | isRemoteActorValid, | 101 | isActorObjectValid, |
97 | isActorFollowingCountValid, | 102 | isActorFollowingCountValid, |
98 | isActorFollowersCountValid, | 103 | isActorFollowersCountValid, |
99 | isActorFollowActivityValid, | 104 | isActorFollowActivityValid, |
100 | isActorAcceptActivityValid, | 105 | isActorAcceptActivityValid, |
101 | isActorDeleteActivityValid, | 106 | isActorDeleteActivityValid, |
102 | isActorNameValid | 107 | isActorUpdateActivityValid |
103 | } | 108 | } |