X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fhelpers%2Fcustom-validators%2Factivitypub%2Faccount.ts;h=645f55a5a70765527ddabda5ed56ebb95f88b793;hb=20494f122186bb1bfd82f4c598c4744acea27b0c;hp=8a7d1b7febd0c893c2693750f27d04e3efe9897c;hpb=e4f97babf701481b55cc10fb3448feab5f97c867;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/helpers/custom-validators/activitypub/account.ts b/server/helpers/custom-validators/activitypub/account.ts index 8a7d1b7fe..645f55a5a 100644 --- a/server/helpers/custom-validators/activitypub/account.ts +++ b/server/helpers/custom-validators/activitypub/account.ts @@ -1,8 +1,8 @@ import * as validator from 'validator' - +import { CONSTRAINTS_FIELDS } from '../../../initializers/constants' +import { isAccountNameValid } from '../accounts' import { exists, isUUIDValid } from '../misc' -import { isActivityPubUrlValid } from './misc' -import { isUserUsernameValid } from '../users' +import { isActivityPubUrlValid, isBaseActivityValid } from './misc' function isAccountEndpointsObjectValid (endpointObject: any) { return isAccountSharedInboxValid(endpointObject.sharedInbox) @@ -34,7 +34,8 @@ function isAccountPublicKeyValid (publicKey: string) { return exists(publicKey) && typeof publicKey === 'string' && publicKey.startsWith('-----BEGIN PUBLIC KEY-----') && - publicKey.endsWith('-----END PUBLIC KEY-----') + publicKey.endsWith('-----END PUBLIC KEY-----') && + validator.isLength(publicKey, CONSTRAINTS_FIELDS.ACCOUNTS.PUBLIC_KEY) } function isAccountIdValid (id: string) { @@ -57,10 +58,6 @@ function isAccountOutboxValid (outbox: string) { return isActivityPubUrlValid(outbox) } -function isAccountNameValid (name: string) { - return isUserUsernameValid(name) -} - function isAccountPreferredUsernameValid (preferredUsername: string) { return isAccountNameValid(preferredUsername) } @@ -73,7 +70,8 @@ function isAccountPrivateKeyValid (privateKey: string) { return exists(privateKey) && typeof privateKey === 'string' && privateKey.startsWith('-----BEGIN RSA PRIVATE KEY-----') && - privateKey.endsWith('-----END RSA PRIVATE KEY-----') + privateKey.endsWith('-----END RSA PRIVATE KEY-----') && + validator.isLength(privateKey, CONSTRAINTS_FIELDS.ACCOUNTS.PRIVATE_KEY) } function isRemoteAccountValid (remoteAccount: any) { @@ -87,7 +85,7 @@ function isRemoteAccountValid (remoteAccount: any) { isAccountPreferredUsernameValid(remoteAccount.preferredUsername) && isAccountUrlValid(remoteAccount.url) && isAccountPublicKeyObjectValid(remoteAccount.publicKey) && - isAccountEndpointsObjectValid(remoteAccount.endpoint) + isAccountEndpointsObjectValid(remoteAccount.endpoints) } function isAccountFollowingCountValid (value: string) { @@ -98,6 +96,19 @@ function isAccountFollowersCountValid (value: string) { return exists(value) && validator.isInt('' + value, { min: 0 }) } +function isAccountDeleteActivityValid (activity: any) { + return isBaseActivityValid(activity, 'Delete') +} + +function isAccountFollowActivityValid (activity: any) { + return isBaseActivityValid(activity, 'Follow') && + isActivityPubUrlValid(activity.object) +} + +function isAccountAcceptActivityValid (activity: any) { + return isBaseActivityValid(activity, 'Accept') +} + // --------------------------------------------------------------------------- export { @@ -119,5 +130,8 @@ export { isRemoteAccountValid, isAccountFollowingCountValid, isAccountFollowersCountValid, - isAccountNameValid + isAccountNameValid, + isAccountFollowActivityValid, + isAccountAcceptActivityValid, + isAccountDeleteActivityValid }