refactor: Validierungslogik ins Model verschoben
- pwRequirementCheck und checkDoublePw aus Controller ins Model - Alle Passwort- und E-Mail-Validierungen jetzt zentral im Model - Controller macht nur noch Request/Response Handling - Saubere MVC-Trennung
This commit is contained in:
@@ -46,13 +46,7 @@ class AuthModel extends Database
|
||||
return true;
|
||||
}
|
||||
|
||||
public function register($data)
|
||||
{
|
||||
$rtn = $this->pwRequirementCheck($data['password']);
|
||||
if ($rtn !== true) {
|
||||
return $rtn;
|
||||
}
|
||||
|
||||
public function register($data) {
|
||||
if (!filter_var($data['email'], FILTER_VALIDATE_EMAIL)) {
|
||||
return "Bitte geben Sie eine gültige E-Mail ein.";
|
||||
}
|
||||
@@ -72,6 +66,15 @@ class AuthModel extends Database
|
||||
return "Ein Account mit dieser E-Mail existiert bereits.";
|
||||
}
|
||||
|
||||
// Passwort-Validierung
|
||||
if (!$this->checkDoublePw($data['password'], $data['password_repeat'])) {
|
||||
return "Passwörter stimmen nicht überein.";
|
||||
}
|
||||
|
||||
if ($this->pwRequirementCheck($data['password']) !== true) {
|
||||
return "Passwort muss mindestens 8 Zeichen lang sein und mindestens ein Großbuchstabe, ein Kleinbuchstabe, eine Zahl und ein Sonderzeichen enthalten.";
|
||||
}
|
||||
|
||||
$hashedPassword = password_hash($data['password'], PASSWORD_DEFAULT);
|
||||
|
||||
$sql = "INSERT INTO user (email, password, straße, hausnr, ort, postleitzahl, land,vorname, nachname, tel, isAdmin)
|
||||
@@ -145,8 +148,7 @@ class AuthModel extends Database
|
||||
}
|
||||
}
|
||||
|
||||
private function forgottenPwUpdate($email, $hashedPassword)
|
||||
{
|
||||
private function forgottenPwUpdate($email, $hashedPassword) {
|
||||
try{
|
||||
$pdo = $this->linkDB();
|
||||
|
||||
@@ -213,4 +215,24 @@ class AuthModel extends Database
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
public function pwRequirementCheck($password){
|
||||
$error = [];
|
||||
|
||||
if(strlen($password) <= 8)
|
||||
$error[] = "min 8 Charackter";
|
||||
if(!preg_match("/[A-Z]/", $password))
|
||||
$error[] = "min one large Character";
|
||||
if(!preg_match("/[a-z]/", $password))
|
||||
$error[] = "min one small charakter";
|
||||
if(!preg_match("/[0-9]/", $password))
|
||||
$error[] = "min one number";
|
||||
if(!preg_match("[^a-zA-Z0-9\s]", $password));
|
||||
$error[] = "min one special character";
|
||||
|
||||
if(empty($error))
|
||||
return true;
|
||||
else
|
||||
return $error;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user