diff options
| -rw-r--r-- | src/commands.rs | 12 | ||||
| -rw-r--r-- | src/config.rs | 1 | 
2 files changed, 13 insertions, 0 deletions
| diff --git a/src/commands.rs b/src/commands.rs index e498916..a3a3694 100644 --- a/src/commands.rs +++ b/src/commands.rs @@ -1,3 +1,4 @@ +use crate::config::Config;  use std::error::Error;  use teloxide::payloads::SendMessageSetters;  use teloxide::prelude::{AutoSend, Bot, Message, UpdateWithCx}; @@ -16,6 +17,17 @@ pub enum Command {  pub async fn handler(      cx: UpdateWithCx<AutoSend<Bot>, Message>,  ) -> Result<(), Box<dyn Error + Send + Sync>> { +    let username = Config::from_env().unwrap().username; + +    if let Some(author) = &cx.update.from().unwrap().username { +        if *author != username { +            cx.reply_to("You are not allowed to do this action!") +                .await?; + +            return Ok(()); +        } +    } +      let txt = cx.update.text();      if txt.is_none() {          return Ok(()); diff --git a/src/config.rs b/src/config.rs index 3199c62..668dda7 100644 --- a/src/config.rs +++ b/src/config.rs @@ -6,6 +6,7 @@ pub struct Config {      pub cf: String,      pub password: String,      pub driver_url: String, +    pub username: String,  }  impl Config { | 
