From 6d752cd05012dd75c7a177b2a979acd0067f9de6 Mon Sep 17 00:00:00 2001 From: George Kaklamanos Date: Mon, 20 Nov 2023 21:26:08 +0200 Subject: [PATCH] csv: Don't panic when needle is not found --- labadoor-csv/src/lib.rs | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/labadoor-csv/src/lib.rs b/labadoor-csv/src/lib.rs index 482045c..002a179 100644 --- a/labadoor-csv/src/lib.rs +++ b/labadoor-csv/src/lib.rs @@ -57,8 +57,12 @@ impl ACL for CSV { identifier: identifier, username: "".to_string(), }; - let res = self.find::(needle, "auth_methods.csv").unwrap(); - Some(res.username) + let res = self.find::(needle, "auth_methods.csv"); + return if let Some(r) = res { + Some(r.username) + } else { + None + }; } fn get_resource(&self, username: String, id: i8) -> Option { let needle = ResourceShortcuts { @@ -66,14 +70,16 @@ impl ACL for CSV { id: id, resource: "".to_string(), }; - let res = self - .find::(needle, "resource_shortcuts.csv") - .unwrap(); - Some(res.resource) + let res = self.find::(needle, "resource_shortcuts.csv"); + return if let Some(r) = res { + Some(r.resource) + } else { + None + }; } fn is_allowed(&self, username: String, resource: String) -> Option<()> { let needle = ACLEntry { username, resource }; - self.find::(needle, "acl_entries.csv").unwrap(); - Some(()) + let res = self.find::(needle, "acl_entries.csv"); + return if let Some(r) = res { Some(()) } else { None }; } }