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: ... def GET() -> bool: ...
class check_domain_name: class check_domain_name:
def GET(domain_name: Payload[str]) \ def POST(domain_name: Payload[str]) \
-> List[AdDomainNameValidation]: ... -> List[AdDomainNameValidation]: ...
class check_admin_name: class check_admin_name:
def GET(admin_name: Payload[str]) -> AdAdminNameValidation: ... def POST(admin_name: Payload[str]) -> AdAdminNameValidation: ...
class check_password: class check_password:
def GET(password: Payload[str]) -> AdPasswordValidation: ... def POST(password: Payload[str]) -> AdPasswordValidation: ...
class LinkAction(enum.Enum): class LinkAction(enum.Enum):

View File

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

View File

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