[B][+] Add email field to user data model

This commit is contained in:
Hykilpikonna
2021-01-09 21:32:25 -05:00
parent 4e47e6f7c1
commit ed0ae5ae4b
@@ -30,14 +30,17 @@ data class User(
@NotNull @Column(length = 32) @NotNull @Column(length = 32)
var name: String, var name: String,
@NotNull @Column(length = 256)
var email: String,
@NotNull @Column(length = 100) @NotNull @Column(length = 100)
var passHash: String, var passHash: String = "",
@NotNull @Column(length = 32) @NotNull @Column(length = 32)
var passSalt: String var passSalt: String = ""
) )
{ {
constructor(name: String, pass: String) : this(name=name, passHash="", passSalt="") constructor(name: String, email: String, pass: String) : this(name = name, email = email)
{ {
val (h, s) = pass.passwordHash() val (h, s) = pass.passwordHash()
passHash = h passHash = h
@@ -54,13 +57,13 @@ class UserApi(val repo: UserRepo)
val em = ExampleMatcher.matching().withIgnorePaths("id", "passHash", "passSalt").withMatcher("name", ignoreCase()) val em = ExampleMatcher.matching().withIgnorePaths("id", "passHash", "passSalt").withMatcher("name", ignoreCase())
@GetMapping("/register") @GetMapping("/register")
fun register(@RequestParam name: String, @RequestParam pass: String): Any fun register(@RequestParam name: String, @RequestParam pass: String, @RequestParam @Email email: String): Any
{ {
// Check username length // Check username length
if (name.length !in 3..32) return bad("Username length not in range 3 to 32") if (name.length !in 3..32) return bad("Username length not in range 3 to 32")
// Check if username exists // Check if username exists
val user = User(name, pass) val user = User(name, email, pass)
if (repo.exists(Example.of(user, em))) return bad("Username has already been used") if (repo.exists(Example.of(user, em))) return bad("Username has already been used")
// Check password strength // Check password strength