Merge pull request #1571 from CarlosNihelton/ad-post-vs-get

Turns AD validation methods into POST
This commit is contained in:
Carlos Nihelton 2023-02-20 17:34:54 -03:00 committed by GitHub
commit 236e56031e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 16 additions and 16 deletions

View File

@ -425,14 +425,14 @@ class API:
def GET() -> bool: ...
class check_domain_name:
def GET(domain_name: Payload[str]) \
def POST(domain_name: Payload[str]) \
-> List[AdDomainNameValidation]: ...
class check_admin_name:
def GET(admin_name: Payload[str]) -> AdAdminNameValidation: ...
def POST(admin_name: Payload[str]) -> AdAdminNameValidation: ...
class check_password:
def GET(password: Payload[str]) -> AdPasswordValidation: ...
def POST(password: Payload[str]) -> AdPasswordValidation: ...
class LinkAction(enum.Enum):

View File

@ -119,11 +119,11 @@ class ADController(SubiquityController):
self.model.conn_info = data
await self.configured()
async def check_admin_name_GET(self, admin_name: str) \
async def check_admin_name_POST(self, admin_name: str) \
-> AdAdminNameValidation:
return AdValidators.admin_user_name(admin_name)
async def check_domain_name_GET(self, domain_name: str) \
async def check_domain_name_POST(self, domain_name: str) \
-> List[AdDomainNameValidation]:
result = AdValidators.domain_name(domain_name)
if AdDomainNameValidation.OK in result:
@ -133,7 +133,7 @@ class ADController(SubiquityController):
return list(result)
async def check_password_GET(self, password: str) -> AdPasswordValidation:
async def check_password_POST(self, password: str) -> AdPasswordValidation:
return AdValidators.password(password)
async def has_support_GET(self) -> bool:

View File

@ -1672,27 +1672,27 @@ class TestActiveDirectory(TestAPI):
self.assertIsNone(result)
# Rejects empty password.
result = await instance.get(endpoint+'/check_password',
data='')
result = await instance.post(endpoint+'/check_password',
data='')
self.assertEqual('EMPTY', result)
# Rejects invalid domain controller names.
result = await instance.get(endpoint + '/check_domain_name',
data='..ubuntu.com')
result = await instance.post(endpoint + '/check_domain_name',
data='..ubuntu.com')
self.assertIn('MULTIPLE_DOTS', result)
# Leverages the stub ping strategy
result = await instance.get(endpoint + '/check_domain_name',
data='rockbuntu.com')
result = await instance.post(endpoint + '/check_domain_name',
data='rockbuntu.com')
self.assertIn('REALM_NOT_FOUND', result)
# Rejects invalid usernames.
result = await instance.get(endpoint + '/check_admin_name',
data='ubuntu;pro')
result = await instance.post(endpoint + '/check_admin_name',
data='ubuntu;pro')
self.assertEqual('INVALID_CHARS', result)
# Notice that lowercase is not required.
result = await instance.get(endpoint + '/check_admin_name',
data='$Ubuntu')
result = await instance.post(endpoint + '/check_admin_name',
data='$Ubuntu')
self.assertEqual('OK', result)