Improve validation on api/users endpoints (#5752)

This commit is contained in:
Tom Moor
2023-08-31 18:06:18 -04:00
committed by GitHub
parent dec03b9d84
commit 7abb4f9ad6
15 changed files with 395 additions and 309 deletions

View File

@@ -1,6 +1,5 @@
import { CollectionPermission } from "@shared/types";
import { CollectionPermission, UserRole } from "@shared/types";
import { CollectionUser } from "@server/models";
import { UserRole } from "@server/models/User";
import { buildUser, buildAdmin, buildCollection } from "@server/test/factories";
import { setupTestDatabase } from "@server/test/support";
import userDemoter from "./userDemoter";

View File

@@ -1,6 +1,6 @@
import { UserRole } from "@shared/types";
import { ValidationError } from "@server/errors";
import { Event, User } from "@server/models";
import type { UserRole } from "@server/models/User";
import CleanupDemotedUserTask from "@server/queues/tasks/CleanupDemotedUserTask";
import { sequelize } from "@server/storage/database";

View File

@@ -1,3 +1,4 @@
import { UserRole } from "@shared/types";
import { buildUser } from "@server/test/factories";
import { setupTestDatabase } from "@server/test/support";
import userInviter from "./userInviter";
@@ -12,7 +13,7 @@ describe("userInviter", () => {
const response = await userInviter({
invites: [
{
role: "member",
role: UserRole.Member,
email: "test@example.com",
name: "Test",
},
@@ -28,7 +29,7 @@ describe("userInviter", () => {
const response = await userInviter({
invites: [
{
role: "member",
role: UserRole.Member,
email: " ",
name: "Test",
},
@@ -44,7 +45,7 @@ describe("userInviter", () => {
const response = await userInviter({
invites: [
{
role: "member",
role: UserRole.Member,
email: "notanemail",
name: "Test",
},
@@ -60,12 +61,12 @@ describe("userInviter", () => {
const response = await userInviter({
invites: [
{
role: "member",
role: UserRole.Member,
email: "the@same.com",
name: "Test",
},
{
role: "member",
role: UserRole.Member,
email: "the@SAME.COM",
name: "Test",
},
@@ -81,7 +82,7 @@ describe("userInviter", () => {
const response = await userInviter({
invites: [
{
role: "member",
role: UserRole.Member,
email: user.email!,
name: user.name,
},

View File

@@ -1,5 +1,5 @@
import uniqBy from "lodash/uniqBy";
import { Role } from "@shared/types";
import { UserRole } from "@shared/types";
import InviteEmail from "@server/emails/templates/InviteEmail";
import env from "@server/env";
import Logger from "@server/logging/Logger";
@@ -9,7 +9,7 @@ import { UserFlag } from "@server/models/User";
export type Invite = {
name: string;
email: string;
role: Role;
role: UserRole;
};
export default async function userInviter({
@@ -59,8 +59,8 @@ export default async function userInviter({
name: invite.name,
email: invite.email,
service: null,
isAdmin: invite.role === "admin",
isViewer: invite.role === "viewer",
isAdmin: invite.role === UserRole.Admin,
isViewer: invite.role === UserRole.Viewer,
invitedById: user.id,
flags: {
[UserFlag.InviteSent]: 1,