Fix bug 558
parent
e8bbce386a
commit
0f42a68461
22
Admin.php
22
Admin.php
|
@ -30,7 +30,7 @@ if ($_SESSION['user_type'] != "Lecturer" && $_SESSION['user_type'] != "Admin") {
|
||||||
<ul class="nav nav-tabs" id="myTab">
|
<ul class="nav nav-tabs" id="myTab">
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link active" href="#tab-student-accounts" id="batch_tab">Create student accounts</a>
|
<a class="nav-link active" href="#tab-student-accounts" id="batch_tab">Enter student numbers</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
|
@ -113,10 +113,21 @@ if ($_SESSION['user_type'] != "Lecturer" && $_SESSION['user_type'] != "Admin") {
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
if ($_SESSION['user_type'] == "Lecturer") {
|
if ($_SESSION['user_type'] == "Lecturer") {
|
||||||
|
$user_id = $_SESSION['user_id'];
|
||||||
|
echo "<script>console.log('here {$user_id}');</script>"; // debug trick
|
||||||
|
// find the TAs in the courses taught by this instructor
|
||||||
|
$ta_result = mysqli_query(
|
||||||
|
$con,
|
||||||
|
"SELECT TA FROM course_ta INNER JOIN courses_table ON course_ta.Course_ID=courses_table.Course_ID WHERE courses_table.Lecturer_User_ID=$user_id"
|
||||||
|
);
|
||||||
|
$ta_ids = array(-1); // -1 is non-existent ID
|
||||||
|
while ($row = mysqli_fetch_assoc($ta_result)) {
|
||||||
|
array_push($ta_ids, $row['TA']);
|
||||||
|
}
|
||||||
|
$ta_ids2 = implode(', ', $ta_ids);
|
||||||
$result = mysqli_query(
|
$result = mysqli_query(
|
||||||
$con,
|
$con,
|
||||||
"SELECT * FROM users_table WHERE UserType in ('TA')"
|
"SELECT * FROM users_table WHERE UserType in ('TA') and User_ID in ($ta_ids2)"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -127,6 +138,7 @@ if ($_SESSION['user_type'] != "Lecturer" && $_SESSION['user_type'] != "Admin") {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$num_rows = 0;
|
||||||
while ($row = mysqli_fetch_assoc($result)) {
|
while ($row = mysqli_fetch_assoc($result)) {
|
||||||
$pass = $row['Password'];
|
$pass = $row['Password'];
|
||||||
$btn = "<button class='btn btn-warning' onclick=\"updatePassword(" . $row['User_ID'] . ",'$pass')\">Reset</button>";
|
$btn = "<button class='btn btn-warning' onclick=\"updatePassword(" . $row['User_ID'] . ",'$pass')\">Reset</button>";
|
||||||
|
@ -139,6 +151,10 @@ if ($_SESSION['user_type'] != "Lecturer" && $_SESSION['user_type'] != "Admin") {
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "<tr><td>" . $row['User_ID'] . "</td><td>" . $row['Full_Name'] . "</td><td>" . $row['Email'] . "</td><td>$btn</td><td>$btnBlock</td></tr>";
|
echo "<tr><td>" . $row['User_ID'] . "</td><td>" . $row['Full_Name'] . "</td><td>" . $row['Email'] . "</td><td>$btn</td><td>$btnBlock</td></tr>";
|
||||||
|
$num_rows += 1;
|
||||||
|
}
|
||||||
|
if ($num_rows == 0) {
|
||||||
|
echo "<p>No TA</p>";
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
</table>
|
</table>
|
||||||
|
|
|
@ -286,6 +286,7 @@ CREATE TABLE `users_table` (
|
||||||
|
|
||||||
INSERT INTO `users_table` (`User_ID`, `Email`, `Password`, `HashPassword`, `Full_Name`, `UserType`, `Student_ID`, `Passport_Number`, `Status`) VALUES
|
INSERT INTO `users_table` (`User_ID`, `Email`, `Password`, `HashPassword`, `Full_Name`, `UserType`, `Student_ID`, `Passport_Number`, `Status`) VALUES
|
||||||
(3, 'admin@qq.com', '$2y$10$8GCG6lTo1LFRD3bOkAyKYeOMOrFSBUgrTxaPLS5ynWN1bYDHf89pO', '', 'Kamal', 'Admin', '0', NULL, 'Active'),
|
(3, 'admin@qq.com', '$2y$10$8GCG6lTo1LFRD3bOkAyKYeOMOrFSBUgrTxaPLS5ynWN1bYDHf89pO', '', 'Kamal', 'Admin', '0', NULL, 'Active'),
|
||||||
|
(7, 'peter@qq.com', '$2y$10$8GCG6lTo1LFRD3bOkAyKYeOMOrFSBUgrTxaPLS5ynWN1bYDHf89pO', '', 'Peter', 'Lecturer', NULL, '123', 'Active'),
|
||||||
(8, 'lanhui@qq.com', '$2y$10$8GCG6lTo1LFRD3bOkAyKYeOMOrFSBUgrTxaPLS5ynWN1bYDHf89pO', '', 'Lanhui', 'Lecturer', NULL, '123', 'Active'),
|
(8, 'lanhui@qq.com', '$2y$10$8GCG6lTo1LFRD3bOkAyKYeOMOrFSBUgrTxaPLS5ynWN1bYDHf89pO', '', 'Lanhui', 'Lecturer', NULL, '123', 'Active'),
|
||||||
(9, 'mohamed@qq.com', '$2y$10$8GCG6lTo1LFRD3bOkAyKYeOMOrFSBUgrTxaPLS5ynWN1bYDHf89pO', '', 'Mohamed', 'Student', '201825800050', 'P00581929', 'Active'),
|
(9, 'mohamed@qq.com', '$2y$10$8GCG6lTo1LFRD3bOkAyKYeOMOrFSBUgrTxaPLS5ynWN1bYDHf89pO', '', 'Mohamed', 'Student', '201825800050', 'P00581929', 'Active'),
|
||||||
(10, 'mark@qq.com', '123', '', 'Mark ', 'TA', NULL, '123', 'Active'),
|
(10, 'mark@qq.com', '123', '', 'Mark ', 'TA', NULL, '123', 'Active'),
|
||||||
|
|
|
@ -68,8 +68,10 @@ def test_lecturer_can_post_assignment(driver, url, restore_database):
|
||||||
login(driver, url, 'lanhui@qq.com', '123')
|
login(driver, url, 'lanhui@qq.com', '123')
|
||||||
|
|
||||||
# Create an assignment called Take-home quiz 1 for course (CSC1111) - Project Management
|
# Create an assignment called Take-home quiz 1 for course (CSC1111) - Project Management
|
||||||
elems = driver.find_elements(By.CLASS_NAME, 'btn-default')
|
elem = WebDriverWait(driver, 10).until(
|
||||||
elems[1].click()
|
EC.element_to_be_clickable((By.XPATH, '//div[@class="col-md-8"]/a[1]/div'))
|
||||||
|
)
|
||||||
|
elem.click()
|
||||||
elem = driver.find_element(By.NAME, 'deadlinedate')
|
elem = driver.find_element(By.NAME, 'deadlinedate')
|
||||||
elem.send_keys('002024/12/30')
|
elem.send_keys('002024/12/30')
|
||||||
elem = driver.find_element(By.NAME, 'deadlinetime')
|
elem = driver.find_element(By.NAME, 'deadlinetime')
|
||||||
|
@ -331,3 +333,20 @@ def test_lecturer_can_mark_assignment(driver, url, restore_database):
|
||||||
elems[1].click()
|
elems[1].click()
|
||||||
elem = driver.find_element(By.XPATH, "//div[@id='menu2']/div/b")
|
elem = driver.find_element(By.XPATH, "//div[@id='menu2']/div/b")
|
||||||
assert 'Reading 1 submission' in elem.text
|
assert 'Reading 1 submission' in elem.text
|
||||||
|
|
||||||
|
|
||||||
|
def test_lecturer_cannot_see_tas_not_from_his_course(driver, url, restore_database):
|
||||||
|
# Lecturer lanhui@qq.com logs in
|
||||||
|
driver.maximize_window()
|
||||||
|
login(driver, url, 'peter@qq.com', '123')
|
||||||
|
|
||||||
|
elem = driver.find_element(By.ID, 'admin_tab')
|
||||||
|
elem.click()
|
||||||
|
tab = driver.find_element(By.ID, 'existing_accounts_tab')
|
||||||
|
tab.click()
|
||||||
|
elem = driver.find_element(By.ID, 'tab-existing-accounts')
|
||||||
|
assert 'No TA' in elem.text
|
||||||
|
|
||||||
|
# Logout
|
||||||
|
logout(driver)
|
||||||
|
driver.quit()
|
||||||
|
|
Loading…
Reference in New Issue