2016-08-30 16 views
0

Moodle 3.0.5でREST webserviceを設定して、使用可能なすべてのコースに関する基本情報を含む応答を返すことになっている関数core_course_get_coursesを使用しました。Moodleの設定権限は無効です

これは私が使用してきたURLである:

https://example.com/webservice/rest/server.php?wstoken=713898e3fcaf9ead2218eb7565993230&wsfunction=core_course_get_courses&moodlewsrestformat=json 

をそして、これは私が得るものです:

{ 
    "exception": "required_capability_exception", 
    "errorcode": "nopermissions", 
    "message": "Sorry, but you do not currently have permissions to do that (View courses without participation)" 
} 

問題の許可が最初から設定されている、それは次のようになります。

moodle/course:view 

Role permissions setting page

効果はありません。私はすべてを許可しただけで、それがうまくいくかどうかを見るために何百ものパーミッションがありますが、それでも効果はありません。

私は同じサービスで他の関数を使用し、それは!:

core_enrol_get_enrolled_users 

に動作しますもう一つの重要な事実はcore_course_get_courses機能は、Moodleの新規インストールでローカル、開発マシン上で動作することです。プロダクション環境には50個の追加プラグインがインストールされています。 「開発者向けの余分なMoodleデバッグメッセージ」というデバッグが有効になっていますが、エラーは表示されません。

この原因は何ですか?

P.S. Dev。マシンはUbuntu 14.04

答えて

0

トークンを持つユーザーは機能にアクセスできますか?

サイト管理者を経由してトークンを持つユーザーの検索 - >プラグイン - > Webサービスを - >/admin/settings.php?section=webservicetokens

にトークン

または直接の管理、サイトの管理者を経由してユーザーの機能をチェック - >ユーザ - >パーミッション - >チェックシステム権限

または直接/admin/roles/check.php?contextid=1

に大丈夫に見える場合は、ユーザーがコースのため、他のユーザのリストに含まれている場合は、チェック -をそして、もちろん、管理者コースに210

ゴー、 - >ユーザー - >他のユーザー/enrol/otherusers.php?id=#

または直接は(#= courseid)

はそのリスト内のユーザーですか?

+0

ユーザーは現在「check system permissions」に従って設定されているすべての可能な権限を持っています。数百のコースがあります。各コースごとにユーザーのプロパティを設定することはできません。明日誰かが新しいコースの数を追加するとき何をしますか? –

+0

残りのウェブサービスのために管理者ユーザーを使用するためのヒントを得ました。私は彼のためのトークンを作成し、特定の役割にユーザーを追加しました。 「nopermissions」というエラーは返さなかったが、「500 internal server error」:-D –

+0

REST応答の結果をページングする方法はありますか?ドキュメントによると、ありません。 –

-1

この機能のために必要な機能をチェックして、 site Adminitration->users->permission->define

moodle/admin/roles/manage.php にアクセスしてください役割は、その後の役割

enter image description here

moodle/admin/roles/define.php?action=edit&roleid=9

の一覧を表示するには、許可する能力

関連する問題