2016-10-13 6 views
0

現在私のシステムには、コース管理者、トレーナー、学生、法人ユーザの4つの役割があります。Moodle 3.0のユーザIDだけに基づいた役割を取得

ログインしたら、カスタム機能を表示するカスタムダッシュボードにリダイレクトする必要があります。

私は私たちがユーザーIDだけを持っていると考えて、それをどのように実装できるのだろうかと思っています。

私はもちろん

$coursecontext = get_context_instance(CONTEXT_COURSE, $course->id); 

if (!has_capability('moodle/course:viewhiddensections', $coursecontext)) { 

echo "is Student<br/>"; 
} 

に基づいてオプションを得たが、私の場合には、我々は唯一のユーザーIDを持っています。これをどのように実装できますか?私はMoodleがそのような小さなチェックを行うほど複雑ではないことを願っています。

答えて

0

第3引数をhas_capabilityに渡すことで、ユーザーの機能を確認できます。

if (!has_capability('moodle/course:viewhiddensections', $coursecontext, $userid)) { 
    ... 
} 

のMoodle 3.0を使用してコンテキストを取得する必要があることを注意:

$context = context_course::instance($courseid); 

あなたはもちろんのコンテキストではない場合、役割は、システムコンテキストで割り当てる必要があります。システムコンテキストを取得するには、context_system::instance()を使用します。

最後に、自分の役割をシステムではなく各コースに個別に割り当てている場合、どのユーザーがログインしているかを簡単に判断する方法はありません。彼らがコースに入るまでは同じである。ユーザーの役割を決定するには、各コースのコンテキストを個別にチェックする必要があります。

ユーザーがコースBにコースAとtrainerstudentすることはできませんあなたのシナリオであれば、あなたはコホートStudentにすべての生徒を追加し、お互いの役割のために同じことを行うことができます。ログインすると、どのコホートにいるのかを確認することができます。コホート同期登録プラグインを使用すると、登録を管理する必要がなくなることもあります。

関連する問題