当方のサイトはオートログインを有効にしていません.つまりサイトにアクセスすると,まずログイン画面が表示され,学生はアカウントとパスワードを入力してログイン処理を行います(ゲストならばゲストでログインボタンを押してゲストログイン).
サイト管理ブロックの「ユーザ」-「認証」-「認証の管理」で”ゲストログインボタンを表示”をYesにし,さらに「ユーザ」-「パーミッション」-「ユーザポリシー」の”ゲストのオートログイン”もYesに設定すると,ログイン画面を表示することなくゲストの入室を許可されたコース(およびフロントページ)にダイレクトにログインできます.ただしゲストアカウントです.
これらの設定はサイト単位での設定です.ゲストさんウェルカムなコースの場合はいちいち「ゲストでログイン」ボタンをクリックしないでも通常のWebページと同じ感覚でアクセスして貰える反面,ゲスト入室可だが学生のロールも割り当てられているコースに学生が入室した場合は混乱が生じます.フォーラムに書き込もうとしても投稿できずに一瞬迷います.改めて画面右上の「ログイン」ボタンを押してログインし直す必要があります.
この辺りの管理を行っているのはlib/moodlelib.phpのfunction require_login()関数です.具体的には,
/// If the user is not even logged in yet then make sure they are
if (!isloggedin()) {
//NOTE: $USER->site check was obsoleted by session test cookie,
// $USER->confirmed test is in login/index.php
if ($setwantsurltome) {
$SESSION->wantsurl = $FULLME;
}
if (!empty($_SERVER['HTTP_REFERER'])) {
$SESSION->fromurl = $_SERVER['HTTP_REFERER'];
}
if ($autologinguest and !empty($CFG->guestloginbutton) and !empty($CFG->autologinguests) and ($COURSE->id == SITEID or $COURSE->guest) ) {
$loginguest = '?loginguest=true';
} else {
$loginguest = '';
}
この赤い行の部分です.特定のコースでは青で示した条件をパスするように何らかの工夫を施すと,「ユーザ」-「パーミッション」-「ユーザポリシー」の”ゲストのオートログイン”がNoでも,特定のコースの時だけオートログインできそうです.仕組みは,未ログイン状態の場合はlogin/index.phpにこれから入室したいコースのコースIDを保持してリダイレクトされるのですが,オートログインが許されている場合はそのURLにパラメータとして?loginguest=trueを付けてリダイレクトします.すると一瞬でlogin/index.phpからcourse/view.phpへリダイレクトが行われるのでログイン画面が表示されない,というもののようです.
次に公開するfs_moodle3.20.00では,fsconfig_option.phpという設定ファイルにゲストでオートログインを許したいコースを指定する設定を列挙することで,そのコースに対してのみゲストでのオートログインを可能とする機能を追加する予定です.