/** * Also deactivate the api_user when disabling the API application * * @param string $reason reason for disabling * @param boolean $recursive set to true to disable recursively * * @return boolean * * @see ElggEntity::disable() */ function disable($reason = "", $recursive = true) { if (isset($this->api_user_id)) { ws_pack_deactivate_api_user_from_id($this->api_user_id); unset($this->api_user); } return parent::disable($reason, $recursive); }
public function testElggEntityRecursiveDisableAndEnable() { global $CONFIG; $obj1 = new \ElggObject(); $obj1->container_guid = $this->entity->getGUID(); $obj1->save(); $obj2 = new \ElggObject(); $obj2->container_guid = $this->entity->getGUID(); $obj2->save(); // disable $obj2 before disabling the container $this->assertTrue($obj2->disable()); // disable entities container by $this->entity $this->assertTrue($this->entity->disable()); $entity = get_data_row("SELECT * FROM {$CONFIG->dbprefix}entities WHERE guid = '{$obj1->guid}'"); $this->assertIdentical($entity->enabled, 'no'); // enable entities that were disabled with the container (but not $obj2) $this->assertTrue($this->entity->enable()); $entity = get_data_row("SELECT * FROM {$CONFIG->dbprefix}entities WHERE guid = '{$obj1->guid}'"); $this->assertIdentical($entity->enabled, 'yes'); $entity = get_data_row("SELECT * FROM {$CONFIG->dbprefix}entities WHERE guid = '{$obj2->guid}'"); $this->assertIdentical($entity->enabled, 'no'); // cleanup $this->assertTrue($obj2->enable()); $this->assertTrue($obj2->delete()); $this->assertTrue($obj1->delete()); }
public function testElggEntityRecursiveDisableWhenLoggedOut() { $e1 = new \ElggObject(); $e1->access_id = ACCESS_PUBLIC; $e1->owner_guid = 0; $e1->container_guid = 0; $e1->save(); $guid1 = $e1->getGUID(); $e2 = new \ElggObject(); $e2->container_guid = $guid1; $e2->access_id = ACCESS_PUBLIC; $e2->owner_guid = 0; $e2->save(); $guid2 = $e2->getGUID(); // fake being logged out $old_user = $this->replaceSession(); $ia = elgg_set_ignore_access(true); $this->assertTrue($e1->disable(null, true)); // "log in" original user $this->replaceSession($old_user); elgg_set_ignore_access($ia); $this->assertFalse(get_entity($guid1)); $this->assertFalse(get_entity($guid2)); $db_prefix = elgg_get_config('dbprefix'); $q = "SELECT * FROM {$db_prefix}entities WHERE guid = {$guid1}"; $r = get_data_row($q); $this->assertEqual('no', $r->enabled); $q = "SELECT * FROM {$db_prefix}entities WHERE guid = {$guid2}"; $r = get_data_row($q); $this->assertEqual('no', $r->enabled); access_show_hidden_entities(true); $e1->delete(); $e2->delete(); access_show_hidden_entities(false); }