Revamed auth system
This commit is contained in:
@@ -11,7 +11,7 @@ use crate::{
|
||||
auth::{AuthError, Permissions},
|
||||
database::model::Member as DbMember,
|
||||
model::{
|
||||
member::{Groups, Name, SwimGroups},
|
||||
member::{Groups, Name, Roles},
|
||||
Member,
|
||||
},
|
||||
util::convert_vec,
|
||||
@@ -119,7 +119,7 @@ struct Row {
|
||||
#[serde(rename = "E-mail")]
|
||||
email: String,
|
||||
#[serde(rename = "Verenigingssporten")]
|
||||
swim_groups: String,
|
||||
groups: String,
|
||||
#[serde(rename = "Diploma dropdown 1")]
|
||||
diploma: Option<String>,
|
||||
}
|
||||
@@ -164,22 +164,22 @@ impl Row {
|
||||
members
|
||||
}
|
||||
|
||||
fn swim_groups_parsed(&self) -> SwimGroups {
|
||||
let mut swim_groups: Vec<String> = Vec::new();
|
||||
fn groups_parsed(&self) -> Groups {
|
||||
let mut groups: Vec<String> = Vec::new();
|
||||
|
||||
let group_parts: Vec<&str> = self.swim_groups.split(", ").collect();
|
||||
let group_parts: Vec<&str> = self.groups.split(", ").collect();
|
||||
|
||||
for group in group_parts {
|
||||
let hour_parts: Vec<&str> = group.split(" - ").collect();
|
||||
|
||||
if let Some(group) = hour_parts.get(1) {
|
||||
swim_groups.push(group.to_uppercase())
|
||||
groups.push(group.to_uppercase())
|
||||
}
|
||||
}
|
||||
|
||||
let swim_groups_string = swim_groups.join("|");
|
||||
let groups_string = groups.join("|");
|
||||
|
||||
bitflags::parser::from_str(&swim_groups_string).unwrap_or(SwimGroups::empty())
|
||||
bitflags::parser::from_str(&groups_string).unwrap_or(Groups::empty())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -201,8 +201,8 @@ impl Into<Member> for Row {
|
||||
name,
|
||||
registration_token: None,
|
||||
diploma: self.diploma.clone(),
|
||||
swim_groups: self.swim_groups_parsed(),
|
||||
groups: Groups::empty(),
|
||||
groups: self.groups_parsed(),
|
||||
roles: Roles::MEMBER,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -264,8 +264,8 @@ fn generate_diff(members_new: Vec<Member>, members_old: Vec<Member>) -> MembersD
|
||||
name: new_member.name.clone(),
|
||||
registration_token: old_member.registration_token,
|
||||
diploma: new_member.diploma.clone(),
|
||||
swim_groups: new_member.swim_groups.clone(),
|
||||
groups: old_member.groups,
|
||||
groups: new_member.groups,
|
||||
roles: old_member.roles,
|
||||
})
|
||||
} else {
|
||||
members_remove.push(old_member);
|
||||
|
Reference in New Issue
Block a user