centralize roles guards

This commit is contained in:
Thanakorn S
2026-05-07 09:26:39 +07:00
parent 0d2fa3e3bd
commit a24930f684
13 changed files with 37 additions and 26 deletions
@@ -4,6 +4,8 @@
require '../../../assets/utils/classes/FileUploader.php'; require '../../../assets/utils/classes/FileUploader.php';
require '../../../assets/utils/classes/ContactManager.php'; require '../../../assets/utils/classes/ContactManager.php';
require_role($user_role, ['owner', 'admin', 'staff']);
$id = (int)$data['id']; $id = (int)$data['id'];
try { try {
@@ -3,6 +3,8 @@
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/ContactManager.php'; require '../../../assets/utils/classes/ContactManager.php';
require_role($user_role, ['owner', 'admin']);
try { try {
dbTransaction($pdo2, function($pdo) use ($data, $company_id, $logging) { dbTransaction($pdo2, function($pdo) use ($data, $company_id, $logging) {
$contact = new ContactManager($pdo, $company_id); $contact = new ContactManager($pdo, $company_id);
@@ -3,6 +3,8 @@
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/ContactManager.php'; require '../../../assets/utils/classes/ContactManager.php';
require_role($user_role, ['owner', 'admin']);
try { try {
dbTransaction($pdo2, function($pdo) use ($data, $company_id) { dbTransaction($pdo2, function($pdo) use ($data, $company_id) {
@@ -3,6 +3,8 @@
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/ContactManager.php'; require '../../../assets/utils/classes/ContactManager.php';
require_role($user_role, ['owner', 'admin']);
try { try {
dbTransaction($pdo2, function($pdo) use ($data, $company_id) { dbTransaction($pdo2, function($pdo) use ($data, $company_id) {
+2
View File
@@ -16,6 +16,8 @@ require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/StockManager.php'; require '../../../assets/utils/classes/StockManager.php';
require '../../../assets/utils/classes/WarehouseManager.php'; require '../../../assets/utils/classes/WarehouseManager.php';
require_role($user_role, ['owner', 'admin']);
$id = (int)($data['id'] ?? 0); $id = (int)($data['id'] ?? 0);
$warehouse_id = (int)($data['warehouse'] ?? 0); $warehouse_id = (int)($data['warehouse'] ?? 0);
$type = $data['type'] ?? ''; $type = $data['type'] ?? '';
+2
View File
@@ -3,6 +3,8 @@
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/WarehouseManager.php'; require '../../../assets/utils/classes/WarehouseManager.php';
require_role($user_role, ['owner', 'admin']);
try { try {
dbTransaction($pdo2, function($pdo) use ($data, $company_id) { dbTransaction($pdo2, function($pdo) use ($data, $company_id) {
+2
View File
@@ -3,6 +3,8 @@
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/WarehouseManager.php'; require '../../../assets/utils/classes/WarehouseManager.php';
require_role($user_role, ['owner', 'admin']);
try { try {
dbTransaction($pdo2, function($pdo) use ($data, $company_id) { dbTransaction($pdo2, function($pdo) use ($data, $company_id) {
@@ -3,6 +3,8 @@
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/WarehouseManager.php'; require '../../../assets/utils/classes/WarehouseManager.php';
require_role($user_role, ['owner', 'admin']);
try { try {
dbTransaction($pdo2, function($pdo) use ($data, $company_id) { dbTransaction($pdo2, function($pdo) use ($data, $company_id) {
+1 -1
View File
@@ -1,7 +1,7 @@
<div class="row"> <div class="row">
<div class="col-12"> <div class="col-12">
<footer class="text-center py-2 mt-6 text-secondary "> <footer class="text-center py-2 mt-6 text-secondary ">
<p class="mb-0">Copyright © 2026 InApp Inventory Dashboard. Developed by <a href="https://codescandy.com/" <p class="mb-0">Copyright © 2026 TRx WMS. Developed by <a href="https://codescandy.com/"
target="_blank" class="text-primary">CodesCandy</a> </p> target="_blank" class="text-primary">CodesCandy</a> </p>
</footer> </footer>
</div> </div>
+15 -11
View File
@@ -1,17 +1,21 @@
<?php <?php
session_start(); session_start();
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
$sql = "SELECT * require_role($user_role, ['owner', 'admin']);
FROM user
WHERE $sth = $pdo1->prepare(
username not in ('support','extra')"; "SELECT u.user_id, u.name, u.surname, u.email
$sth = $pdo1->query($sql); FROM user u
INNER JOIN company_map_user m
ON m.user_id = u.user_id
AND m.company_id = :company_id
ORDER BY u.name ASC"
);
$sth->execute([':company_id' => $company_id]);
db_check($sth, $answer); db_check($sth, $answer);
$answer["output"] = $sth->fetchAll(PDO::FETCH_ASSOC); $answer['output'] = $sth->fetchAll(PDO::FETCH_ASSOC);
$answer["success"] = 1; $answer['success'] = 1;
exit(json_encode($answer)); exit(json_encode($answer));
?>
?>
@@ -3,6 +3,8 @@
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
require '../../../assets/utils/classes/FileUploader.php'; require '../../../assets/utils/classes/FileUploader.php';
require_role($user_role, ['owner', 'admin']);
// ─── Allowed upload MIME types ──────────────────────────────────────────── // ─── Allowed upload MIME types ────────────────────────────────────────────
const ALLOWED_MIME = ['image/jpeg', 'image/png', 'image/gif', 'image/webp']; const ALLOWED_MIME = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'];
const MAX_SIZE = 2 * 1024 * 1024; // 2 MB const MAX_SIZE = 2 * 1024 * 1024; // 2 MB
+1 -14
View File
@@ -2,20 +2,7 @@
session_start(); session_start();
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
// ─── Role guard: only owner/admin ──────────────────────────────────────── require_role($user_role, ['owner', 'admin']);
$sth = $pdo1->prepare("
SELECT role FROM company_map_user
WHERE company_id = :company_id AND user_id = :user_id
LIMIT 1
");
$sth->execute([':company_id' => $company_id, ':user_id' => $user_id]);
db_check($sth, $answer);
if (!in_array($sth->fetchColumn(), ['owner', 'admin'], true)) {
$answer['message'] = 'You do not have permission to change SMTP settings.';
http_response_code(403);
exit(json_encode($answer));
}
// ─── Encrypt password — same method/key/iv as config.php ───────────────── // ─── Encrypt password — same method/key/iv as config.php ─────────────────
function encrypt_password(string $plain): string { function encrypt_password(string $plain): string {
+2
View File
@@ -2,6 +2,8 @@
session_start(); session_start();
require '../../../assets/utils/db_auth.php'; require '../../../assets/utils/db_auth.php';
require_role($user_role, ['owner', 'admin']);
try { try {
$to = trim($data['test_email'] ?? ''); $to = trim($data['test_email'] ?? '');