Validate special chars when creating a team (#209)

* Add validation for team account names

- Prevent creating teams with reserved names like 'billing' and 'settings'
- Add regex validation to block team names with special characters
- Update localization for new error messages
- Extend E2E tests to cover various invalid team name scenarios

* Enhance team account name validation and slug generation

- Add comprehensive tests for account slug generation in Supabase
- Improve team name validation schema to handle special characters
- Add form validation message display in update team account name form
- Refine slug generation to handle various edge cases like special characters, non-ASCII text, and mixed case
This commit is contained in:
Giancarlo Buomprisco
2025-03-11 09:58:21 +07:00
committed by GitHub
parent b265f596da
commit bd723dccce
6 changed files with 205 additions and 13 deletions

View File

@@ -16,6 +16,7 @@ import {
FormField,
FormItem,
FormLabel,
FormMessage,
} from '@kit/ui/form';
import { Input } from '@kit/ui/input';
import { Trans } from '@kit/ui/trans';
@@ -98,6 +99,8 @@ export const UpdateTeamAccountNameForm = (props: {
{...field}
/>
</FormControl>
<FormMessage />
</FormItem>
);
}}

View File

@@ -12,6 +12,8 @@ const RESERVED_NAMES_ARRAY = [
// please add more reserved names here
];
const SPECIAL_CHARACTERS_REGEX = /[!@#$%^&*()+=[\]{};':"\\|,.<>/?]/;
/**
* @name TeamNameSchema
*/
@@ -21,6 +23,15 @@ export const TeamNameSchema = z
})
.min(2)
.max(50)
.refine(
(name) => {
console.log(name);
return !SPECIAL_CHARACTERS_REGEX.test(name);
},
{
message: 'teams:specialCharactersError',
},
)
.refine(
(name) => {
return !RESERVED_NAMES_ARRAY.includes(name.toLowerCase());