Changes to support guest user across any course (guest/guest)
This commit is contained in:
@@ -43,6 +43,21 @@
|
||||
$USER->loggedin = true;
|
||||
$USER->admin = true;
|
||||
$USER->teacher["$course->id"] = true;
|
||||
|
||||
// This is also a good time to make the Guest User
|
||||
|
||||
$user = NULL;
|
||||
$user->firstname = "Guest";
|
||||
$user->lastname = "User";
|
||||
$user->username = "guest"; // This user is identified by this
|
||||
$user->password = md5("guest");
|
||||
$user->email = "root@localhost";
|
||||
$user->confirmed = 1;
|
||||
$user->timemodified = time();
|
||||
|
||||
if (! $guest->user = insert_record("user", $user)) {
|
||||
notify("Could not create guest user record !!!");
|
||||
}
|
||||
}
|
||||
|
||||
require_login();
|
||||
|
||||
+12
-4
@@ -13,15 +13,23 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><P>Password:</td>
|
||||
<td><P>Summary:</td>
|
||||
<td><TEXTAREA NAME=summary COLS=50 ROWS=10 WRAP=virtual><? p($form->summary) ?></TEXTAREA>
|
||||
<? formerr($err["summary"]) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><P>Entry Key:</td>
|
||||
<td><input type="text" name="password" size=25 value="<? p($form->password) ?>">
|
||||
<? formerr($err["password"]) ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
<td><P>Summary:</td>
|
||||
<td><TEXTAREA NAME=summary COLS=50 ROWS=10 WRAP=virtual><? p($form->summary) ?></TEXTAREA>
|
||||
<? formerr($err["summary"]) ?>
|
||||
<td><P>Open to guests?:</td>
|
||||
<td><?
|
||||
$choices["0"] = "No, only students are allowed";
|
||||
$choices["1"] = "Yes, allow \"guest\" student in";
|
||||
choose_from_menu ($choices, "guest", $form->guest, "") ?>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign=top>
|
||||
|
||||
+15
-7
@@ -16,10 +16,14 @@
|
||||
|
||||
if ($password == $course->password) {
|
||||
|
||||
if (! enrol_student_in_course($USER->id, $course->id)) {
|
||||
error("An error occurred while trying to enrol you.");
|
||||
if (isguest()) {
|
||||
add_to_log($course->id, "course", "guest", "view.php?id=$course->id", "$USER->id");
|
||||
} else {
|
||||
if (! enrol_student_in_course($USER->id, $course->id)) {
|
||||
error("An error occurred while trying to enrol you.");
|
||||
}
|
||||
add_to_log($course->id, "course", "enrol", "view.php?id=$course->id", "$USER->id");
|
||||
}
|
||||
add_to_log($course->id, "course", "enrol", "view.php?id=$course->id", "$USER->id");
|
||||
|
||||
$USER->student["$id"] = true;
|
||||
|
||||
@@ -44,12 +48,16 @@
|
||||
}
|
||||
|
||||
if ($course->password == "") { // no password, so enrol
|
||||
if (! enrol_student_in_course($USER->id, $course->id)) {
|
||||
error("An error occurred while trying to enrol you.");
|
||||
|
||||
if (isguest()) {
|
||||
add_to_log($course->id, "course", "guest", "view.php?id=$course->id", "$USER->id");
|
||||
} else {
|
||||
if (! enrol_student_in_course($USER->id, $course->id)) {
|
||||
error("An error occurred while trying to enrol you.");
|
||||
}
|
||||
add_to_log($course->id, "course", "enrol", "view.php?id=$course->id", "$USER->id");
|
||||
}
|
||||
|
||||
add_to_log($course->id, "course", "enrol", "view.php?id=$course->id", "$USER->id");
|
||||
|
||||
$USER->student["$id"] = true;
|
||||
|
||||
if ($SESSION->wantsurl) {
|
||||
|
||||
+1
-1
@@ -9,7 +9,7 @@
|
||||
|
||||
if ($courses = get_records("course", "category", $cat, "fullname ASC")) {
|
||||
|
||||
foreach ($courses as $key => $course) {
|
||||
foreach ($courses as $course) {
|
||||
print_course($course);
|
||||
echo "<BR>\n";
|
||||
}
|
||||
|
||||
+18
-7
@@ -124,7 +124,8 @@ function print_course($course) {
|
||||
print_simple_box_start("CENTER", "80%");
|
||||
|
||||
echo "<TABLE WIDTH=100%>";
|
||||
echo "<TR VALIGN=top><TD VALIGN=top WIDTH=50%>";
|
||||
echo "<TR VALIGN=top>";
|
||||
echo "<TD VALIGN=top WIDTH=50%>";
|
||||
echo "<P><FONT SIZE=3><B><A HREF=\"view.php?id=$course->id\">$course->fullname</A></B></FONT></P>";
|
||||
if ($teachers = get_records_sql("SELECT u.* FROM user u, user_teachers t
|
||||
WHERE u.id = t.user AND t.course = '$course->id'
|
||||
@@ -135,13 +136,23 @@ function print_course($course) {
|
||||
echo "$course->teacher: <A HREF=\"../user/view.php?id=$teacher->id&course=$site->id\">$teacher->firstname $teacher->lastname</A><BR>";
|
||||
}
|
||||
echo "</FONT></P>";
|
||||
}
|
||||
echo "</TD><TD VALIGN=top WIDTH=50%>";
|
||||
echo "<P><FONT SIZE=2>".text_to_html($course->summary)."</FONT></P>";
|
||||
echo "</TD></TR>";
|
||||
echo "</TABLE>";
|
||||
}
|
||||
if ($course->guest or ($course->password == "")) {
|
||||
echo "<A TITLE=\"Guest user allowed\" HREF=\"view.php?id=$course->id\">";
|
||||
echo "<IMG VSPACE=4 ALT=\"\" HEIGHT=16 WIDTH=16 BORDER=0 SRC=\"../user/user.gif\"></A> ";
|
||||
}
|
||||
if ($course->password) {
|
||||
echo "<A TITLE=\"Requires a Course entry key\" HREF=\"view.php?id=$course->id\">";
|
||||
echo "<IMG VSPACE=4 ALT=\"\" HEIGHT=16 WIDTH=16 BORDER=0 SRC=\"../pix/i/key.gif\"></A>";
|
||||
}
|
||||
|
||||
print_simple_box_end();
|
||||
|
||||
echo "</TD><TD VALIGN=top WIDTH=50%>";
|
||||
echo "<P><FONT SIZE=2>".text_to_html($course->summary)."</FONT></P>";
|
||||
echo "</TD></TR>";
|
||||
echo "</TABLE>";
|
||||
|
||||
print_simple_box_end();
|
||||
}
|
||||
|
||||
function print_headline($text, $size=2) {
|
||||
|
||||
+20
-19
@@ -14,20 +14,21 @@
|
||||
# Table structure for table `course`
|
||||
#
|
||||
|
||||
CREATE TABLE course (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
category int(10) unsigned NOT NULL default '0',
|
||||
password varchar(50) NOT NULL default '',
|
||||
fullname varchar(254) NOT NULL default '',
|
||||
shortname varchar(15) NOT NULL default '',
|
||||
summary text NOT NULL,
|
||||
format tinyint(4) NOT NULL default '1',
|
||||
teacher varchar(100) NOT NULL default 'Teacher',
|
||||
student varchar(100) NOT NULL default 'Student',
|
||||
startdate int(10) unsigned NOT NULL default '0',
|
||||
enddate int(10) unsigned NOT NULL default '0',
|
||||
timemodified int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (id)
|
||||
CREATE TABLE `course` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`category` int(10) unsigned NOT NULL default '0',
|
||||
`password` varchar(50) NOT NULL default '',
|
||||
`fullname` varchar(254) NOT NULL default '',
|
||||
`shortname` varchar(15) NOT NULL default '',
|
||||
`summary` text NOT NULL,
|
||||
`format` tinyint(4) NOT NULL default '1',
|
||||
`teacher` varchar(100) NOT NULL default 'Teacher',
|
||||
`student` varchar(100) NOT NULL default 'Student',
|
||||
`guest` tinyint(1) unsigned NOT NULL default '0',
|
||||
`startdate` int(10) unsigned NOT NULL default '0',
|
||||
`enddate` int(10) unsigned NOT NULL default '0',
|
||||
`timemodified` int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`id`)
|
||||
) TYPE=MyISAM;
|
||||
# --------------------------------------------------------
|
||||
|
||||
@@ -165,11 +166,11 @@ CREATE TABLE user (
|
||||
# Table structure for table `user_admins`
|
||||
#
|
||||
|
||||
CREATE TABLE user_admins (
|
||||
id int(10) unsigned NOT NULL auto_increment,
|
||||
user int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY id (id)
|
||||
CREATE TABLE `user_admins` (
|
||||
`id` int(10) unsigned NOT NULL auto_increment,
|
||||
`user` int(10) unsigned NOT NULL default '0',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `id` (`id`)
|
||||
) TYPE=MyISAM COMMENT='One record per administrator user';
|
||||
# --------------------------------------------------------
|
||||
|
||||
|
||||
+35
-16
@@ -705,13 +705,14 @@ function update_user_in_db() {
|
||||
}
|
||||
}
|
||||
|
||||
function require_login($course=0) {
|
||||
// if they aren't already logged in, then send them off to login
|
||||
// $course is optional - if left out then it just requires that
|
||||
// that they have an account on the system.
|
||||
function require_login($courseid=0) {
|
||||
// This function checks that the current user is logged in, and optionally
|
||||
// whether they are "logged in" or allowed to be in a particular course.
|
||||
// If not, then it redirects them to the site login or course enrolment.
|
||||
|
||||
global $CFG, $SESSION, $USER, $FULLME, $HTTP_REFERER, $PHPSESSID;
|
||||
|
||||
// First check that the user is logged in to the site.
|
||||
if (! (isset( $USER->loggedin ) && $USER->confirmed) ) {
|
||||
$SESSION->wantsurl = $FULLME;
|
||||
$SESSION->fromurl = $HTTP_REFERER;
|
||||
@@ -721,20 +722,28 @@ function require_login($course=0) {
|
||||
redirect("$CFG->wwwroot/login/");
|
||||
}
|
||||
die;
|
||||
|
||||
} else if ($course) {
|
||||
if (! ($USER->student[$course] || $USER->teacher[$course] || $USER->admin ) ) {
|
||||
if (!record_exists("course", "id", $course)) {
|
||||
error("That course doesn't exist");
|
||||
}
|
||||
|
||||
$SESSION->wantsurl = $FULLME;
|
||||
redirect("$CFG->wwwroot/course/enrol.php?id=$course");
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
// Next, check if the user can be in a particular course
|
||||
if ($courseid) {
|
||||
if ($USER->student[$courseid] || $USER->teacher[$courseid] || $USER->admin) {
|
||||
update_user_in_db();
|
||||
return; // user is a member of this course.
|
||||
}
|
||||
if (! $course = get_record("course", "id", $courseid)) {
|
||||
error("That course doesn't exist");
|
||||
}
|
||||
if ($course->guest && ($USER->username == "guest")) {
|
||||
update_user_in_db();
|
||||
return; // user is a guest and this course allows guests
|
||||
}
|
||||
|
||||
update_user_in_db();
|
||||
// Not allowed in the course, so see if they want to enrol
|
||||
|
||||
$SESSION->wantsurl = $FULLME;
|
||||
redirect("$CFG->wwwroot/course/enrol.php?id=$courseid");
|
||||
die;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -794,6 +803,16 @@ function isstudent($course, $userid=0) {
|
||||
return record_exists_sql("SELECT * FROM user_students WHERE user='$userid' AND course='$course'");
|
||||
}
|
||||
|
||||
function isguest($userid=0) {
|
||||
global $USER;
|
||||
|
||||
if (!$userid) {
|
||||
return ($USER->username == "guest");
|
||||
}
|
||||
|
||||
return record_exists_sql("SELECT * FROM user WHERE user='$userid' AND username = 'guest' ");
|
||||
}
|
||||
|
||||
|
||||
function reset_login_count() {
|
||||
global $SESSION;
|
||||
|
||||
@@ -14,6 +14,10 @@
|
||||
|
||||
require_login($course->id);
|
||||
|
||||
if (isguest()) {
|
||||
error("Guests are not allowed to edit journals", $HTTP_REFERER);
|
||||
}
|
||||
|
||||
if (! $journal = get_record("journal", "id", $cm->instance)) {
|
||||
error("Course module is incorrect");
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
|
||||
require_login($course->id);
|
||||
|
||||
|
||||
if (! $journal = get_record("journal", "id", $cm->instance)) {
|
||||
error("Course module is incorrect");
|
||||
}
|
||||
@@ -51,7 +50,6 @@
|
||||
|
||||
if ($timenow > $timestart) {
|
||||
|
||||
|
||||
print_simple_box_start("center");
|
||||
|
||||
if ($timenow < $timefinish) {
|
||||
|
||||
@@ -10,6 +10,10 @@
|
||||
error("You are not supposed to use this script like that.");
|
||||
}
|
||||
|
||||
if (isguest()) {
|
||||
error("Guests are not allowed to answer surveys", $HTTP_REFERER);
|
||||
}
|
||||
|
||||
require_variable($id); // Course Module ID
|
||||
|
||||
if (! $cm = get_record("course_modules", "id", $id)) {
|
||||
|
||||
Executable
BIN
Binary file not shown.
|
After Width: | Height: | Size: 929 B |
Reference in New Issue
Block a user