| Línea 31... |
Línea 31... |
| 31 |
*
|
31 |
*
|
| 32 |
* @package tool_lp
|
32 |
* @package tool_lp
|
| 33 |
* @copyright 2015 Damyon Wiese
|
33 |
* @copyright 2015 Damyon Wiese
|
| 34 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
34 |
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
| 35 |
*/
|
35 |
*/
|
| 36 |
class externallib_test extends externallib_advanced_testcase {
|
36 |
final class externallib_test extends externallib_advanced_testcase {
|
| Línea 37... |
Línea 37... |
| 37 |
|
37 |
|
| 38 |
/** @var \stdClass $creator User with enough permissions to create insystem context. */
|
38 |
/** @var \stdClass $creator User with enough permissions to create insystem context. */
|
| Línea 39... |
Línea 39... |
| 39 |
protected $creator = null;
|
39 |
protected $creator = null;
|
| Línea 62... |
Línea 62... |
| 62 |
/**
|
62 |
/**
|
| 63 |
* Setup function- we will create a course and add an assign instance to it.
|
63 |
* Setup function- we will create a course and add an assign instance to it.
|
| 64 |
*/
|
64 |
*/
|
| 65 |
protected function setUp(): void {
|
65 |
protected function setUp(): void {
|
| 66 |
global $DB, $CFG;
|
66 |
global $DB, $CFG;
|
| - |
|
67 |
parent::setUp();
|
| Línea 67... |
Línea 68... |
| 67 |
|
68 |
|
| Línea 68... |
Línea 69... |
| 68 |
$this->resetAfterTest(true);
|
69 |
$this->resetAfterTest(true);
|
| 69 |
|
70 |
|
| Línea 139... |
Línea 140... |
| 139 |
$ux = $dg->create_user();
|
140 |
$ux = $dg->create_user();
|
| 140 |
$u1 = $dg->create_user(array('idnumber' => 'Cats', 'firstname' => 'Bob', 'lastname' => 'Dyyylan',
|
141 |
$u1 = $dg->create_user(array('idnumber' => 'Cats', 'firstname' => 'Bob', 'lastname' => 'Dyyylan',
|
| 141 |
'email' => 'bobbyyy@dyyylan.com', 'phone1' => '123456', 'phone2' => '78910', 'department' => 'Marketing',
|
142 |
'email' => 'bobbyyy@dyyylan.com', 'phone1' => '123456', 'phone2' => '78910', 'department' => 'Marketing',
|
| 142 |
'institution' => 'HQ'));
|
143 |
'institution' => 'HQ'));
|
| Línea 143... |
Línea 144... |
| 143 |
|
144 |
|
| 144 |
// First we search with no capability assigned.
|
145 |
// Assign capability required to perform the search.
|
| 145 |
$this->setUser($ux);
|
146 |
$this->setUser($ux);
|
| 146 |
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
|
147 |
$systemcontext = \context_system::instance();
|
| 147 |
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
|
- |
|
| 148 |
$this->assertCount(0, $result['users']);
|
- |
|
| Línea 149... |
Línea 148... |
| 149 |
$this->assertEquals(0, $result['count']);
|
148 |
$customrole = $this->assignUserCapability('moodle/competency:templatemanage', $systemcontext->id);
|
| 150 |
|
149 |
|
| 151 |
// Now we assign a different capability.
|
- |
|
| 152 |
$usercontext = \context_user::instance($u1->id);
|
150 |
// Now we assign a different capability.
|
| Línea 153... |
Línea 151... |
| 153 |
$systemcontext = \context_system::instance();
|
151 |
$usercontext = \context_user::instance($u1->id);
|
| 154 |
$customrole = $this->assignUserCapability('moodle/competency:planview', $usercontext->id);
|
152 |
$this->assignUserCapability('moodle/competency:templatemanage', $usercontext->id, $customrole);
|
| 155 |
|
153 |
|
| 156 |
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
|
154 |
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
|
| Línea 185... |
Línea 183... |
| 185 |
|
183 |
|
| 186 |
// Now lets try a different user with only the role at user level.
|
184 |
// Now lets try a different user with only the role at user level.
|
| 187 |
$ux3 = $dg->create_user();
|
185 |
$ux3 = $dg->create_user();
|
| 188 |
role_assign($this->creatorrole, $ux3->id, $usercontext->id);
|
186 |
role_assign($this->creatorrole, $ux3->id, $usercontext->id);
|
| - |
|
187 |
$this->setUser($ux3);
|
| - |
|
188 |
$systemcontext = \context_system::instance();
|
| 189 |
$this->setUser($ux3);
|
189 |
$customrole = $this->assignUserCapability('moodle/competency:templatemanage', $systemcontext->id, $customrole);
|
| 190 |
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
|
190 |
$result = external::search_users('yyylan', 'moodle/competency:planmanage');
|
| 191 |
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
|
191 |
$result = external_api::clean_returnvalue(external::search_users_returns(), $result);
|
| 192 |
$this->assertCount(1, $result['users']);
|
192 |
$this->assertCount(1, $result['users']);
|
| Línea 260... |
Línea 260... |
| 260 |
$this->assertFalse(has_capability('moodle/site:config', $slave2context));
|
260 |
$this->assertFalse(has_capability('moodle/site:config', $slave2context));
|
| 261 |
$this->assertFalse(has_capability('moodle/site:config', $slave3context));
|
261 |
$this->assertFalse(has_capability('moodle/site:config', $slave3context));
|
| Línea 262... |
Línea 262... |
| 262 |
|
262 |
|
| 263 |
// Now do the test.
|
263 |
// Now do the test.
|
| - |
|
264 |
$this->setUser($master);
|
| 264 |
$this->setUser($master);
|
265 |
$dummyrole = $this->assignUserCapability('moodle/competency:templatemanage', $syscontext->id);
|
| 265 |
$result = external::search_users('MOODLER', 'moodle/site:config');
|
266 |
$result = external::search_users('MOODLER', 'moodle/site:config');
|
| 266 |
$this->assertCount(2, $result['users']);
|
267 |
$this->assertCount(2, $result['users']);
|
| 267 |
$this->assertEquals(2, $result['count']);
|
268 |
$this->assertEquals(2, $result['count']);
|
| 268 |
$this->assertArrayHasKey($slave1->id, $result['users']);
|
269 |
$this->assertArrayHasKey($slave1->id, $result['users']);
|
| Línea 269... |
Línea 270... |
| 269 |
$this->assertArrayHasKey($slave3->id, $result['users']);
|
270 |
$this->assertArrayHasKey($slave3->id, $result['users']);
|
| - |
|
271 |
|
| 270 |
|
272 |
$this->setUser($manager);
|
| 271 |
$this->setUser($manager);
|
273 |
$this->assignUserCapability('moodle/competency:templatemanage', $syscontext->id, $dummyrole);
|
| 272 |
$result = external::search_users('MOODLER', 'moodle/site:config');
|
274 |
$result = external::search_users('MOODLER', 'moodle/site:config');
|
| 273 |
$this->assertCount(1, $result['users']);
|
275 |
$this->assertCount(1, $result['users']);
|
| 274 |
$this->assertEquals(1, $result['count']);
|
276 |
$this->assertEquals(1, $result['count']);
|
| Línea 375... |
Línea 377... |
| 375 |
$this->assertArrayHasKey('department', $result['users'][0]);
|
377 |
$this->assertArrayHasKey('department', $result['users'][0]);
|
| 376 |
$this->assertArrayHasKey('institution', $result['users'][0]);
|
378 |
$this->assertArrayHasKey('institution', $result['users'][0]);
|
| Línea 377... |
Línea 379... |
| 377 |
|
379 |
|
| 378 |
// Switch to a user that cannot view identity fields.
|
380 |
// Switch to a user that cannot view identity fields.
|
| - |
|
381 |
$this->setUser($ux);
|
| - |
|
382 |
$systemcontext = \context_system::instance();
|
| 379 |
$this->setUser($ux);
|
383 |
$this->assignUserCapability('moodle/competency:templatemanage', $systemcontext->id, $dummyrole);
|
| Línea 380... |
Línea 384... |
| 380 |
$CFG->showuseridentity = 'idnumber,email,phone1,phone2,department,institution';
|
384 |
$CFG->showuseridentity = 'idnumber,email,phone1,phone2,department,institution';
|
| 381 |
|
385 |
|
| 382 |
// Only names are included.
|
386 |
// Only names are included.
|