privilegeService = $privilegeService; $this->userService = $userService; } public function getMethods() { return ['DELETE']; } public function getUrl() { return '/api/users/:userNameOrEmail'; } public function work($args) { $userNameOrEmail = $args['userNameOrEmail']; $this->privilegeService->assertPrivilege( $this->privilegeService->isLoggedIn($userNameOrEmail) ? Privilege::DELETE_OWN_ACCOUNT : Privilege::DELETE_ALL_ACCOUNTS); $user = $this->userService->getByNameOrEmail($userNameOrEmail); return $this->userService->deleteUser($user); } }