firstname = get_string("admin"); $user->lastname = get_string("user"); $user->username = "admin"; $user->password = md5("admin"); $user->email = "root@localhost"; $user->confirmed = 1; $user->lang = $CFG->lang; $user->maildisplay = 1; $user->timemodified = time(); if (! $user->id = insert_record("user", $user)) { error("SERIOUS ERROR: Could not create admin user record !!!"); } unset($admin); $admin->userid = $user->id; if (! insert_record("user_admins", $admin)) { error("Could not make user $user->id an admin !!!"); } if (! $user = get_record("user", "id", $user->id)) { // Double check error("User ID was incorrect (can't find it)"); } if (! $site = get_site()) { error("Could not find site-level course"); } unset($teacher); $teacher->userid = $user->id; $teacher->course = $site->id; $teacher->authority = 1; if (! insert_record("user_teachers", $teacher)) { error("Could not make user $id a teacher of site-level course !!!"); } $USER = $user; $USER->loggedin = true; $USER->site = $CFG->wwwroot; $USER->admin = true; $USER->teacher["$site->id"] = true; $USER->newadminuser = true; redirect("$CFG->wwwroot/user/edit.php?id=$user->id&course=$site->id"); exit; } else { if (! $site = get_site()) { error("Could not find site-level course"); } } require_login(); if (!isadmin()) { error("You must be an administrator to edit users this way."); } if ($newuser) { // Create a new user $user->firstname = ""; $user->lastname = ""; $user->username = "changeme"; $user->password = ""; $user->email = ""; $user->lang = $CFG->lang; $user->confirmed = 1; $user->timemodified = time(); if (! $user->id = insert_record("user", $user)) { if (!$user = get_record("user", "username", "changeme")) { // half finished user from another time error("Could not start a new user!"); } } redirect("$CFG->wwwroot/user/edit.php?id=$user->id&course=$site->id"); } else { // List all users for editing $stredituser = get_string("edituser"); $stradministration = get_string("administration"); $stredit = get_string("edit"); $strdelete = get_string("delete"); $strdeletecheck = get_string("deletecheck"); $strsearch = get_string("search"); $strshowallusers = get_string("showallusers"); print_header("$site->shortname: $stredituser", $site->fullname, "$stradministration -> $stredituser"); if ($delete) { // Delete a selected user, after confirmation if (!$user = get_record("user", "id", "$delete")) { error("No such user!"); } $primaryadmin = get_admin(); if ($user->id == $primaryadmin->id) { error("You are not allowed to delete the primary admin user!"); } if ($confirm != md5($delete)) { notice_yesno(get_string("deletecheckfull", "", "'$user->firstname $user->lastname'"), "user.php?delete=$delete&confirm=".md5($delete), "user.php"); exit; } else if (!$user->deleted) { $user->deleted = "1"; $user->username = "$user->email.".time(); // Remember it just in case $user->email = ""; // Clear this field to free it up $user->timemodified = time(); if (update_record("user", $user)) { unenrol_student($user->id); // From all courses remove_teacher($user->id); // From all courses remove_admin($user->id); notify(get_string("deletedactivity", "", "$user->firstname $user->lastname")); } else { notify(get_string("deletednot", "", "$user->firstname $user->lastname")); } } } // Carry on with the user listing $columns = array("name", "email", "city", "country", "lastaccess"); foreach ($columns as $column) { $string[$column] = get_string("$column"); $columnsort = "$column"; if ($column == "lastaccess") { $columndir = "DESC"; } else { $columndir = "ASC"; } if ($columnsort == $sort) { $$column = $string[$column]; } else { $$column = "".$string[$column].""; } } if ($sort == "name") { $sort = "firstname"; } if (!$users = get_users_listing($sort, $dir, $page, $recordsperpage, $search)) { if (!$users = get_users_listing($sort, $dir, 0, $recordsperpage)) { error("No users found!"); } else { notify(get_string("nousersmatching", "", $search)); $search = ""; } } $usercount = get_users(false); if ($search) { $usersearchcount = get_users(false, $search); print_heading("$usersearchcount / $usercount ".get_string("users")); $usercount = $usersearchcount; } else { print_heading("$usercount ".get_string("users")); } $a->start = $page; $a->end = $page + $recordsperpage; if ($a->end > $usercount) { $a->end = $usercount; } echo ""; echo "
"; if ($page) { $prevpage = $page - $recordsperpage; if ($prevpage < 0) { $prevpage = 0; } $options["dir"] = $dir; $options["page"] = 0; $options["sort"] = $sort; $options["search"] = $search; print_single_button("user.php", $options, " << "); echo ""; $options["page"] = $prevpage; print_single_button("user.php", $options, " < "); } echo ""; print_heading(get_string("displayingusers", "", $a)); echo ""; $nextpage = $page + $recordsperpage; if ($nextpage < $usercount) { $options["dir"] = $dir; $options["page"] = $nextpage; $options["sort"] = $sort; $options["search"] = $search; print_single_button("user.php", $options, " > "); echo ""; $options["page"] = $usercount-$recordsperpage; print_single_button("user.php", $options, " >> "); } echo "
"; flush(); foreach ($users as $key => $user) { if (!empty($user->country)) { $users[$key]->country = $COUNTRIES[$user->country]; } } if ($sort == "country") { // Need to resort by full country name, not code foreach ($users as $user) { $susers[$user->id] = $user->country; } asort($susers); foreach ($susers as $key => $value) { $nusers[] = $users[$key]; } $users = $nusers; } $table->head = array ($name, $email, $city, $country, $lastaccess, "", ""); $table->align = array ("LEFT", "LEFT", "LEFT", "LEFT", "LEFT", "CENTER", "CENTER"); $table->width = "95%"; foreach ($users as $user) { if ($user->id == $USER->id or $user->username == "changeme") { $deletebutton = ""; } else { $deletebutton = "id\" TARGET=\"$strdeletecheck\">$strdelete"; } if ($user->lastaccess) { $strlastaccess = format_time(time() - $user->lastaccess); } else { $strlastaccess = get_string("never"); } $table->data[] = array ("id&course=$site->id\">$user->firstname $user->lastname", "$user->email", "$user->city", "$user->country", $strlastaccess, "id&course=$site->id\">$stredit", $deletebutton); } echo "
"; echo "
"; echo ""; echo ""; if ($search) { echo ""; } echo "
"; echo "
"; print_table($table); if ($CFG->auth == "email" || $CFG->auth == "none" || $CFG->auth == "manual"){ print_heading("".get_string("addnewuser").""); } print_footer(); } ?>