diff options
| author | Yigit Sever | 2022-04-16 18:06:37 +0300 |
|---|---|---|
| committer | Yigit Sever | 2022-04-16 18:06:37 +0300 |
| commit | 3224b9fdd9174e51eb3e9842ce5abccf735abdfd (patch) | |
| tree | d752246c4506ef586fba18d9026357de44a386ef /src/student.rs | |
| parent | 43ad693490d3c2770bdcad7f59be50d6f1aa79dc (diff) | |
| download | gradecoin-3224b9fdd9174e51eb3e9842ce5abccf735abdfd.tar.gz gradecoin-3224b9fdd9174e51eb3e9842ce5abccf735abdfd.tar.bz2 gradecoin-3224b9fdd9174e51eb3e9842ce5abccf735abdfd.zip | |
final touches for 2022 spring
Diffstat (limited to 'src/student.rs')
| -rw-r--r-- | src/student.rs | 70 |
1 files changed, 10 insertions, 60 deletions
diff --git a/src/student.rs b/src/student.rs index 711eeeb..2b9c5bd 100644 --- a/src/student.rs +++ b/src/student.rs | |||
| @@ -1,7 +1,6 @@ | |||
| 1 | use crate::Fingerprint; | 1 | use crate::{Fingerprint, Id}; |
| 2 | use lazy_static::lazy_static; | ||
| 3 | use serde::{Deserialize, Serialize}; | 2 | use serde::{Deserialize, Serialize}; |
| 4 | use std::{collections::HashSet, fmt}; | 3 | use std::fmt; |
| 5 | 4 | ||
| 6 | #[derive(Debug, Serialize, Deserialize, PartialEq)] | 5 | #[derive(Debug, Serialize, Deserialize, PartialEq)] |
| 7 | pub struct UserAtRest { | 6 | pub struct UserAtRest { |
| @@ -25,11 +24,9 @@ pub struct User { | |||
| 25 | pub is_bot: bool, | 24 | pub is_bot: bool, |
| 26 | } | 25 | } |
| 27 | 26 | ||
| 28 | /// The values are hard coded in [`static@OUR_STUDENTS`] so `MetuId::new`() can accept/reject values based on that | ||
| 29 | /// TODO update the statement above | ||
| 30 | #[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] | 27 | #[derive(Serialize, Deserialize, Debug, PartialEq, Clone)] |
| 31 | pub struct MetuId { | 28 | pub struct MetuId { |
| 32 | id: String, | 29 | id: Id, |
| 33 | passwd: String, | 30 | passwd: String, |
| 34 | } | 31 | } |
| 35 | 32 | ||
| @@ -40,62 +37,15 @@ impl fmt::Display for MetuId { | |||
| 40 | } | 37 | } |
| 41 | 38 | ||
| 42 | impl MetuId { | 39 | impl MetuId { |
| 43 | pub fn new(id: String, pwd: String) -> Option<Self> { | 40 | pub fn new(id: String, passwd: String) -> Self { |
| 44 | if OUR_STUDENTS.contains(&(&*id, &*pwd)) { | 41 | MetuId { id, passwd } |
| 45 | Some(MetuId { id, passwd: pwd }) | ||
| 46 | } else { | ||
| 47 | None | ||
| 48 | } | ||
| 49 | } | 42 | } |
| 50 | 43 | ||
| 51 | // TODO: replace the function above with this <15-04-22, yigit> // | 44 | pub fn get_id(&self) -> &Id { |
| 52 | pub fn _new(id: String, passwd: String) -> Self { | 45 | &self.id |
| 53 | MetuId { id, passwd } | ||
| 54 | } | 46 | } |
| 55 | } | ||
| 56 | 47 | ||
| 57 | // TODO: remove this, read from a yaml or something, then MetuId::new gets a self <11-04-22, yigit> // | 48 | pub fn get_passwd(&self) -> &String { |
| 58 | // Students who are authorized to have Gradecoin accounts | 49 | &self.passwd |
| 59 | lazy_static! { | 50 | } |
| 60 | static ref OUR_STUDENTS: HashSet<(&'static str, &'static str)> = { | ||
| 61 | [ | ||
| 62 | ("e254275", "DtNX1qk4YF4saRH"), | ||
| 63 | ("e223687", "cvFEs4XLjuGBD1v"), | ||
| 64 | ("e211024", "voQAcxiKJmEXYRT"), | ||
| 65 | ("e209888", "O75dli6AQtz2tUi"), | ||
| 66 | ("e223725", "xXuTD3Y4tyrv2Jz"), | ||
| 67 | ("e209362", "N7wGm5XU5zVWOWu"), | ||
| 68 | ("e209898", "aKBFfB8fZMq8pVn"), | ||
| 69 | ("e230995", "TgcHGlqeFhQGx42"), | ||
| 70 | ("e223743", "YVWVSWuIHplJk9C"), | ||
| 71 | ("e223747", "8LAeHrsjnwXh59Q"), | ||
| 72 | ("e223749", "HMFeJqVOzwCPHbc"), | ||
| 73 | ("e223751", "NjMsxmtmy2VOwMW"), | ||
| 74 | ("e188126", "QibuPdV2gXfsVJW"), | ||
| 75 | ("e209913", "kMxJvl2vHSWCy4A"), | ||
| 76 | ("e203608", "mfkkR0MWurk6Rp1"), | ||
| 77 | ("e233013", "GCqHxdOaDj2pWXx"), | ||
| 78 | ("e216982", "2Z0xmgCStnj5qg5"), | ||
| 79 | ("e217185", "BcaZNlzlhPph7A3"), | ||
| 80 | ("e223780", "2KvVxKUQaA9H4sn"), | ||
| 81 | ("e194931", "hsC0Wb8PQ5vzwdQ"), | ||
| 82 | ("e223783", "ETUJA3kt1QYvJai"), | ||
| 83 | ("e254550", "rPRjX0A4NefvKWi"), | ||
| 84 | ("e217203", "lN3IWhGyCrGfkk5"), | ||
| 85 | ("e217477", "O9xlMaa7LanC82w"), | ||
| 86 | ("e223786", "UxI6czykJfp9T9N"), | ||
| 87 | ("e231060", "VJgziofQQPCoisH"), | ||
| 88 | ("e223795", "pmcTCKox99NFsqp"), | ||
| 89 | ("e223715", "1H5QuOYI1b2r9ET"), | ||
| 90 | ("e181932", "THANKYOUHAVEFUN"), | ||
| 91 | ("bank", "P7oxDm30g1jeIId"), | ||
| 92 | ("friend_1", "not_used"), | ||
| 93 | ("friend_2", "not_used"), | ||
| 94 | ("friend_3", "not_used"), | ||
| 95 | ("friend_4", "not_used"), | ||
| 96 | ] | ||
| 97 | .iter() | ||
| 98 | .copied() | ||
| 99 | .collect() | ||
| 100 | }; | ||
| 101 | } | 51 | } |
