Merge 899a152708
into 188bc07869
This commit is contained in:
commit
c82319cf2d
|
@ -234,10 +234,11 @@ class GroupsController extends AUserData {
|
||||||
* @PasswordConfirmationRequired
|
* @PasswordConfirmationRequired
|
||||||
*
|
*
|
||||||
* @param string $groupid
|
* @param string $groupid
|
||||||
|
* @param string $displayname
|
||||||
* @return DataResponse
|
* @return DataResponse
|
||||||
* @throws OCSException
|
* @throws OCSException
|
||||||
*/
|
*/
|
||||||
public function addGroup(string $groupid): DataResponse {
|
public function addGroup(string $groupid, string $displayname = ''): DataResponse {
|
||||||
// Validate name
|
// Validate name
|
||||||
if (empty($groupid)) {
|
if (empty($groupid)) {
|
||||||
$this->logger->error('Group name not supplied', ['app' => 'provisioning_api']);
|
$this->logger->error('Group name not supplied', ['app' => 'provisioning_api']);
|
||||||
|
@ -247,7 +248,13 @@ class GroupsController extends AUserData {
|
||||||
if ($this->groupManager->groupExists($groupid)) {
|
if ($this->groupManager->groupExists($groupid)) {
|
||||||
throw new OCSException('group exists', 102);
|
throw new OCSException('group exists', 102);
|
||||||
}
|
}
|
||||||
$this->groupManager->createGroup($groupid);
|
$group = $this->groupManager->createGroup($groupid);
|
||||||
|
if ($group === null) {
|
||||||
|
throw new OCSException('Not supported by backend', 103);
|
||||||
|
}
|
||||||
|
if ($displayname !== '') {
|
||||||
|
$group->setDisplayName($displayname);
|
||||||
|
}
|
||||||
return new DataResponse();
|
return new DataResponse();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -176,6 +176,38 @@ trait Provisioning {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Then /^group "([^"]*)" has$/
|
||||||
|
*
|
||||||
|
* @param string $user
|
||||||
|
* @param \Behat\Gherkin\Node\TableNode|null $settings
|
||||||
|
*/
|
||||||
|
public function groupHasSetting($group, $settings) {
|
||||||
|
$fullUrl = $this->baseUrl . "v{$this->apiVersion}.php/cloud/groups/details?search=$group";
|
||||||
|
$client = new Client();
|
||||||
|
$options = [];
|
||||||
|
if ($this->currentUser === 'admin') {
|
||||||
|
$options['auth'] = $this->adminUser;
|
||||||
|
} else {
|
||||||
|
$options['auth'] = [$this->currentUser, $this->regularUser];
|
||||||
|
}
|
||||||
|
$options['headers'] = [
|
||||||
|
'OCS-APIREQUEST' => 'true',
|
||||||
|
];
|
||||||
|
|
||||||
|
$response = $client->get($fullUrl, $options);
|
||||||
|
$groupDetails = simplexml_load_string($response->getBody())->data[0]->groups[0]->element;
|
||||||
|
foreach ($settings->getRows() as $setting) {
|
||||||
|
$value = json_decode(json_encode($groupDetails->{$setting[0]}), 1);
|
||||||
|
if (isset($value[0])) {
|
||||||
|
Assert::assertEquals($setting[1], $value[0], "", 0.0, 10, true);
|
||||||
|
} else {
|
||||||
|
Assert::assertEquals('', $setting[1]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @Then /^user "([^"]*)" has editable fields$/
|
* @Then /^user "([^"]*)" has editable fields$/
|
||||||
|
|
|
@ -231,6 +231,21 @@ Feature: provisioning
|
||||||
Then the OCS status code should be "100"
|
Then the OCS status code should be "100"
|
||||||
And the HTTP status code should be "200"
|
And the HTTP status code should be "200"
|
||||||
And group "new-group" exists
|
And group "new-group" exists
|
||||||
|
And group "new-group" has
|
||||||
|
| displayname | new-group |
|
||||||
|
|
||||||
|
Scenario: Create a group with custom display name
|
||||||
|
Given As an "admin"
|
||||||
|
And group "new-group" does not exist
|
||||||
|
When sending "POST" to "/cloud/groups" with
|
||||||
|
| groupid | new-group |
|
||||||
|
| password | 123456 |
|
||||||
|
| displayname | new-group-displayname |
|
||||||
|
Then the OCS status code should be "100"
|
||||||
|
And the HTTP status code should be "200"
|
||||||
|
And group "new-group" exists
|
||||||
|
And group "new-group" has
|
||||||
|
| displayname | new-group-displayname |
|
||||||
|
|
||||||
Scenario: Create a group with special characters
|
Scenario: Create a group with special characters
|
||||||
Given As an "admin"
|
Given As an "admin"
|
||||||
|
@ -241,6 +256,8 @@ Feature: provisioning
|
||||||
Then the OCS status code should be "100"
|
Then the OCS status code should be "100"
|
||||||
And the HTTP status code should be "200"
|
And the HTTP status code should be "200"
|
||||||
And group "España" exists
|
And group "España" exists
|
||||||
|
And group "España" has
|
||||||
|
| displayname | España |
|
||||||
|
|
||||||
Scenario: adding user to a group without sending the group
|
Scenario: adding user to a group without sending the group
|
||||||
Given As an "admin"
|
Given As an "admin"
|
||||||
|
|
Loading…
Reference in New Issue