Repository navigation
Expand file tree
/
Copy pathsend_message.php
More file actions
70 lines (61 loc) · 2.28 KB
/
Copy pathsend_message.php
File metadata and controls
70 lines (61 loc) · 2.28 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
require_once 'includes/session_config.php';
include 'conn.php';
// Check if user is logged in
if (!isset($_SESSION['logged_in']) || !isset($_SESSION['user_id'])) {
echo json_encode(['success' => false, 'message' => 'User not logged in']);
exit();
}
// Get user information from session
$user_id = $_SESSION['user_id'];
$user_type = $_SESSION['user_type'] ?? "";
// Check if required parameters are provided
if (!isset($_POST['project_id']) || !isset($_POST['message'])) {
echo json_encode(['success' => false, 'message' => 'Missing required parameters']);
exit();
}
$project_id = intval($_POST['project_id']);
$message = trim($_POST['message']);
// Validate message
if (empty($message)) {
echo json_encode(['success' => false, 'message' => 'Message cannot be empty']);
exit();
}
// Check if user has access to this project
$has_access = false;
if ($user_type === 'client') {
// Check if this client owns the project
$access_sql = "SELECT * FROM projects WHERE id = ? AND user_id = ?";
$access_stmt = $conn->prepare($access_sql);
$access_stmt->bind_param("ii", $project_id, $user_id);
$access_stmt->execute();
$access_result = $access_stmt->get_result();
if ($access_result->num_rows > 0) {
$has_access = true;
}
} else if ($user_type === 'freelancer') {
// Check if this freelancer is assigned to this project
$access_sql = "SELECT * FROM project_assignments
WHERE project_id = ? AND freelancer_id = ? AND is_accepted = 1";
$access_stmt = $conn->prepare($access_sql);
$access_stmt->bind_param("ii", $project_id, $user_id);
$access_stmt->execute();
$access_result = $access_stmt->get_result();
if ($access_result->num_rows > 0) {
$has_access = true;
}
}
if (!$has_access) {
echo json_encode(['success' => false, 'message' => 'You do not have access to this project']);
exit();
}
// Insert message into database
$sql = "INSERT INTO project_messages (project_id, user_id, message, timestamp) VALUES (?, ?, ?, NOW())";
$stmt = $conn->prepare($sql);
$stmt->bind_param("iis", $project_id, $user_id, $message);
if ($stmt->execute()) {
echo json_encode(['success' => true]);
} else {
echo json_encode(['success' => false, 'message' => 'Failed to save message: ' . $conn->error]);
}
?>