Initial commit
This commit is contained in:
63
src/controller/access/determination/mod.rs
Normal file
63
src/controller/access/determination/mod.rs
Normal file
@@ -0,0 +1,63 @@
|
||||
#[cfg(test)]
|
||||
mod tests;
|
||||
|
||||
use super::super::ControllerType;
|
||||
|
||||
#[derive(Debug, PartialEq)]
|
||||
pub enum AccessControllerType {
|
||||
Help,
|
||||
|
||||
GetUsers,
|
||||
SetUsers(Option<Vec<String>>),
|
||||
|
||||
GetRoomLocalAgentManagers,
|
||||
SetRoomLocalAgentManagers(Option<Vec<String>>),
|
||||
}
|
||||
|
||||
pub fn determine_controller(text: &str) -> ControllerType {
|
||||
if text.starts_with("users") {
|
||||
return ControllerType::Access(AccessControllerType::GetUsers);
|
||||
}
|
||||
|
||||
if let Some(patterns_string) = text.strip_prefix("set-users") {
|
||||
let patterns_string = patterns_string.trim().to_owned();
|
||||
|
||||
let patterns_option = if patterns_string.is_empty() {
|
||||
None
|
||||
} else {
|
||||
let patterns_vector = patterns_string
|
||||
.split(" ")
|
||||
.map(|s| s.to_string())
|
||||
.collect::<Vec<String>>();
|
||||
|
||||
Some(patterns_vector)
|
||||
};
|
||||
|
||||
return ControllerType::Access(AccessControllerType::SetUsers(patterns_option));
|
||||
}
|
||||
|
||||
if text.starts_with("room-local-agent-managers") {
|
||||
return ControllerType::Access(AccessControllerType::GetRoomLocalAgentManagers);
|
||||
}
|
||||
|
||||
if let Some(patterns_string) = text.strip_prefix("set-room-local-agent-managers") {
|
||||
let patterns_string = patterns_string.trim().to_owned();
|
||||
|
||||
let patterns_option = if patterns_string.is_empty() {
|
||||
None
|
||||
} else {
|
||||
let patterns_vector = patterns_string
|
||||
.split(" ")
|
||||
.map(|s| s.to_string())
|
||||
.collect::<Vec<String>>();
|
||||
|
||||
Some(patterns_vector)
|
||||
};
|
||||
|
||||
return ControllerType::Access(AccessControllerType::SetRoomLocalAgentManagers(
|
||||
patterns_option,
|
||||
));
|
||||
}
|
||||
|
||||
ControllerType::Access(AccessControllerType::Help)
|
||||
}
|
||||
Reference in New Issue
Block a user