diff --git a/extensions/app-telemetry/app-user-count.ts b/extensions/app-telemetry/app-user-count.ts index c446255b0..c3a6fe97d 100644 --- a/extensions/app-telemetry/app-user-count.ts +++ b/extensions/app-telemetry/app-user-count.ts @@ -1,7 +1,8 @@ const { Eq } = extension.import('query'); const { db } = extension.import('data'); -const { APIError } = extension.import('core'); +const { APIError, Context } = extension.import('core'); const app_es = extension.import('service:es:app') as any; +const svc_permission = extension.import('service:permission') as any; const DEFAULT_LIMIT = 100; const MAX_LIMIT = 1000; @@ -98,6 +99,9 @@ extension.on('create.drivers', event => { if ( ! result ) { throw APIError.create('permission_denied'); } + if ( ! (await svc_permission.check(Context.get('actor'), `apps-of-user:${result.values_.owner.uuid}:write`, { no_cache: true })) ) { + throw APIError.create('permission_denied'); + } // Fetch and return users const users: Array<{ username: string, uuid: string }> = await db.read(`SELECT user.username, user.uuid FROM user_to_app_permissions