39 lines
907 B
Rust
39 lines
907 B
Rust
pub mod add_location_params;
|
|
pub mod find_params;
|
|
pub mod register_params;
|
|
|
|
use crate::models::player::{Player, UserID};
|
|
use crate::models::token::{Permissions, Token};
|
|
use crate::models::CommandLevel;
|
|
use serde::{Deserialize, Serialize};
|
|
|
|
#[derive(Debug, Serialize, Deserialize, Clone)]
|
|
pub struct CommandRequest<T> {
|
|
pub user: Option<UserID>,
|
|
pub arguments: T,
|
|
pub token: u64,
|
|
}
|
|
|
|
impl<T> CommandRequest<T> {
|
|
fn has_user_id(&self) -> bool {
|
|
self.user.is_some()
|
|
}
|
|
|
|
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
|
|
}
|
|
}
|
|
}
|