/** * @since 0.3 * * @param User $user * @param string[] $add * @param string[] $remove * @param array $extraParams * * @return bool */ public function change(User $user, $add = [], $remove = [], array $extraParams = []) { $result = $this->api->postRequest(new SimpleRequest('query', ['list' => 'users', 'ustoken' => 'userrights', 'ususers' => $user->getName()])); $params = ['user' => $user->getName(), 'token' => $result['query']['users'][0]['userrightstoken']]; if (!empty($add)) { $params['add'] = implode('|', $add); } if (!empty($remove)) { $params['remove'] = implode('|', $remove); } $this->api->postRequest(new SimpleRequest('userrights', array_merge($extraParams, $params))); return true; }
/** * @dataProvider provideValidConstruction */ public function testValidConstruction($name, $id, $editcount, $registration, $groups, $rights, $gender) { $user = new User($name, $id, $editcount, $registration, $groups, $rights, $gender); $this->assertEquals($name, $user->getName()); $this->assertEquals($id, $user->getId()); $this->assertEquals($editcount, $user->getEditcount()); $this->assertEquals($registration, $user->getRegistration()); $this->assertEquals($groups['groups'], $user->getGroups()); $this->assertEquals($groups['implicitgroups'], $user->getGroups('implicitgroups')); $this->assertEquals($rights, $user->getRights()); $this->assertEquals($gender, $user->getGender()); }
/** * @since 0.3 * * @param User $user * @param string[] $add * @param string[] $remove * @param UserRightsOptions|null $options * * @return bool */ public function change(User $user, $add = array(), $remove = array(), UserRightsOptions $options = null) { $result = $this->api->postRequest(new SimpleRequest('query', array('list' => 'users', 'ustoken' => 'userrights', 'ususers' => $user->getName()))); $params = array('user' => $user->getName(), 'token' => $result['query']['users'][0]['userrightstoken']); $reason = $options->getReason(); if (!empty($reason)) { $params['reason'] = $reason; } if (!empty($add)) { $params['add'] = implode('|', $add); } if (!empty($remove)) { $params['remove'] = implode('|', $remove); } $this->api->postRequest(new SimpleRequest('userrights', $params)); return true; }