diff --git a/admin/students.php b/admin/students.php
new file mode 100644
index 00000000000..2d45f949ae7
--- /dev/null
+++ b/admin/students.php
@@ -0,0 +1,201 @@
+wwwroot/$CFG->admin/index.php");
+ }
+
+ require_login();
+
+ if (!iscreator()) {
+ error("You must be an administrator or course creator to use this page.");
+ }
+
+ $stradministration = get_string("administration");
+ $strassignstudents = "Assign students";
+ $strexistingstudents = "Existing students";
+ $strnoexistingstudents = "No existing students";
+ $strpotentialstudents = "Potential students";
+ $strnopotentialstudents = "No potential students";
+ $straddstudent = "Add student";
+ $strremovestudent = "Remove student";
+ $strsearch = get_string("search");
+ $strsearchresults = get_string("searchresults");
+ $strsearchagain = get_string("searchagain");
+ $strtoomanytoshow = get_string("toomanytoshow");
+
+ if ($search) {
+ $searchstring = $strsearchagain;
+ } else {
+ $searchstring = $strsearch;
+ }
+
+
+ if (!$id) {
+ print_header("$site->shortname: $strassignstudents", "$site->fullname",
+ "$stradministration -> $strassignstudents");
+
+ $isadmin = isadmin(); /// cache value
+ $courses = get_courses();
+
+ print_heading(get_string("choosecourse"));
+ print_simple_box_start("center");
+
+ if (!empty($courses)) {
+ foreach ($courses as $course) {
+ if ($isadmin or isteacher($course->id, $USER->id)){
+ echo "id\">$course->fullname ($course->shortname)
\n";
+ $coursesfound = TRUE;
+ }
+ }
+ }
+
+ print_simple_box_end();
+
+ if ($coursesfound == FALSE) {
+ print_heading(get_string("nocoursesyet"));
+ print_continue("../$CFG->admin/index.php");
+ }
+
+ print_footer();
+ exit;
+ }
+
+ if (! $course = get_record("course", "id", $id)) {
+ error("Course ID was incorrect (can't find it)");
+ }
+
+
+ print_header("$site->shortname: $course->shortname: $strassignstudents",
+ "$site->fullname",
+ "$stradministration ->
+ $strassignstudents -> $course->shortname", "");
+
+ print_heading("wwwroot/course/view.php?id=$course->id\">$course->fullname ($course->shortname)");
+
+
+/// Get all existing students for this course.
+ $students = get_course_students($course->id);
+
+/// Add a student if one is specified
+
+ if (!empty($add)) {
+ if (!isteacher($course->id)){
+ error("You must be an administrator or teacher to modify this course.");
+ }
+
+ if (! $user = get_record("user", "id", $add)) {
+ error("That student (id = $add) doesn't exist", "students.php?id=$course->id");
+ }
+
+ if (!empty($students)) {
+ foreach ($students as $ss) {
+ if ($ss->id == $user->id) {
+ error("That user is already a student for this course.", "students.php?id=$course->id");
+ }
+ }
+ }
+
+ $student->userid = $user->id;
+ $student->course = $course->id;
+ $student->id = insert_record("user_students", $student);
+ if (empty($student->id)) {
+ error("Could not add that student to this course!");
+ }
+ $students[] = $user;
+ }
+
+/// Remove a student if one is specified.
+
+ if (!empty($remove)) {
+
+ if (!isteacher($course->id)){
+ error("You must be an administrator or teacher to modify this course.");
+ }
+ if (! $user = get_record("user", "id", $remove)) {
+ error("That student (id = $remove) doesn't exist", "students.php?id=$course->id");
+ }
+ if (!empty($students)) {
+ foreach ($students as $key => $ss) {
+ if ($ss->id == $user->id) {
+ unenrol_student($user->id, $course->id);
+ unset($students[$key]);
+ }
+ }
+ }
+ }
+
+
+/// Print the lists of existing and potential students
+
+ echo "
| $strexistingstudents | $strpotentialstudents |
|---|---|
| ";
+
+/// First, show existing students for this course
+
+ if (empty($students)) {
+ echo " $strnoexistingstudents"; + $studentlist = ""; + + } else { + $studentarray = array(); + foreach ($students as $student) { + $studentarray[] = $student->id; + echo " $student->firstname $student->lastname, $student->email id&remove=$student->id\" title=\"$strremovestudent\"> | ";
+
+/// Print list of potential students
+
+ $usercount = get_users(false, $search, true, $studentlist);
+
+ if ($usercount == 0) {
+ echo " $strnopotentialstudents "; + + } else if ($usercount > MAX_USERS_PER_PAGE) { + echo "$strtoomanytoshow "; + + } else { + + if ($search) { + echo "($strsearchresults : $search) "; + } + + if (!$users = get_users(true, $search, true, $studentlist)) { + error("Could not get users!"); + } + + foreach ($users as $user) { + echo "id&add=$user->id\"".
+ "title=\"$straddstudent\"> |