sql >> Database teknologi >  >> RDS >> Mysql

Brug Moodle til at oprette brugere og tilmelde dem til kurser via SQL

Du bør bruge webtjenester i stedet for SQL - https://docs.moodle.org/dev/Creating_a_web_service_client

  1. Aktiver webtjenester /admin/search.php?query=enablewebservices
  2. Aktiver hvileprotokol /admin/settings.php?section=webserviceprotocols
  3. Tilføj en tjeneste /admin/settings.php?section=externalservices
    • tilføj kort navn =min tjeneste
    • aktiver =sand
  4. Klik på funktioner for tjenesten.
  5. Tilføj core_user_create_users og enrol_manual_enrol_users
    • Du skal se i API-dokumentationen for parametrene
    • /admin/webservice/documentation.php
  6. Opret en rolle - /admin/roles/manage.php
  7. Vælg et brugerniveau + systemkontekst
  8. Tilføj kapacitet - webservice/rest:use
  9. Opret en testbruger og føj til rollen oprettet ovenfor
  10. Opret et token til brugeren /admin/settings.php?section=webservicetokens

Når du har konfigureret det, skal du bruge noget som dette:

// First get the token.
$tokenurl = 'http://www.yourmoodlesite.com/login/token.php?username=testuser&password=xx&service=myservice';

$tokenresponse = file_get_contents($tokenurl);

$tokenobject = json_decode($tokenresponse);

if (!empty($tokenobject->error)) {
    echo $tokenobject->error;
    die();
}

// Then call the create user and enrol functions
// Remember to add the question mark after "server.php" because http_build_query() won't add it on its own and you'll end up with a 404 error
$baseurl = 'http://www.yourmoodlesite.com/webservice/rest/server.php?';

// Then add these parameters to the url.

$users = array();
// See the api documentation /admin/webservice/documentation.php
// for core_user_create_users for building the $users array
// e.g.
// $users = array(array(
// 'username' => 'lecapitaine',   //Username policy is defined in Moodle security config
// 'password' =>  'EngageNCC-1701', //Plain text password consisting of any characters
// 'firstname' =>  'William', //The first name(s) of the user
// 'lastname' => 'Shatner',  //The family name of the user
// 'email' => '[email protected]',
// 'lang' => 'en',
// ));

$params = array(
    'wstoken' => $tokenobject->token,
    'wsfunction' => 'core_user_create_users',
    'moodlewsrestformat' => 'json',
    'users' => $users,
);

$url = $baseurl . http_build_query($params);

$response = file_get_contents($url);

$newusers = json_decode($response);

// Newusers will be an array of objects containing the new user ids.

$enrolments = array();
// See the api documentation /admin/webservice/documentation.php
// for enrol_manual_enrol_users for building the $enrolments array

// Then enrol the users.
$params = array(
    'wstoken' => $tokenobject->token,
    'wsfunction' => 'enrol_manual_enrol_users',
    'moodlewsrestformat' => 'json',
    'enrolments' => $enrolments,
);

$url = $baseurl . http_build_query($params);

$response = file_get_contents($url);

$enrolled = json_decode($response);


  1. Sådan opretter du histogram i PostgreSQL

  2. Sådan sammenkædes flere rækker i én kolonne i MySQL

  3. Forenkle brugerkontostyring med MariaDB MaxScale 2.2 og MariaDB Server 10.3

  4. Hvordan installerer man Ruby on Rails med mysql og får det til at virke, en trin for trin guide?