mirror of
https://salsa.debian.org/freeipa-team/freeipa.git
synced 2025-02-25 18:55:28 -06:00
IPA-EPN: enhance input validation
Enhance input validation: * make sure --from-nbdays and --to-nbdays are integer * make sure --from-nbdays < --to-nbdays Fixes: https://pagure.io/freeipa/issue/8444 Signed-off-by: François Cami <fcami@redhat.com> Reviewed-By: Rob Crittenden <rcritten@redhat.com> Reviewed-By: Florence Blanc-Renaud <frenaud@redhat.com>
This commit is contained in:
committed by
Rob Crittenden
parent
143dea18fe
commit
97006786df
@@ -246,9 +246,33 @@ class EPN(admintool.AdminTool):
|
||||
|
||||
def validate_options(self):
|
||||
super(EPN, self).validate_options(needs_root=True)
|
||||
if self.options.to_nbdays:
|
||||
if self.options.to_nbdays is not None:
|
||||
try:
|
||||
if int(self.options.to_nbdays) < 0:
|
||||
raise RuntimeError('Input is negative.')
|
||||
except Exception as e:
|
||||
self.option_parser.error(
|
||||
"--to-nbdays must be a positive integer. "
|
||||
"{error}".format(error=e)
|
||||
)
|
||||
self.options.dry_run = True
|
||||
if self.options.from_nbdays and not self.options.to_nbdays:
|
||||
if self.options.from_nbdays is not None:
|
||||
try:
|
||||
if int(self.options.from_nbdays) < 0:
|
||||
raise RuntimeError('Input is negative.')
|
||||
except Exception as e:
|
||||
self.option_parser.error(
|
||||
"--from-nbdays must be a positive integer. "
|
||||
"{error}".format(error=e)
|
||||
)
|
||||
if self.options.from_nbdays is not None and \
|
||||
self.options.to_nbdays is not None:
|
||||
if int(self.options.from_nbdays) >= int(self.options.to_nbdays):
|
||||
self.option_parser.error(
|
||||
"--from-nbdays must be smaller than --to-nbdays."
|
||||
)
|
||||
if self.options.from_nbdays is not None and \
|
||||
self.options.to_nbdays is None:
|
||||
self.option_parser.error(
|
||||
"You cannot specify --from-nbdays without --to-nbdays"
|
||||
)
|
||||
|
||||
@@ -450,7 +450,6 @@ class TestEPN(IntegrationTest):
|
||||
in stderr_text_client
|
||||
assert rc > 0
|
||||
|
||||
@pytest.mark.xfail(reason='freeipa ticket 8444', strict=True)
|
||||
def test_EPN_nbdays_input_2(self):
|
||||
"""alpha input"""
|
||||
|
||||
@@ -461,7 +460,6 @@ class TestEPN(IntegrationTest):
|
||||
assert "error: --to-nbdays must be an integer." in stderr
|
||||
assert rc > 0
|
||||
|
||||
@pytest.mark.xfail(reason='freeipa ticket 8444', strict=True)
|
||||
def test_EPN_nbdays_input_3(self):
|
||||
"""from_nbdays > to_nbdays"""
|
||||
|
||||
@@ -473,7 +471,6 @@ class TestEPN(IntegrationTest):
|
||||
stderr
|
||||
assert rc > 0
|
||||
|
||||
@pytest.mark.xfail(reason='freeipa ticket 8444', strict=True)
|
||||
def test_EPN_nbdays_input_4(self):
|
||||
"""decimal input"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user