Add username-based login + mandatory first-time admin setup; push-ready
- User id/login = username (was email). Email is a separate settable field. - Default admin: username admin / password 1234, must_setup=True. - Login forces /setup on first login: set email + change password, then clears must_setup. - New /api/auth/setup endpoint; JWT sub = username; admin routes use username. - Frontend: Login uses username, router guard forces /setup, new Setup.vue (email + new password + confirm), i18n EN/TH. - Tests: test_setup.py added; all suites adapted (m0/m1/routes/security/setup/e2e) PASS.
This commit is contained in:
@@ -6,8 +6,16 @@ const messages = {
|
||||
app: 'Sales Trainer',
|
||||
login: 'Login',
|
||||
logout: 'Logout',
|
||||
username: 'Username',
|
||||
email: 'Email',
|
||||
password: 'Password',
|
||||
newPassword: 'New password',
|
||||
confirmPassword: 'Confirm password',
|
||||
save: 'Save',
|
||||
passwordTooShort: 'Password must be at least 4 characters',
|
||||
passwordMismatch: 'Passwords do not match',
|
||||
setupTitle: 'Set up your account',
|
||||
setupSubtitle: 'First login for ',
|
||||
loginError: 'Invalid credentials',
|
||||
dashboard: 'Dashboard',
|
||||
groups: 'Persona Groups',
|
||||
@@ -57,9 +65,17 @@ const messages = {
|
||||
app: 'ตัวฝึกขาย',
|
||||
login: 'เข้าสู่ระบบ',
|
||||
logout: 'ออกจากระบบ',
|
||||
username: 'ชื่อผู้ใช้',
|
||||
email: 'อีเมล',
|
||||
password: 'รหัสผ่าน',
|
||||
loginError: 'อีเมลหรือรหัสผ่านไม่ถูกต้อง',
|
||||
newPassword: 'รหัสผ่านใหม่',
|
||||
confirmPassword: 'ยืนยันรหัสผ่าน',
|
||||
save: 'บันทึก',
|
||||
passwordTooShort: 'รหัสผ่านต้องอย่างน้อย 4 ตัวอักษร',
|
||||
passwordMismatch: 'รหัสผ่านไม่ตรงกัน',
|
||||
setupTitle: 'ตั้งค่าบัญชีของคุณ',
|
||||
setupSubtitle: 'เข้าสู่ระบบครั้งแรกสำหรับ ',
|
||||
loginError: 'ชื่อผู้ใช้หรือรหัสผ่านไม่ถูกต้อง',
|
||||
dashboard: 'หน้าหลัก',
|
||||
groups: 'กลุ่มลูกค้า (Persona)',
|
||||
myTraining: 'การฝึกของฉัน',
|
||||
|
||||
Reference in New Issue
Block a user