mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-09-12 13:10:05 +00:00
parent
1b1cbfff42
commit
bd80073402
3 changed files with 33 additions and 3 deletions
17
main.go
17
main.go
|
@ -232,7 +232,7 @@ func updateTgbotSetting(tgBotToken string, tgBotChatid string, tgBotRuntime stri
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func updateSetting(port int, username string, password string, webBasePath string, listenIP string) {
|
func updateSetting(port int, username string, password string, webBasePath string, listenIP string, resetTwoFactor bool) {
|
||||||
err := database.InitDB(config.GetDBPath())
|
err := database.InitDB(config.GetDBPath())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Database initialization failed:", err)
|
fmt.Println("Database initialization failed:", err)
|
||||||
|
@ -269,6 +269,17 @@ func updateSetting(port int, username string, password string, webBasePath strin
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if resetTwoFactor {
|
||||||
|
err := settingService.SetTwoFactorEnable(false)
|
||||||
|
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("Failed to reset two-factor authentication:", err)
|
||||||
|
} else {
|
||||||
|
settingService.SetTwoFactorToken("")
|
||||||
|
fmt.Println("Two-factor authentication reset successfully")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if listenIP != "" {
|
if listenIP != "" {
|
||||||
err := settingService.SetListen(listenIP)
|
err := settingService.SetListen(listenIP)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -376,6 +387,7 @@ func main() {
|
||||||
var reset bool
|
var reset bool
|
||||||
var show bool
|
var show bool
|
||||||
var getCert bool
|
var getCert bool
|
||||||
|
var resetTwoFactor bool
|
||||||
settingCmd.BoolVar(&reset, "reset", false, "Reset all settings")
|
settingCmd.BoolVar(&reset, "reset", false, "Reset all settings")
|
||||||
settingCmd.BoolVar(&show, "show", false, "Display current settings")
|
settingCmd.BoolVar(&show, "show", false, "Display current settings")
|
||||||
settingCmd.IntVar(&port, "port", 0, "Set panel port number")
|
settingCmd.IntVar(&port, "port", 0, "Set panel port number")
|
||||||
|
@ -383,6 +395,7 @@ func main() {
|
||||||
settingCmd.StringVar(&password, "password", "", "Set login password")
|
settingCmd.StringVar(&password, "password", "", "Set login password")
|
||||||
settingCmd.StringVar(&webBasePath, "webBasePath", "", "Set base path for Panel")
|
settingCmd.StringVar(&webBasePath, "webBasePath", "", "Set base path for Panel")
|
||||||
settingCmd.StringVar(&listenIP, "listenIP", "", "set panel listenIP IP")
|
settingCmd.StringVar(&listenIP, "listenIP", "", "set panel listenIP IP")
|
||||||
|
settingCmd.BoolVar(&resetTwoFactor, "resetTwoFactor", false, "Reset two-factor authentication settings")
|
||||||
settingCmd.BoolVar(&getListen, "getListen", false, "Display current panel listenIP IP")
|
settingCmd.BoolVar(&getListen, "getListen", false, "Display current panel listenIP IP")
|
||||||
settingCmd.BoolVar(&getCert, "getCert", false, "Display current certificate settings")
|
settingCmd.BoolVar(&getCert, "getCert", false, "Display current certificate settings")
|
||||||
settingCmd.StringVar(&webCertFile, "webCert", "", "Set path to public key file for panel")
|
settingCmd.StringVar(&webCertFile, "webCert", "", "Set path to public key file for panel")
|
||||||
|
@ -427,7 +440,7 @@ func main() {
|
||||||
if reset {
|
if reset {
|
||||||
resetSetting()
|
resetSetting()
|
||||||
} else {
|
} else {
|
||||||
updateSetting(port, username, password, webBasePath, listenIP)
|
updateSetting(port, username, password, webBasePath, listenIP, resetTwoFactor)
|
||||||
}
|
}
|
||||||
if show {
|
if show {
|
||||||
showSetting(show)
|
showSetting(show)
|
||||||
|
|
|
@ -322,10 +322,18 @@ func (s *SettingService) GetTwoFactorEnable() (bool, error) {
|
||||||
return s.getBool("twoFactorEnable")
|
return s.getBool("twoFactorEnable")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *SettingService) SetTwoFactorEnable(value bool) error {
|
||||||
|
return s.setBool("twoFactorEnable", value)
|
||||||
|
}
|
||||||
|
|
||||||
func (s *SettingService) GetTwoFactorToken() (string, error) {
|
func (s *SettingService) GetTwoFactorToken() (string, error) {
|
||||||
return s.getString("twoFactorToken")
|
return s.getString("twoFactorToken")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *SettingService) SetTwoFactorToken(value string) error {
|
||||||
|
return s.setString("twoFactorToken", value)
|
||||||
|
}
|
||||||
|
|
||||||
func (s *SettingService) GetPort() (int, error) {
|
func (s *SettingService) GetPort() (int, error) {
|
||||||
return s.getInt("webPort")
|
return s.getInt("webPort")
|
||||||
}
|
}
|
||||||
|
|
11
x-ui.sh
11
x-ui.sh
|
@ -179,11 +179,20 @@ reset_user() {
|
||||||
fi
|
fi
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
read -rp "Please set the login username [default is a random username]: " config_account
|
read -rp "Please set the login username [default is a random username]: " config_account
|
||||||
[[ -z $config_account ]] && config_account=$(date +%s%N | md5sum | cut -c 1-8)
|
[[ -z $config_account ]] && config_account=$(date +%s%N | md5sum | cut -c 1-8)
|
||||||
read -rp "Please set the login password [default is a random password]: " config_password
|
read -rp "Please set the login password [default is a random password]: " config_password
|
||||||
[[ -z $config_password ]] && config_password=$(date +%s%N | md5sum | cut -c 1-8)
|
[[ -z $config_password ]] && config_password=$(date +%s%N | md5sum | cut -c 1-8)
|
||||||
/usr/local/x-ui/x-ui setting -username ${config_account} -password ${config_password} >/dev/null 2>&1
|
|
||||||
|
read -rp "Are you sure you want to reset the two factor? (y/n): " twoFactorConfirm
|
||||||
|
if [[ $twoFactorConfirm != "y" && $twoFactorConfirm != "Y" ]]; then
|
||||||
|
/usr/local/x-ui/x-ui setting -username ${config_account} -password ${config_password} -resetTwoFactor false >/dev/null 2>&1
|
||||||
|
else
|
||||||
|
/usr/local/x-ui/x-ui setting -username ${config_account} -password ${config_password} -resetTwoFactor true >/dev/null 2>&1
|
||||||
|
echo -e "Two factor authentication has been disabled."
|
||||||
|
fi
|
||||||
|
|
||||||
echo -e "Panel login username has been reset to: ${green} ${config_account} ${plain}"
|
echo -e "Panel login username has been reset to: ${green} ${config_account} ${plain}"
|
||||||
echo -e "Panel login password has been reset to: ${green} ${config_password} ${plain}"
|
echo -e "Panel login password has been reset to: ${green} ${config_password} ${plain}"
|
||||||
echo -e "${green} Please use the new login username and password to access the X-UI panel. Also remember them! ${plain}"
|
echo -e "${green} Please use the new login username and password to access the X-UI panel. Also remember them! ${plain}"
|
||||||
|
|
Loading…
Reference in a new issue