Ajout de filtre + amélioration de l'interface
Ajout de la possibilité de filtrer les hôtes par leur nom dans le menu de sélection des serveurs de connexion. Ajout de clear dans les menus de serveur et admin afin de rendre l'interface plus lisible pour les utilisateurs.
This commit is contained in:
parent
c80c422e54
commit
54a9eeacd5
@ -4,7 +4,7 @@ FROM alpine:3.20.0 AS monosphere-builder
|
||||
|
||||
|
||||
#Setting default settings, please change them at run
|
||||
ARG MONOSPHERE_VERSION="3.3.9 Alpha"
|
||||
ARG MONOSPHERE_VERSION="3.4.9 Alpha"
|
||||
|
||||
|
||||
#Defining build settings
|
||||
|
||||
@ -25,6 +25,7 @@ function secure_file_editor() {
|
||||
;;
|
||||
|
||||
*)
|
||||
clear
|
||||
echo "Selection invalide."
|
||||
;;
|
||||
esac
|
||||
@ -54,6 +55,7 @@ function sessions_viewer() {
|
||||
if [[ ${choice} == "quit" ]] || [[ ${choice} == "${users_counter}" ]]; then
|
||||
main_menu
|
||||
elif [[ -z ${choice} ]] || [[ -z ${users_map[${choice}]} ]]; then
|
||||
clear
|
||||
echo "Sélection invalide."
|
||||
else
|
||||
local selected_option
|
||||
@ -77,6 +79,7 @@ function sessions_viewer() {
|
||||
if [[ ${choice} == "quit" ]] || [[ ${choice} == "${sessions_counter}" ]]; then
|
||||
sessions_viewer
|
||||
elif [[ -z ${choice} ]] || [[ -z ${sessions_map[${choice}]} ]]; then
|
||||
clear
|
||||
echo "Sélection invalide."
|
||||
else
|
||||
local selected_session
|
||||
@ -100,6 +103,7 @@ function servers_access_control() {
|
||||
|
||||
case "${choice}" in
|
||||
"1")
|
||||
clear
|
||||
Authorization_Files_List=$(find /opt/public/servers/. -type f ! -name 'authorized_servers.txt' | cut -d "/" -f 6)
|
||||
echo -e "Le ficher d'authentification qui sera crée ou modifié sera placé dans le répertoire \"/opt/public/servers/\" du bastion.\nle nom de ce dernier ne doit pas comporter de \"/\", être vide ou être égal à \"authorized_servers.txt\"."
|
||||
echo -e "Ci dessous la liste des fichiers d'authentification existants :\n${Authorization_Files_List}"
|
||||
@ -118,6 +122,7 @@ function servers_access_control() {
|
||||
;;
|
||||
|
||||
"2")
|
||||
clear
|
||||
echo -e "Veuillez bien vérifier la syntaxe de votre configuration avant de valider cette dernière.\nPour plus d'informations, consultez la documentation de Monosphere."
|
||||
secure_file_editor "/opt/public/servers/authorized_servers.txt"
|
||||
;;
|
||||
@ -127,6 +132,7 @@ function servers_access_control() {
|
||||
;;
|
||||
|
||||
*)
|
||||
clear
|
||||
echo "Sélection invalide."
|
||||
;;
|
||||
esac
|
||||
@ -142,6 +148,7 @@ function admin_rights_control() {
|
||||
}
|
||||
|
||||
function main_menu() {
|
||||
clear
|
||||
ADMIN_RIGHTS_PATH="opt/public/rights"
|
||||
ADMIN_RIGHTS_FILE="/${ADMIN_RIGHTS_PATH}/admin_rights.txt"
|
||||
CONNECTED_ADMIN="$(whoami)"
|
||||
@ -184,6 +191,7 @@ function main_menu() {
|
||||
echo "Déconnexion du bastion."
|
||||
exit 0
|
||||
elif [[ -z ${choice} ]] || [[ -z ${adminrights_map[${choice}]} ]]; then
|
||||
clear
|
||||
echo "Sélection invalide."
|
||||
else
|
||||
local selected_option
|
||||
@ -191,10 +199,12 @@ function main_menu() {
|
||||
case "$(echo "${selected_option}" | cut -d ' ' -f 1)" in
|
||||
|
||||
"sessionswatch_admins")
|
||||
clear
|
||||
sessions_viewer
|
||||
;;
|
||||
|
||||
"serverscontrol_admins")
|
||||
clear
|
||||
servers_access_control
|
||||
;;
|
||||
#
|
||||
@ -203,6 +213,7 @@ function main_menu() {
|
||||
# ;;
|
||||
#
|
||||
"adminscontrol_admins")
|
||||
clear
|
||||
admin_rights_control
|
||||
;;
|
||||
|
||||
@ -212,6 +223,7 @@ function main_menu() {
|
||||
# ;;
|
||||
|
||||
*)
|
||||
clear
|
||||
echo -e "Un problème de configuration a été détecté sur \nles options du droit administrateur sélectionné.\nVeuillez contacter votre administrateur."
|
||||
;;
|
||||
esac
|
||||
|
||||
@ -20,7 +20,10 @@ if [[ -z ${USER_SERVERS} ]]; then
|
||||
fi
|
||||
|
||||
function main_menu() {
|
||||
echo "Veuillez sélectionner un serveur auquel vous connecter :"
|
||||
if [[ -z $choice ]] || [[ ${choice} == "null" ]]; then
|
||||
clear
|
||||
echo "Veuillez sélectionner un serveur auquel vous connecter :"
|
||||
fi
|
||||
|
||||
counter=1
|
||||
declare -A server_map
|
||||
@ -31,21 +34,39 @@ function main_menu() {
|
||||
server_user=$(echo "${line}" | cut -d ' ' -f 4)
|
||||
server_authmethod=$(echo "${line}" | cut -d ' ' -f 6)
|
||||
server_auth=$(echo "${line}" | cut -d ' ' -f 7)
|
||||
server_map[${counter}]="${ip} ${port} ${server_user} ${server_authmethod} ${server_auth}"
|
||||
echo "${counter}) ${custom_name} - ${server_user} ${ip}:${port}"
|
||||
server_map[${counter}]="${ip} ${port} ${server_user} ${server_authmethod} ${server_auth} ${custom_name}"
|
||||
if [[ -z $choice ]] || [[ ${choice} == "null" ]]; then
|
||||
echo "${counter}) ${custom_name} - ${server_user} ${ip}:${port}"
|
||||
fi
|
||||
counter=$((counter + 1))
|
||||
done <<<"${USER_SERVERS}"
|
||||
|
||||
echo "${counter}) Tapez 'quit' ou ${counter} pour vous déconnecter."
|
||||
if [[ -z $choice ]] || [[ ${choice} == "null" ]]; then
|
||||
echo "${counter}) Tapez 'quit' ou ${counter} pour vous déconnecter."
|
||||
echo "f) Tapez 'f'<nom de l'hote> pour filtrer les entrées."
|
||||
|
||||
read -r -p "Votre choix (1-${counter}): " choice
|
||||
read -r -p "Votre choix (1-${counter}) : " choice
|
||||
fi
|
||||
|
||||
if [[ ${choice} == "quit" ]] || [[ ${choice} == "${counter}" ]]; then
|
||||
echo "Déconnexion du bastion."
|
||||
exit 0
|
||||
elif [[ $(echo "${choice}" | cut -c1-1) == "f" ]]; then
|
||||
filter=$(echo "${choice}" | cut -c2-)
|
||||
find_counter=1
|
||||
echo "=====Résultats du filtre====="
|
||||
for host in "${server_map[@]}"; do
|
||||
if [[ $(echo "${host}" | awk '{print $(NF)}' | grep -m 1 -o "${filter}" | head -1) == "${filter}" ]]; then
|
||||
echo "${find_counter}) $(echo ${server_map[${find_counter}]} | awk '{print $(NF)}') - $(echo ${server_map[${find_counter}]} | cut -d ' ' -f 3) $(echo ${server_map[${find_counter}]} | cut -d ' ' -f 1):$(echo ${server_map[${find_counter}]} | cut -d ' ' -f 2)"
|
||||
fi
|
||||
find_counter=$((find_counter + 1))
|
||||
done
|
||||
read -r -p "Votre choix (1-${counter}) : " choice
|
||||
elif [[ -z ${choice} ]] || [[ -z ${server_map[${choice}]} ]]; then
|
||||
echo "Sélection invalide."
|
||||
choice="null"
|
||||
else
|
||||
clear
|
||||
local selected_server
|
||||
selected_server="${server_map[${choice}]}"
|
||||
echo "Connexion à $(echo "${selected_server}" | cut -d " " -f -3)..."
|
||||
@ -65,6 +86,7 @@ function main_menu() {
|
||||
else
|
||||
echo -e "Un problème de configuration a été détecté sur \nles options de connexion à l'hôte selectionné.\nVeuillez contacter votre administrateur."
|
||||
fi
|
||||
choice="null"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user