firewallfalcons 5 месяцев назад
Родитель
Сommit
f3576da8ef
1 измененных файлов с 64 добавлено и 1 удалено
  1. 64 1
      menu.sh

+ 64 - 1
menu.sh

@@ -91,9 +91,9 @@ initial_setup() {
     touch "$DB_FILE"
     mkdir -p "$SSL_CERT_DIR"
     
-    echo -e "${C_BLUE}🔹 Configuring user limiter service...${C_RESET}"
     echo -e "${C_BLUE}🔹 Configuring user limiter service...${C_RESET}"
     setup_limiter_service
+    install_login_notifier
     
     if [ ! -f "$INSTALL_FLAG_FILE" ]; then
         touch "$INSTALL_FLAG_FILE"
@@ -2468,6 +2468,69 @@ uninstall_script() {
     exit 0
 }
 
+install_login_notifier() {
+    # Script that runs on user login to show expiry
+    local login_script="/usr/local/bin/firewallfalcon-login.sh"
+    
+    cat > "$login_script" <<'EOF'
+#!/bin/bash
+DB_FILE="/etc/firewallfalcon/users.db"
+C_RED='\033[38;5;196m'
+C_GREEN='\033[38;5;46m'
+C_YELLOW='\033[38;5;226m'
+C_BLUE='\033[38;5;39m'
+C_RESET='\033[0m'
+C_BOLD='\033[1m'
+
+# Get current user
+USER_NAME=$(whoami)
+
+# Only run for users in our DB
+if [ -f "$DB_FILE" ] && grep -q "^$USER_NAME:" "$DB_FILE"; then
+    # Extract expiry date
+    EXPIRY_DATE=$(grep "^$USER_NAME:" "$DB_FILE" | cut -d: -f3)
+    
+    # Calculate days remaining
+    CURRENT_TS=$(date +%s)
+    EXPIRY_TS=$(date -d "$EXPIRY_DATE" +%s 2>/dev/null)
+    
+    if [ -n "$EXPIRY_TS" ]; then
+        DIFF_SEC=$((EXPIRY_TS - CURRENT_TS))
+        DAYS_LEFT=$((DIFF_SEC / 86400))
+        
+        echo ""
+        echo -e "${C_BLUE}══════════════════════════════════════════════${C_RESET}"
+        echo -e "   👋 Welcome, ${C_BOLD}${C_YELLOW}${USER_NAME}${C_RESET}!"
+        
+        if [ $DAYS_LEFT -lt 0 ]; then
+             echo -e "   ⚠️  ${C_RED}Your account has EXPIRED!${C_RESET}"
+             echo -e "   📅  Expired on: ${C_RED}${EXPIRY_DATE}${C_RESET}"
+        elif [ $DAYS_LEFT -le 3 ]; then
+             echo -e "   ⚠️  ${C_RED}Account expiring soon!${C_RESET}"
+             echo -e "   ⏳  Remaining: ${C_RED}${DAYS_LEFT} days${C_RESET}"
+             echo -e "   📅  Expires:   ${C_RED}${EXPIRY_DATE}${C_RESET}"
+        else
+             echo -e "   ✅  Account Status: ${C_GREEN}Active${C_RESET}"
+             echo -e "   ⏳  Remaining: ${C_GREEN}${DAYS_LEFT} days${C_RESET}"
+             echo -e "   📅  Expires:   ${C_BLUE}${EXPIRY_DATE}${C_RESET}"
+        fi
+        echo -e "${C_BLUE}══════════════════════════════════════════════${C_RESET}"
+        echo ""
+    fi
+fi
+EOF
+    chmod +x "$login_script"
+
+    # Add to profile.d so it runs on login
+    cat > /etc/profile.d/00-firewallfalcon-login.sh <<EOF
+#!/bin/bash
+if [ -x "$login_script" ]; then
+    "$login_script"
+fi
+EOF
+    chmod +x /etc/profile.d/00-firewallfalcon-login.sh
+}
+
 
 
 # --- NEW FEATURES ---