prevent deleting others' messages
This commit is contained in:
parent
5bf004a609
commit
246edcd5f0
@ -44,11 +44,23 @@ class Plugin():
|
|||||||
def delete(self, number) -> None:
|
def delete(self, number) -> None:
|
||||||
with self.api.controller.session() as session:
|
with self.api.controller.session() as session:
|
||||||
try:
|
try:
|
||||||
message = session.get(Message, number)
|
statement = sqlalchemy.delete(Message).where(
|
||||||
session.delete(message)
|
sqlalchemy.and_(
|
||||||
|
Message.recipient == self.api.config.calling_station,
|
||||||
|
Message.id == number,
|
||||||
|
)).returning(Message)
|
||||||
|
result = session.execute(
|
||||||
|
statement,
|
||||||
|
execution_options={"prebuffer_rows": True})
|
||||||
session.commit()
|
session.commit()
|
||||||
self.api.write_output(f"Deleted message #{number}")
|
results = result.all()
|
||||||
logging.info(f"deleted message {number}")
|
count = len(results)
|
||||||
|
if count > 0:
|
||||||
|
self.api.write_output(f"Deleted message #{number}")
|
||||||
|
logging.info(f"deleted message {number}")
|
||||||
|
else:
|
||||||
|
self.api.write_output("A message with that ID addressed "
|
||||||
|
"to you was not found.")
|
||||||
except sqlalchemy.exc.NoResultFound:
|
except sqlalchemy.exc.NoResultFound:
|
||||||
self.api.write_output(f"Message not found.")
|
self.api.write_output(f"Message not found.")
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user