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