adding limits for uploading users

This commit is contained in:
Peter Clement 2022-07-26 12:17:01 +01:00
parent 9e75b18784
commit cd426a5ca7
5 changed files with 28 additions and 14 deletions

View File

@ -12,7 +12,7 @@
const BYTES_IN_MB = 1000000
const FILE_SIZE_LIMIT = BYTES_IN_MB * 5
const MAX_USERS_UPLOAD_LIMIT = 1000
export let createUsersFromCsv
let files = []
@ -27,6 +27,12 @@
)
const validEmails = userEmails => {
if (userEmails.length > MAX_USERS_UPLOAD_LIMIT) {
notifications.error(
`Max limit for upload is 1000 users. Please reduce file size and try again.`
)
return false
}
for (const email of userEmails) {
if (emailValidator(email) !== true) invalidEmails.push(email)
}

View File

@ -123,8 +123,8 @@
try {
const res = await users.invite({
emails: emails,
builder: true,
admin: true,
builder: false,
admin: false,
})
notifications.success(res.message)
inviteConfirmationModal.show()

View File

@ -14,6 +14,8 @@ import {
} from "@budibase/backend-core"
import { checkAnyUserExists } from "../../../utilities/users"
const MAX_USERS_UPLOAD_LIMIT = 1000
export const save = async (ctx: any) => {
try {
ctx.body = await users.save(ctx.request.body)
@ -24,6 +26,14 @@ export const save = async (ctx: any) => {
export const bulkCreate = async (ctx: any) => {
let { users: newUsersRequested, groups } = ctx.request.body
if (!env.SELF_HOSTED && newUsersRequested.length > MAX_USERS_UPLOAD_LIMIT) {
ctx.throw(
400,
"Max limit for upload is 1000 users. Please reduce file size and try again."
)
}
const db = tenancy.getGlobalDB()
let groupsToSave: any[] = []
@ -275,7 +285,11 @@ export const inviteMultiple = async (ctx: any) => {
subject: "{{ company }} platform invitation",
info: userInfo,
}
await sendEmail(emails, EmailTemplatePurpose.INVITATION, opts)
for (let i = 0; i < emails.length; i++) {
await sendEmail(emails[i], EmailTemplatePurpose.INVITATION, opts)
}
ctx.body = {
message: "Invitations have been sent.",
}
@ -300,6 +314,7 @@ export const inviteAccept = async (ctx: any) => {
return saved
})
} catch (err: any) {
console.log(err)
if (err.code === errors.codes.USAGE_LIMIT_EXCEEDED) {
// explicitly re-throw limit exceeded errors
ctx.throw(400, err)

View File

@ -194,17 +194,10 @@ exports.sendEmail = async (
}),
}
if (email.length > 1) {
message = {
...message,
bcc: email,
}
} else {
message = {
...message,
to: email,
}
}
if (subject || config.subject) {
message.subject = await processString(subject || config.subject, context)