diff --git a/backend/src/ee/routes/v1/org-role-router.ts b/backend/src/ee/routes/v1/org-role-router.ts index 1ea5e461d..1e40d2d80 100644 --- a/backend/src/ee/routes/v1/org-role-router.ts +++ b/backend/src/ee/routes/v1/org-role-router.ts @@ -18,9 +18,12 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { .string() .min(1) .trim() - .refine((val) => Object.keys(OrgMembershipRole).includes(val), "Invalid keyword slugs") + .refine( + (val) => Object.keys(OrgMembershipRole).includes(val), + "Please choose a different slug, the slug you have entered is reserved" + ) .refine((v) => slugify(v) === v, { - message: "Slug must be a valid slug" + message: "Slug must be a valid" }), name: z.string().trim(), description: z.string().trim().optional(), @@ -59,10 +62,10 @@ export const registerOrgRoleRouter = async (server: FastifyZodProvider) => { .optional() .refine( (val) => typeof val === "undefined" || Object.keys(OrgMembershipRole).includes(val), - "Invalid keyword slugs" + "Please choose a different slug, the slug you have entered is reserved." ) .refine((val) => typeof val === "undefined" || slugify(val) === val, { - message: "Slug must be a valid slug" + message: "Slug must be a valid" }), name: z.string().trim().optional(), description: z.string().trim().optional(), diff --git a/backend/src/server/routes/v1/project-membership-router.ts b/backend/src/server/routes/v1/project-membership-router.ts index fa46d34f2..a4989844d 100644 --- a/backend/src/server/routes/v1/project-membership-router.ts +++ b/backend/src/server/routes/v1/project-membership-router.ts @@ -148,13 +148,13 @@ export const registerProjectMembershipRouter = async (server: FastifyZodProvider role: z.string(), isTemporary: z.literal(true), temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), - temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be positive"), + temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), temporaryAccessStartTime: z.string().datetime() }) ]) ) .min(1) - .refine((data) => data.some(({ isTemporary }) => !isTemporary), "Atleast one permanent role required") + .refine((data) => data.some(({ isTemporary }) => !isTemporary), "At least long lived role is required") }), response: { 200: z.object({ diff --git a/backend/src/server/routes/v2/identity-project-router.ts b/backend/src/server/routes/v2/identity-project-router.ts index 639a56f11..09e586839 100644 --- a/backend/src/server/routes/v2/identity-project-router.ts +++ b/backend/src/server/routes/v2/identity-project-router.ts @@ -70,7 +70,7 @@ export const registerIdentityProjectRouter = async (server: FastifyZodProvider) role: z.string(), isTemporary: z.literal(true), temporaryMode: z.nativeEnum(ProjectUserMembershipTemporaryMode), - temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be positive"), + temporaryRange: z.string().refine((val) => ms(val) > 0, "Temporary range must be a positive number"), temporaryAccessStartTime: z.string().datetime() }) ]) diff --git a/frontend/src/views/Project/MembersPage/components/MemberListTab/MemberRoles.tsx b/frontend/src/views/Project/MembersPage/components/MemberListTab/MemberRoles.tsx index 1a45f5990..fbc36aa95 100644 --- a/frontend/src/views/Project/MembersPage/components/MemberListTab/MemberRoles.tsx +++ b/frontend/src/views/Project/MembersPage/components/MemberListTab/MemberRoles.tsx @@ -73,7 +73,7 @@ const TemporaryRoleForm = ({ > - +
- Set Role Temporarily + Configure timed access
{isExpired && Expired} { const isExpired = new Date() > new Date(temporaryAccessEndTime || ("" as string)); return ( - +
{formatRoleName(role, customRoleName)}
{isTemporary && (
- +