2021-11-07 21:23:18 +00:00
|
|
|
pub mod add_item_params;
|
2021-10-03 20:03:32 +00:00
|
|
|
pub mod add_location_params;
|
2021-10-31 17:00:07 +00:00
|
|
|
pub mod add_token_params;
|
2021-10-03 20:03:32 +00:00
|
|
|
pub mod find_params;
|
|
|
|
pub mod register_params;
|
2021-11-07 21:23:18 +00:00
|
|
|
pub mod selling_params;
|
2021-10-03 20:03:32 +00:00
|
|
|
|
|
|
|
use crate::models::player::{Player, UserID};
|
|
|
|
use crate::models::token::{Permissions, Token};
|
|
|
|
use crate::models::CommandLevel;
|
2021-10-24 19:21:30 +00:00
|
|
|
use serde::de::DeserializeOwned;
|
2021-10-24 19:20:15 +00:00
|
|
|
use serde::Serialize;
|
|
|
|
use std::fmt::Debug;
|
2021-10-03 20:03:32 +00:00
|
|
|
|
2021-12-01 04:13:56 +00:00
|
|
|
pub trait CommandRequest:
|
|
|
|
Serialize + DeserializeOwned + Debug + Clone + Send + 'static + Sync
|
|
|
|
{
|
2021-10-31 17:00:07 +00:00
|
|
|
fn token(&self) -> String;
|
2021-10-24 19:20:15 +00:00
|
|
|
fn user_id(&self) -> Option<UserID> {
|
|
|
|
None
|
2021-10-03 20:03:32 +00:00
|
|
|
}
|
|
|
|
|
2021-12-01 04:13:56 +00:00
|
|
|
fn set_token(&mut self, token: String);
|
|
|
|
fn set_user_id(&mut self, _: UserID) {}
|
|
|
|
|
2021-10-03 20:03:32 +00:00
|
|
|
fn check_permission(
|
|
|
|
&self,
|
|
|
|
player: &Player,
|
|
|
|
command_level: &CommandLevel,
|
|
|
|
token: &Token,
|
|
|
|
) -> bool {
|
|
|
|
if player.auth_level >= *command_level {
|
|
|
|
if *command_level == CommandLevel::ADMIN {
|
|
|
|
token.check_permission(Permissions::Admin)
|
|
|
|
} else {
|
|
|
|
true
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
false
|
|
|
|
}
|
|
|
|
}
|
2021-10-24 19:21:30 +00:00
|
|
|
}
|