1 <?php 2 // This file is part of Moodle - http://moodle.org/ 3 // 4 // Moodle is free software: you can redistribute it and/or modify 5 // it under the terms of the GNU General Public License as published by 6 // the Free Software Foundation, either version 3 of the License, or 7 // (at your option) any later version. 8 // 9 // Moodle is distributed in the hope that it will be useful, 10 // but WITHOUT ANY WARRANTY; without even the implied warranty of 11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 // GNU General Public License for more details. 13 // 14 // You should have received a copy of the GNU General Public License 15 // along with Moodle. If not, see <http://www.gnu.org/licenses/>. 16 17 namespace communication_matrix\local\spec\features\synapse; 18 19 use communication_matrix\local\command; 20 use GuzzleHttp\Psr7\Response; 21 22 /** 23 * Synapse API feature for creating a user. 24 * 25 * https://matrix-org.github.io/synapse/latest/admin_api/user_admin_api.html#create-or-modify-account 26 * 27 * @package communication_matrix 28 * @copyright 2023 Andrew Lyons <andrew@nicols.co.uk> 29 * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later 30 * @codeCoverageIgnore 31 * This code does not warrant being tested. Testing offers no discernible benefit given its usage is tested. 32 */ 33 trait create_user_v2 { 34 /** 35 * Create a new user. 36 * 37 * @param string $userid The Matrix user id. 38 * @param string $displayname The visible name of the user 39 * @param array $threepids The third-party identifiers of the user. 40 * @param null|array $externalids 41 */ 42 public function create_user( 43 string $userid, 44 string $displayname, 45 array $threepids, 46 ?array $externalids = null, 47 ): Response { 48 $params = [ 49 ':userid' => $userid, 50 'displayname' => $displayname, 51 'threepids' => $threepids, 52 ]; 53 54 if ($externalids !== null) { 55 $params['externalids'] = $externalids; 56 } 57 58 return $this->execute(new command( 59 $this, 60 method: 'PUT', 61 endpoint: '_synapse/admin/v2/users/:userid', 62 params: $params, 63 )); 64 } 65 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body