consolidate setEnabled method

and fix a unit test

Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
pull/1234/head
Arthur Schiwon 8 years ago committed by Morris Jobke
parent 668fe7df51
commit 99e97f135d
No known key found for this signature in database
GPG Key ID: 9CE5ED29E7FCD38A
  1. 88
      settings/Controller/UsersController.php
  2. 28
      tests/Settings/Controller/UsersControllerTest.php

@ -519,66 +519,17 @@ class UsersController extends Controller {
* @NoAdminRequired * @NoAdminRequired
* *
* @param string $id * @param string $id
* @param int $enabled
* @return DataResponse * @return DataResponse
*/ */
public function disable($id) { public function setEnabled($id, $enabled) {
$userId = $this->userSession->getUser()->getUID(); $enabled = (bool)$enabled;
$user = $this->userManager->get($id); if($enabled) {
$errorMsgGeneral = (string) $this->l10n->t('Error while enabling user.');
if ($userId === $id) {
return new DataResponse(
[
'status' => 'error',
'data' => [
'message' => (string) $this->l10n->t('Error while disabling user.')
]
], Http::STATUS_FORBIDDEN
);
}
if ($user) {
if(!$this->isAdmin && !$this->groupManager->getSubAdmin()->isUserAccessible($this->userSession->getUser(), $user)) {
return new DataResponse(
[
'status' => 'error',
'data' => [
'message' => (string) $this->l10n->t('Authentication error')
]
],
Http::STATUS_FORBIDDEN
);
}
$user->setEnabled(false);
return new DataResponse(
[
'status' => 'success',
'data' => [
'username' => $id,
'enabled' => 0
]
]
);
} else { } else {
return new DataResponse( $errorMsgGeneral = (string) $this->l10n->t('Error while disabling user.');
[
'status' => 'error',
'data' => [
'message' => (string) $this->l10n->t('Error while disabling user.')
]
],
Http::STATUS_FORBIDDEN
);
} }
}
/**
* @NoAdminRequired
*
* @param string $id
* @return DataResponse
*/
public function enable($id) {
$userId = $this->userSession->getUser()->getUID(); $userId = $this->userSession->getUser()->getUID();
$user = $this->userManager->get($id); $user = $this->userManager->get($id);
@ -587,10 +538,9 @@ class UsersController extends Controller {
[ [
'status' => 'error', 'status' => 'error',
'data' => [ 'data' => [
'message' => (string) $this->l10n->t('Error while enabling user.') 'message' => $errorMsgGeneral
] ]
], ], Http::STATUS_FORBIDDEN
Http::STATUS_FORBIDDEN
); );
} }
@ -607,13 +557,13 @@ class UsersController extends Controller {
); );
} }
$user->setEnabled(true); $user->setEnabled($enabled);
return new DataResponse( return new DataResponse(
[ [
'status' => 'success', 'status' => 'success',
'data' => [ 'data' => [
'username' => $id, 'username' => $id,
'enabled' => 1 'enabled' => $enabled
] ]
] ]
); );
@ -622,27 +572,13 @@ class UsersController extends Controller {
[ [
'status' => 'error', 'status' => 'error',
'data' => [ 'data' => [
'message' => (string) $this->l10n->t('Error while enabling user.') 'message' => $errorMsgGeneral
] ]
], ],
Http::STATUS_FORBIDDEN Http::STATUS_FORBIDDEN
); );
} }
}
/**
* @NoAdminRequired
*
* @param string $id
* @param int $enabled
* @return DataResponse
*/
public function setEnabled($id, $enabled) {
if ((bool) $enabled) {
return $this->enable($id);
} else {
return $this->disable($id);
}
} }
/** /**

@ -2299,6 +2299,9 @@ class UsersControllerTest extends \Test\TestCase {
->expects($this->once()) ->expects($this->once())
->method('getBackendClassName') ->method('getBackendClassName')
->willReturn('bar'); ->willReturn('bar');
$user
->method('isEnabled')
->willReturn(true);
$this->userManager $this->userManager
->expects($this->once()) ->expects($this->once())
@ -2348,6 +2351,7 @@ class UsersControllerTest extends \Test\TestCase {
'email' => 'abc@example.org', 'email' => 'abc@example.org',
'isRestoreDisabled' => false, 'isRestoreDisabled' => false,
'isAvatarAvailable' => true, 'isAvatarAvailable' => true,
'isEnabled' => true,
], ],
Http::STATUS_CREATED Http::STATUS_CREATED
); );
@ -2460,7 +2464,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
Http::STATUS_FORBIDDEN Http::STATUS_FORBIDDEN
); );
$response = $this->getController(true)->disable('abc'); $response = $this->getController(true)->setEnabled('abc', false);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2502,7 +2506,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
Http::STATUS_FORBIDDEN Http::STATUS_FORBIDDEN
); );
$response = $this->getController(false)->disable('abc'); $response = $this->getController(false)->setEnabled('abc', false);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2535,7 +2539,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
Http::STATUS_FORBIDDEN Http::STATUS_FORBIDDEN
); );
$response = $this->getController(true)->disable('abc'); $response = $this->getController(true)->setEnabled('abc', false);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2568,7 +2572,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
Http::STATUS_FORBIDDEN Http::STATUS_FORBIDDEN
); );
$response = $this->getController(false)->disable('abc'); $response = $this->getController(false)->setEnabled('abc', false);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2606,7 +2610,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
] ]
); );
$response = $this->getController(true)->disable('abc'); $response = $this->getController(true)->setEnabled('abc', false);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2648,7 +2652,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
] ]
); );
$response = $this->getController(false)->disable('abc'); $response = $this->getController(false)->setEnabled('abc', false);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2671,7 +2675,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
Http::STATUS_FORBIDDEN Http::STATUS_FORBIDDEN
); );
$response = $this->getController(true)->enable('abc'); $response = $this->getController(true)->setEnabled('abc', true);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2713,7 +2717,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
Http::STATUS_FORBIDDEN Http::STATUS_FORBIDDEN
); );
$response = $this->getController(false)->enable('abc'); $response = $this->getController(false)->setEnabled('abc', true);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2746,7 +2750,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
Http::STATUS_FORBIDDEN Http::STATUS_FORBIDDEN
); );
$response = $this->getController(true)->enable('abc'); $response = $this->getController(true)->setEnabled('abc', true);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2779,7 +2783,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
Http::STATUS_FORBIDDEN Http::STATUS_FORBIDDEN
); );
$response = $this->getController(false)->enable('abc'); $response = $this->getController(false)->setEnabled('abc', true);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2816,7 +2820,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
] ]
); );
$response = $this->getController(true)->enable('abc'); $response = $this->getController(true)->setEnabled('abc', true);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
@ -2859,7 +2863,7 @@ class UsersControllerTest extends \Test\TestCase {
], ],
] ]
); );
$response = $this->getController(false)->enable('abc'); $response = $this->getController(false)->setEnabled('abc', true);
$this->assertEquals($expectedResponse, $response); $this->assertEquals($expectedResponse, $response);
} }
} }

Loading…
Cancel
Save