Prevent replacing disk checkbox FAILED value

* Addresses issue #40
This commit is contained in:
2Shirt 2019-01-15 22:43:23 -07:00
parent a8ed58887d
commit 9579d0fced
Signed by: 2Shirt
GPG key ID: 152FAC923B0E132C

View file

@ -344,6 +344,38 @@ class osTicket():
return type_str return type_str
def get_flag(self, ticket_id, flag_name):
"""Get flag in osTicket."""
flag_value = None
self.connect(silent=True)
# Bail if disabled
if self.disabled:
return
# Build SQL cmd
sql_cmd = "SELECT `{column}` FROM `{Name}`.`{Ticket}`".format(
column=flag_name,
**OSTICKET['Database'],
**OSTICKET['Tables'])
sql_cmd += "WHERE `{Ticket}`.`ticket_id` = {ticket_id}".format(
ticket_id=ticket_id,
**OSTICKET['Tables'])
sql_cmd += ";"
# Run SQL cmd and get value
try:
self.db_cursor.execute(sql_cmd)
for s in self.db_cursor:
flag_value = s[0]
except mariadb.errors.Error:
# Set self.errors to enable warning line on results screen
self.errors = True
# Done
self.disconnect()
return flag_value
def get_ticket_name(self, ticket_id): def get_ticket_name(self, ticket_id):
"""Lookup ticket and return name as str.""" """Lookup ticket and return name as str."""
name = None name = None
@ -451,6 +483,14 @@ class osTicket():
def set_disk_passed(self, ticket_id): def set_disk_passed(self, ticket_id):
"""Mark disk as passed in osTicket.""" """Mark disk as passed in osTicket."""
current_value = self.get_flag(ticket_id, OSTICKET['Disk Flag']['Name'])
# Bail early?
if current_value == OSTICKET['Disk Flag']['Fail']:
print_warning('Not replacing osTicket disk checkbox FAILED value')
return
# Current value != FAILED, set to passed
self.set_flag( self.set_flag(
ticket_id, ticket_id,
OSTICKET['Disk Flag']['Name'], OSTICKET['Disk Flag']['Name'],
@ -458,7 +498,7 @@ class osTicket():
def set_flag(self, ticket_id, flag_name, flag_value): def set_flag(self, ticket_id, flag_name, flag_value):
"""Set flag in osTicket.""" """Set flag in osTicket."""
self.connect() self.connect(silent=True)
# Bail if disabled # Bail if disabled
if self.disabled: if self.disabled: