mirror of
https://github.com/tgstation/tgstation-server.git
synced 2026-08-26 22:48:20 +01:00
86 lines
2.3 KiB
C#
86 lines
2.3 KiB
C#
using System;
|
|
using System.Runtime.InteropServices;
|
|
using System.Windows.Forms;
|
|
using TGServiceInterface;
|
|
|
|
namespace TGControlPanel
|
|
{
|
|
static class Program
|
|
{
|
|
[STAThread]
|
|
static void Main(string[] args)
|
|
{
|
|
Server.SetBadCertificateHandler(BadCertificateHandler);
|
|
try
|
|
{
|
|
if (Properties.Settings.Default.UpgradeRequired)
|
|
{
|
|
Properties.Settings.Default.Upgrade();
|
|
Properties.Settings.Default.UpgradeRequired = false;
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
Application.EnableVisualStyles();
|
|
Application.SetCompatibleTextRenderingDefault(false);
|
|
using(var L = new Login())
|
|
Application.Run(L);
|
|
}
|
|
catch (Exception e)
|
|
{
|
|
ServiceDisconnectException(e);
|
|
}
|
|
finally
|
|
{
|
|
Properties.Settings.Default.Save();
|
|
}
|
|
}
|
|
static bool SSLErrorPromptResult = false;
|
|
static bool BadCertificateHandler(string message)
|
|
{
|
|
if (!SSLErrorPromptResult)
|
|
{
|
|
var result = MessageBox.Show(message + " IT IS HIGHLY RECCOMENDED YOU DO NOT PROCEED! Continue?", "SSL Error", MessageBoxButtons.YesNo) == DialogResult.Yes;
|
|
SSLErrorPromptResult = result;
|
|
return result;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public static bool CheckAdminWithWarning()
|
|
{
|
|
if (!Server.AuthenticateAdmin())
|
|
{
|
|
MessageBox.Show("Only system administrators may use this command!");
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
public static void ServiceDisconnectException(Exception e)
|
|
{
|
|
MessageBox.Show("An unhandled exception occurred. This usually means we lost connection to the service. Error" + e.ToString());
|
|
}
|
|
|
|
public static string TextPrompt(string caption, string text)
|
|
{
|
|
Form prompt = new Form()
|
|
{
|
|
Width = 500,
|
|
Height = 150,
|
|
FormBorderStyle = FormBorderStyle.FixedDialog,
|
|
Text = caption,
|
|
StartPosition = FormStartPosition.CenterScreen
|
|
};
|
|
Label textLabel = new Label() { Left = 50, Top = 20, Text = text, AutoSize = true };
|
|
TextBox textBox = new TextBox() { Left = 50, Top = 50, Width = 400 };
|
|
Button confirmation = new Button() { Text = "Ok", Left = 350, Width = 100, Top = 70, DialogResult = DialogResult.OK };
|
|
confirmation.Click += (sender, e) => { prompt.Close(); };
|
|
prompt.Controls.Add(textBox);
|
|
prompt.Controls.Add(confirmation);
|
|
prompt.Controls.Add(textLabel);
|
|
prompt.AcceptButton = confirmation;
|
|
|
|
return prompt.ShowDialog() == DialogResult.OK ? textBox.Text : null;
|
|
}
|
|
}
|
|
}
|