| 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.
 |