Skip to content

Commit f5d6dc8

Browse files
committed
Merge branch 'user-email' into 'main'
Require email address for user creation See merge request reportcreator/reportcreator!1036
2 parents b0258a7 + 5015c7d commit f5d6dc8

File tree

4 files changed

+6
-0
lines changed

4 files changed

+6
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* Fix outbound connection established during PDF rendering
66
* Markdown editor: fix pasted images not inserted correctly in some cases
77
* Update executive summary section in HTB CBBH design
8+
* Require email address for user creation
89

910

1011
## v2025.69 - 2025-08-13

packages/frontend/src/components/UserInfoForm.vue

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
type="email"
101101
label="Email"
102102
hint="Email address to receive notifications and password reset links on (if enabled)"
103+
:rules="rules.required_email"
103104
:error-messages="props.errors?.email || []"
104105
:disabled="!canEditUsername"
105106
spellcheck="false"
@@ -224,6 +225,7 @@ const canEditSuperuserPermissions = computed(() => canEdit.value && auth.permiss
224225
225226
const rules = {
226227
required: [(v: any) => !!v || 'This field is required!'],
228+
required_email: [(v: any) => canEditUsername.value ? rules.required[0]!(v) : true],
227229
};
228230
229231
function updateField(fieldName: keyof User, val: any) {

packages/frontend/test/e2e/integration/users.test.spec.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ const userPassword = 'Test123!@';
55
const userNewPassword = 'Test123!@456789'
66
const userFirstName = 'John';
77
const userLastName = 'Doe';
8+
const userEmail = 'myuser@example.com'
89

910

1011
test('A Admin User can create a new User', async ({ page }) => {
@@ -17,6 +18,7 @@ test('A Admin User can create a new User', async ({ page }) => {
1718
await page.getByLabel('Password (confirm)').fill(userPassword);
1819
await page.getByLabel('First Name').fill(userFirstName);
1920
await page.getByLabel('Last Name').fill(userLastName);
21+
await page.getByLabel('Email').fill(userEmail);
2022
await page.getByRole('button', { name: 'Create' }).click();
2123

2224
// Check if user was created

packages/frontend/test/e2e/util/integration_flows.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ export const selfPromotion = async (page: Page) => {
2525
await page.getByTestId('test-reptor').click();
2626
await page.getByLabel('First Name').fill('User');
2727
await page.getByLabel('Last Name').fill('User');
28+
await page.getByLabel('Email').fill('user@example.com');
2829
await page.getByTestId('template-editor-checkbox').getByRole('checkbox').check();
2930
await page.getByTestId('designer-checkbox').getByRole('checkbox').check();
3031
await page.getByTestId('user-manager-checkbox').getByRole('checkbox').check();

0 commit comments

Comments
 (0)