diff --git a/Layout/default/User/Form.php b/Layout/default/User/Form.php
index 43b93433f..46ca2a9c5 100644
--- a/Layout/default/User/Form.php
+++ b/Layout/default/User/Form.php
@@ -112,7 +112,17 @@
-
+
+
+
+
+
+
+
+
Beschränkungen
diff --git a/application/User/UserController.php b/application/User/UserController.php
index eeba4c1b9..d2dffaf68 100644
--- a/application/User/UserController.php
+++ b/application/User/UserController.php
@@ -166,6 +166,13 @@ class UserController extends mfBaseController
} else {
$user->address_id = null;
}
+
+ // 2fa required
+ if($r->twofactorrequired == "true") {
+ $user->twofactorrequired = 1;
+ } else {
+ $user->twofactorrequired = 0;
+ }
}
if ($r->password) {
@@ -262,6 +269,8 @@ class UserController extends mfBaseController
$enum->delete();
}
+
+
}
$this->layout()->setFlash("Benutzer gespeichert.", "success");
diff --git a/application/User/UserModel.php b/application/User/UserModel.php
index fcd115791..20b065a10 100644
--- a/application/User/UserModel.php
+++ b/application/User/UserModel.php
@@ -7,6 +7,10 @@ class UserModel
public $password = null;
public $name = null;
public $email = null;
+ public $mobile;
+ public $twofactor;
+ public $twofactorcode;
+ public $twofactortimestamp;
public $apikey = null;
public $ip = null;
public $sessionid = null;
@@ -67,7 +71,7 @@ class UserModel
}
- public static function search($filter)
+ public static function search($filter = [])
{
$items = [];
$db = FronkDB::singleton();
diff --git a/db/migrations/20240209165524_worker_add_twofactorrequired.php b/db/migrations/20240209165524_worker_add_twofactorrequired.php
new file mode 100644
index 000000000..a14ae42ee
--- /dev/null
+++ b/db/migrations/20240209165524_worker_add_twofactorrequired.php
@@ -0,0 +1,31 @@
+getEnvironment() == "thetool") {
+ $table = $this->table("Worker");
+ $table->addColumn("twofactorrequired", "integer", ["null" => false, "default" => 1, "after" => "twofactortimestamp"]);
+ $table->update();
+ }
+
+ if($this->getEnvironment() == "addressdb") {
+
+ }
+ }
+
+ public function down(): void
+ {
+ if($this->getEnvironment() == "thetool") {
+ $this->table("Worker")->removeColumn("twofactorrequired")->save();
+ }
+
+ if($this->getEnvironment() == "addressdb") {
+
+ }
+ }
+}
diff --git a/lib/mvcfronk/mfRouter/mfRouter.php b/lib/mvcfronk/mfRouter/mfRouter.php
index 471796025..69af34883 100644
--- a/lib/mvcfronk/mfRouter/mfRouter.php
+++ b/lib/mvcfronk/mfRouter/mfRouter.php
@@ -216,7 +216,7 @@ class mfRouter {
$user = new User();
$user->loadMe();
- if($user->twofactor < 1 && $classname != "mfLoginController" && $classname != "UserProfileController" && $this->action != "logout" && $this->action != "Logout") {
+ if($user->twofactorrequired && $user->twofactor < 1 && $classname != "mfLoginController" && $classname != "UserProfileController" && $this->action != "logout" && $this->action != "Logout") {
// redirect to UserProfile
if(MFUSEFANCYURLS) {
header("Location: $baseurl/UserProfile");