33from blessed import Terminal
44from pwinput import pwinput
55from source .conf import Configuration
6+ from source import conf
67from source .decorators import catch_goodbye
78from source .utils import goodbye
89
@@ -77,13 +78,59 @@ def interactive_config():
7778 goodbye ()
7879
7980
81+ @catch_goodbye ()
82+ def manage_users ():
83+ users = conf .load_users ()
84+ print (term .gray100 (" What would you like to do?" ))
85+ print (" 1. List users" )
86+ print (" 2. Add new user" )
87+ print (" 3. Remove user" )
88+ print (" 0. Exit" )
89+
90+ i = input ("\n -- " )
91+ try :
92+ i = int (i )
93+ except ValueError :
94+ manage_users ()
95+
96+ if i == 1 :
97+ print (f"There are { len (users .users )} registered users" )
98+ print ("index | username | password" )
99+ for index , user in enumerate (users .users ):
100+ print (f"[{ index } ] | { user .username } | { user .password } " )
101+ print ()
102+ manage_users ()
103+ elif i == 2 :
104+ print ("Enter username: " )
105+ username = input ()
106+ print ("Enter password: " )
107+ password = pwinput (mask = "*" , prompt = "" )
108+ users .add_user (username , password )
109+ conf .save_users (users )
110+ print ()
111+ manage_users ()
112+ elif i == 3 :
113+ print ("Enter username: " )
114+ username = input ()
115+ users .remove_user (username )
116+ conf .save_users (users )
117+ print ()
118+ manage_users ()
119+ elif i == 0 :
120+ goodbye ()
121+ quit (0 )
122+ else :
123+ manage_users ()
124+
125+
80126@catch_goodbye ()
81127def welcome ():
82128 print (term .home + term .clear + term .move_y (0 ))
83129 print (term .black_on_orange (' Welcome to f1rewall setup!' + " " * (term .width - 28 )))
84130 print (term .gray100 (" What would you like to do?" ))
85131 print (" 1. Generate settings file (manual setup)" )
86132 print (" 2. Run interactive setup " + term .green ("[recommended]" ))
133+ print (" 3. Manage users (f1rewall analytics access)" )
87134 print (" 0. Exit" )
88135
89136 i = input ("\n -- " )
@@ -96,6 +143,8 @@ def welcome():
96143 generate_config ()
97144 elif i == 2 :
98145 interactive_config ()
146+ elif i == 3 :
147+ manage_users ()
99148 elif i == 0 :
100149 goodbye ()
101150 quit (0 )
0 commit comments