From 9f43a69a1d28c10757bf6288e267260f52f09a65 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Mon, 9 Mar 2026 09:46:11 +0000 Subject: [PATCH] some new updates --- company_profile.php | 258 +++++++++++++++++++++++++++++++------------- db/config.php | 16 +++ includes/header.php | 51 +-------- includes/lang.php | 12 +++ login.php | 3 +- mail/config.php | 22 ++-- 6 files changed, 223 insertions(+), 139 deletions(-) diff --git a/company_profile.php b/company_profile.php index 7147313..ec30d41 100644 --- a/company_profile.php +++ b/company_profile.php @@ -69,6 +69,31 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { set_setting('loyalty_currency_per_point', $_POST['loyalty_currency_per_point'] ?? '0.05'); $success = __('success_update'); } + + if ($is_super && isset($_POST['save_smtp_settings'])) { + set_setting('smtp_host', $_POST['smtp_host'] ?? ''); + set_setting('smtp_port', $_POST['smtp_port'] ?? '587'); + set_setting('smtp_user', $_POST['smtp_user'] ?? ''); + set_setting('smtp_pass', $_POST['smtp_pass'] ?? ''); + set_setting('smtp_secure', $_POST['smtp_secure'] ?? 'tls'); + $success = __('success_update'); + } +} + +// Ensure SMTP settings exist for display fallback +if ($is_super) { + if (get_setting('smtp_host') === null) { + $env_host = getenv('SMTP_HOST'); + set_setting('smtp_host', $env_host !== false ? $env_host : ''); + $env_port = getenv('SMTP_PORT'); + set_setting('smtp_port', $env_port !== false ? $env_port : '587'); + $env_user = getenv('SMTP_USER'); + set_setting('smtp_user', $env_user !== false ? $env_user : ''); + $env_pass = getenv('SMTP_PASS'); + set_setting('smtp_pass', $env_pass !== false ? $env_pass : ''); + $env_secure = getenv('SMTP_SECURE'); + set_setting('smtp_secure', $env_secure !== false ? $env_secure : 'tls'); + } } ?> @@ -90,92 +115,173 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { -
-
-
-
-
-
-
-
-
-
-
-
-
Logo
-
Favicon
+ + +
+ +
+
+
+ +
+
+
+
+
+
+
+ +
+
+
Logo
+
Favicon
+
-
-
-
-
- -
- -
- -
-
-
-
-
- > - -
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
-
- > - + + +
+
+
+ +
+ > + +
+
+
+
+
+
+ +
+ +
+
+
+ + + Tags: {customer_name}, {order_number}, {order_details}, {total_price}
-
+
+ + + Tags: {customer_name}, {order_number} +
+
+ + + Tags: {customer_name}, {order_number}, {amount}, {remaining_balance} +
+
+
+ +
+
+ + +
+
+
+
+
+ > + +
+
+
- +
-
+
- +
-
- -
+
+
+
- +
+ + +
+
+
+
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+
+
+
+
- -
-
-
-
- - - Tags: {customer_name}, {order_number}, {order_details}, {total_price} -
-
- - - Tags: {customer_name}, {order_number} -
-
- - - Tags: {customer_name}, {order_number}, {amount}, {remaining_balance} -
-
-
-
- + - + \ No newline at end of file diff --git a/db/config.php b/db/config.php index 3e2eb62..a4811aa 100644 --- a/db/config.php +++ b/db/config.php @@ -40,6 +40,22 @@ function check_permission($page = null, $user_id = null) { if (isset($permissions_cache[$cache_key])) return $permissions_cache[$cache_key]; try { + // First check if user is super_admin + $role = null; + if (isset($_SESSION) && isset($_SESSION['user_id']) && $_SESSION['user_id'] == $user_id && isset($_SESSION['role'])) { + $role = $_SESSION['role']; + } else { + $stmt = db()->prepare("SELECT role FROM users WHERE id = ?"); + $stmt->execute([$user_id]); + $role = $stmt->fetchColumn(); + } + + if ($role === 'super_admin') { + $result = ['view' => 1, 'add' => 1, 'edit' => 1, 'delete' => 1]; + $permissions_cache[$cache_key] = $result; + return $result; + } + $stmt = db()->prepare("SELECT can_view as view, can_add as `add`, can_edit as edit, can_delete as `delete` FROM user_permissions WHERE user_id = ? AND page = ?"); $stmt->execute([$user_id, $page]); $perms = $stmt->fetch(); diff --git a/includes/header.php b/includes/header.php index 8856c12..c6a33da 100644 --- a/includes/header.php +++ b/includes/header.php @@ -341,56 +341,7 @@ if ($current_user_id && $current_page !== 'login.php' && $current_page !== 'logo

- - - - - - + 1 || $current_role === 'super_admin'): ?>