diff --git a/app/classes/user.php b/app/classes/user.php index 1edcaf7..1c88432 100644 --- a/app/classes/user.php +++ b/app/classes/user.php @@ -45,6 +45,7 @@ class User { return $query->fetchAll(PDO::FETCH_ASSOC); } + // get user details public function getUserDetails($username) { $sql = 'SELECT * FROM users_meta um @@ -60,6 +61,30 @@ class User { } + // update an existing user + public function editUser($user_id, $updatedUser) { + try { + $sql = 'UPDATE users_meta SET + name = :name, + email = :email, + bio = :bio + WHERE user_id = :user_id'; + $query = $this->db->prepare($sql); + $query->execute([ + ':user_id' => $user_id, + ':name' => $updatedUser['name'], + ':email' => $updatedUser['email'], + ':bio' => $updatedUser['bio'] + ]); + + return true; + + } catch (Exception $e) { + return $e->getMessage(); + } + + } + } ?> diff --git a/app/pages/profile.php b/app/pages/profile.php index fac476e..f35123c 100644 --- a/app/pages/profile.php +++ b/app/pages/profile.php @@ -5,16 +5,41 @@ require '../app/classes/user.php'; $userObject = new User($dbWeb); -$userDetails = $userObject->getUserDetails($user); +// if a form is submitted, it's from the edit page +if ($_SERVER['REQUEST_METHOD'] == 'POST') { -switch ($action) { + $user_id = $userObject->getUserId($user)[0]['id']; - case 'edit': - include '../app/templates/profile-edit.php'; - break; + // update the profile + $updatedUser = [ + 'name' => $_POST['name'] ?? '', + 'email' => $_POST['email'] ?? '', +// 'avatar' => , + 'bio' => $_POST['bio'] ?? '', + ]; + $result = $userObject->editUser($user_id, $updatedUser); + if ($result === true) { + $_SESSION['notice'] = "User details for \"{$updatedUser['name']}\" are edited."; + } else { + $_SESSION['error'] = "Editing the user details failed. Error: $result"; + } - default: - include '../app/templates/profile.php'; + header("Location: $app_root?page=profile"); + exit(); + +// no form submitted, show the templates +} else { + $userDetails = $userObject->getUserDetails($user); + + switch ($action) { + + case 'edit': + include '../app/templates/profile-edit.php'; + break; + + default: + include '../app/templates/profile.php'; + } } ?> diff --git a/app/templates/agent-edit.php b/app/templates/agent-edit.php index db60f23..549a2ad 100644 --- a/app/templates/agent-edit.php +++ b/app/templates/agent-edit.php @@ -1,5 +1,5 @@ - +

Jilo Agent configuration for Jitsi platform ""

@@ -47,4 +47,4 @@
- + diff --git a/app/templates/profile-edit.php b/app/templates/profile-edit.php index b5c7a5d..23317fe 100644 --- a/app/templates/profile-edit.php +++ b/app/templates/profile-edit.php @@ -5,70 +5,72 @@

Profile of

-
-

edit the profile fields

+
-
-
avatar
-
+
+

edit the profile fields

-
- -
-
- - * -
-
- -
+
+
avatar
-
-
- +
+ + + +
+
+ +
+
+ +
-
- + +
+
+ +
+
+ +
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
-
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
- -
-
+

+ Cancel + +

- -

- Cancel - Save -

- -
- +
diff --git a/app/templates/profile.php b/app/templates/profile.php index e848511..5692624 100644 --- a/app/templates/profile.php +++ b/app/templates/profile.php @@ -13,14 +13,14 @@
-
+