calnedario iniciado
This commit is contained in:
@@ -0,0 +1,101 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
USERS_FILE="config/users"
|
||||
|
||||
# --- Funciones auxiliares ---
|
||||
|
||||
function ensure_users_file() {
|
||||
if [ ! -f "$USERS_FILE" ]; then
|
||||
echo "⚠️ No existe $USERS_FILE. Creándolo..."
|
||||
mkdir -p config
|
||||
touch "$USERS_FILE"
|
||||
fi
|
||||
}
|
||||
|
||||
function restart_radicale() {
|
||||
echo ""
|
||||
echo "🔄 Reiniciando contenedor Radicale..."
|
||||
docker compose restart radicale >/dev/null 2>&1 || true
|
||||
echo "✅ Radicale reiniciado correctamente."
|
||||
echo ""
|
||||
}
|
||||
|
||||
function list_users() {
|
||||
ensure_users_file
|
||||
echo "👥 Usuarios actuales:"
|
||||
if [ -s "$USERS_FILE" ]; then
|
||||
cut -d':' -f1 "$USERS_FILE"
|
||||
else
|
||||
echo "(ninguno)"
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
function add_user() {
|
||||
ensure_users_file
|
||||
read -rp "Ingrese el nombre de usuario nuevo: " user
|
||||
if grep -q "^$user:" "$USERS_FILE"; then
|
||||
echo "⚠️ El usuario '$user' ya existe."
|
||||
return
|
||||
fi
|
||||
htpasswd -B "$USERS_FILE" "$user"
|
||||
restart_radicale
|
||||
}
|
||||
|
||||
function edit_user() {
|
||||
ensure_users_file
|
||||
read -rp "Ingrese el usuario a modificar: " user
|
||||
if ! grep -q "^$user:" "$USERS_FILE"; then
|
||||
echo "⚠️ El usuario '$user' no existe."
|
||||
return
|
||||
fi
|
||||
echo "✏️ Cambiando contraseña para '$user'..."
|
||||
htpasswd -B "$USERS_FILE" "$user"
|
||||
restart_radicale
|
||||
}
|
||||
|
||||
function delete_user() {
|
||||
ensure_users_file
|
||||
read -rp "Ingrese el usuario a eliminar: " user
|
||||
if ! grep -q "^$user:" "$USERS_FILE"; then
|
||||
echo "⚠️ El usuario '$user' no existe."
|
||||
return
|
||||
fi
|
||||
read -rp "¿Estás seguro de eliminar '$user'? (s/n): " confirm
|
||||
if [[ "$confirm" =~ ^[sS]$ ]]; then
|
||||
sed -i "/^$user:/d" "$USERS_FILE"
|
||||
restart_radicale
|
||||
echo "❌ Usuario '$user' eliminado."
|
||||
else
|
||||
echo "🚫 Operación cancelada."
|
||||
fi
|
||||
echo ""
|
||||
}
|
||||
|
||||
# --- Menú interactivo ---
|
||||
while true; do
|
||||
echo "========================================"
|
||||
echo "🔐 GESTOR DE USUARIOS RADICALE"
|
||||
echo "========================================"
|
||||
echo "1️⃣ Listar usuarios"
|
||||
echo "2️⃣ Crear nuevo usuario"
|
||||
echo "3️⃣ Editar contraseña de usuario"
|
||||
echo "4️⃣ Eliminar usuario"
|
||||
echo "5️⃣ Salir"
|
||||
echo "----------------------------------------"
|
||||
read -rp "Selecciona una opción [1-5]: " opt
|
||||
echo ""
|
||||
|
||||
case "$opt" in
|
||||
1) list_users ;;
|
||||
2) add_user ;;
|
||||
3) edit_user ;;
|
||||
4) delete_user ;;
|
||||
5) echo "👋 Saliendo..."; exit 0 ;;
|
||||
*) echo "❗ Opción no válida." ;;
|
||||
esac
|
||||
echo ""
|
||||
read -rp "Presiona ENTER para continuar..." pause
|
||||
clear
|
||||
done
|
||||
Reference in New Issue
Block a user