Пример #1
0
        public static void SetAnswer(String Question, String Answer)
        {
            if (File.Exists(AnswerPath))
            {
                using (StreamWriter sr = new StreamWriter(File.Open(AnswerPath, FileMode.OpenOrCreate)))
                {
                    String KeyQ = Encryption.GetKeyEncryption();
                    String KeyA = Encryption.GetKeyEncryption();

                    sr.WriteLine($"{Encryption.EncryptRSA(Question, KeyQ)}_{KeyQ}");
                    sr.WriteLine($"{Encryption.EncryptRSA(Answer, KeyA)}_{KeyA}");
                }
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Файл Answer.conf не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл Answer.conf не найден");

                return;
            }
        }
Пример #2
0
        public static void SetEntrance(bool flag)
        {
            if (File.Exists(FirstEntancePath))
            {
                using (StreamWriter sr = new StreamWriter(File.Open(FirstEntancePath, FileMode.OpenOrCreate)))
                {
                    if (flag)
                    {
                        sr.WriteLine("true");
                    }
                    else
                    {
                        sr.WriteLine("false");
                    }
                }
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Файл Entrance.conf не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл Entrance.conf не найден");

                return;
            }
        }
Пример #3
0
        public static void GetEntrance()
        {
            if (File.Exists(FirstEntancePath))
            {
                using (StreamReader sr = new StreamReader(File.Open(FirstEntancePath, FileMode.Open)))
                {
                    String Temp = sr.ReadLine();

                    if (Temp == "true")
                    {
                        SystemArgs.FirstEntrance = true;
                    }
                    else
                    {
                        SystemArgs.FirstEntrance = false;
                    }
                }

                FirstEntrance();
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Файл Entrance.conf не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл Entrance.conf не найден");

                return;
            }
        }
Пример #4
0
        public static String[] GetAnswer(String Question, String Answer)
        {
            if (File.Exists(AnswerPath))
            {
                using (StreamReader sw = new StreamReader(File.Open(AnswerPath, FileMode.Open)))
                {
                    String[] SplitRSA           = sw.ReadLine().Split('_');
                    String   DecryptQuestionRSA = $"{Encryption.DecryptRSA(SplitRSA[0], SplitRSA[1])}";

                    SplitRSA = sw.ReadLine().Split('_');
                    String DecryptAnswerRSA = $"{Encryption.DecryptRSA(SplitRSA[0], SplitRSA[1])}";

                    return(new String[2] {
                        DecryptQuestionRSA, DecryptAnswerRSA
                    });
                }
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Файл Answer.conf не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл Answer.conf не найден");

                return(null);
            }
        }
Пример #5
0
        private void Reg_B_Click(object sender, EventArgs e)
        {
            Restore_F Dialog = new Restore_F();

            using (StreamReader sr = new StreamReader(File.Open(SystemPath.AnswerPath, FileMode.Open)))
            {
                String[] Temp = sr.ReadLine().Split('_');

                Dialog.Question_TB.Text = Encryption.DecryptRSA(Temp[0], Temp[1]);
            }

            if (Dialog.ShowDialog() == DialogResult.OK)
            {
                CreatePass_F DialogP = new CreatePass_F();

                if (DialogP.ShowDialog() == DialogResult.OK)
                {
                    SystemPath.SetPasswordApp(DialogP.Password_TB.Text.Trim());
                }
                else
                {
                    MessageOneButton_F DialogErr = new MessageOneButton_F();

                    DialogErr.Message_L.Text = "Восстановление пароля отменено";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                    }

                    SystemArgs.PrintLog($"Восстановление пароля отменено");
                }
            }
        }
Пример #6
0
        public static void CheckFiles()
        {
            try
            {
                SystemArgs.PrintLog($"Запуск приложения");

                if (!File.Exists(SystemPath.DataRegPath))
                {
                    throw new Exception();
                }

                if (!File.Exists(SystemPath.DataUSersPath))
                {
                    throw new Exception();
                }

                if (!File.Exists(SystemPath.DataLogPath))
                {
                    throw new Exception();
                }

                SystemPath.GetDataRegPath();
                SystemPath.GetDataLogPath();
                SystemPath.GetDataUsersPath();
                SystemPath.GetEntrance();
            }
            catch (UnauthorizedAccessException)
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Недостаточно прав для доступа к системным файлам";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Недостаточно прав доступа для корректного запуска программного обеспечения");

                Application.Exit();
            }
            catch (Exception)
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Файл конфигурации не найден. Выход из приложения";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл конфигурации не найден");

                Application.Exit();
            }
        }
Пример #7
0
        public static String DecryptRSA(String OutputPassword, String Password)
        {
            if (String.IsNullOrEmpty(OutputPassword))
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Входная строка имела пустое значение";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Получено пустое значение пароля");

                return(null);
            }
            ;

            byte[] VectorB         = Encoding.ASCII.GetBytes(Vector);
            byte[] SaltB           = Encoding.ASCII.GetBytes(Salt);
            byte[] OutputPasswordB = Convert.FromBase64String(OutputPassword);

            PasswordDeriveBytes DerivePassword = new PasswordDeriveBytes(Password, SaltB, "SHA1", PasswordIter);

            byte[] KeyBytes = DerivePassword.GetBytes(KeySize / 8);

            RijndaelManaged SymmKey = new RijndaelManaged();

            SymmKey.Mode = CipherMode.CBC;

            byte[] InitialTextBytes = new byte[OutputPasswordB.Length];

            Int32 ByteCount = 0;

            using (ICryptoTransform Decryptor = SymmKey.CreateDecryptor(KeyBytes, VectorB))
            {
                using (MemoryStream MemoryStream = new MemoryStream(OutputPasswordB))
                {
                    using (CryptoStream CryptoStream = new CryptoStream(MemoryStream, Decryptor, CryptoStreamMode.Read))
                    {
                        ByteCount = CryptoStream.Read(InitialTextBytes, 0, InitialTextBytes.Length);
                        MemoryStream.Close();
                        CryptoStream.Close();
                    }
                }
            }

            SymmKey.Clear();

            SystemArgs.PrintLog($"Дешифрование пароля завершено успешно");

            return(Encoding.UTF8.GetString(InitialTextBytes, 0, ByteCount));
        }
Пример #8
0
        public static String EncryptRSA(String InputPassword, String Password)
        {
            if (String.IsNullOrEmpty(InputPassword))
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Входная строка имела пустое значение";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Получено пустое значение пароля");

                return(null);
            }

            byte[] VectorB        = Encoding.ASCII.GetBytes(Vector);
            byte[] SaltB          = Encoding.ASCII.GetBytes(Salt);
            byte[] InputPasswordB = Encoding.UTF8.GetBytes(InputPassword);

            PasswordDeriveBytes DerivePassword = new PasswordDeriveBytes(Password, SaltB, "SHA1", PasswordIter);

            byte[] KeyBytes = DerivePassword.GetBytes(KeySize / 8);

            RijndaelManaged SymmKey = new RijndaelManaged();

            SymmKey.Mode = CipherMode.CBC;

            byte[] EncryptrTextBytes = null;

            using (ICryptoTransform Encryptor = SymmKey.CreateEncryptor(KeyBytes, VectorB))
            {
                using (MemoryStream MemoryStream = new MemoryStream())
                {
                    using (CryptoStream CryptoStream = new CryptoStream(MemoryStream, Encryptor, CryptoStreamMode.Write))
                    {
                        CryptoStream.Write(InputPasswordB, 0, InputPasswordB.Length);
                        CryptoStream.FlushFinalBlock();
                        EncryptrTextBytes = MemoryStream.ToArray();
                        MemoryStream.Close();
                        CryptoStream.Close();
                    }
                }
            }

            SymmKey.Clear();

            SystemArgs.PrintLog($"Шифрование пароля завершено успешно");

            return(Convert.ToBase64String(EncryptrTextBytes));
        }
Пример #9
0
        private void CreatePass_F_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult == DialogResult.OK)
            {
                if (String.IsNullOrEmpty(Password_TB.Text))
                {
                    MessageOneButton_F DialogErr = new MessageOneButton_F();

                    DialogErr.Message_L.Text = "Необходимо указать значение пароля";

                    if (DialogErr.ShowDialog() == DialogResult.OK)
                    {
                        SystemArgs.PrintLog($"Получено пустое значние пароля");
                        e.Cancel = true;
                        return;
                    }
                }

                if (Password_TB.Text.Trim().Length < 6)
                {
                    MessageOneButton_F DialogErr = new MessageOneButton_F();

                    DialogErr.Message_L.Text = "Длина пароля должна быть не менее 6 символов";

                    if (DialogErr.ShowDialog() == DialogResult.OK)
                    {
                        SystemArgs.PrintLog($"Длина пароля менеее 6 символов");
                        e.Cancel = true;
                        return;
                    }
                }

                MessegeTwoButtons_F Dialog = new MessegeTwoButtons_F();

                Dialog.Message_L.Text = "Вы действителньо хотите установить этот пароль?";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                    SystemArgs.PrintLog($"Пароль успешно сохранен");
                }
                else
                {
                    SystemArgs.PrintLog($"Процедура выхода из программы отменена");
                    e.Cancel = true;
                }
            }
        }
Пример #10
0
        public static void DeleteUser(User User)
        {
            SystemArgs.PrintLog($"Процедура удаления пользователя => Старт ");

            String[] PathFiles;

            if (Directory.Exists($@"{SystemPath.DataReg}") && Directory.Exists($@"{SystemPath.DataUSers}"))
            {
                PathFiles = Directory.GetDirectories($@"{SystemPath.DataReg}");

                for (Int32 i = 0; i < PathFiles.Length; i++)
                {
                    String DirectoryName = new FileInfo(PathFiles[i]).Name;

                    if (DirectoryName == User.Name)
                    {
                        Directory.Delete($@"{PathFiles[i]}", true);
                    }
                }

                PathFiles = Directory.GetDirectories($@"{SystemPath.DataUSers}");

                for (Int32 i = 0; i < PathFiles.Length; i++)
                {
                    String DirectoryName = new FileInfo(PathFiles[i]).Name;

                    if (DirectoryName == User.Name)
                    {
                        Directory.Delete($@"{PathFiles[i]}", true);
                    }
                }
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Директория хранения данных пользователей не найдена";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Директория хранения данных пользователей не найдена");
            }
        }
Пример #11
0
        private void Restore_F_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult == DialogResult.OK)
            {
                if (String.IsNullOrEmpty(Answer_TB.Text))
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = $@"Необходимо ввести секретное слово";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                    }

                    SystemArgs.PrintLog($"Неправильное секретное слово");


                    e.Cancel = true;
                    return;
                }

                String Temp = String.Empty;

                using (StreamReader sr = new StreamReader(File.Open(SystemPath.PassAppPath, FileMode.Open)))
                {
                    Temp = sr.ReadLine();
                }

                if (Hash.GetSHA256(Answer_TB.Text) != Temp)
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = $@"Неправильный секретное слово";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                    }

                    SystemArgs.PrintLog($"Неправильное секретное слово");

                    e.Cancel = true;
                }
            }
        }
Пример #12
0
        private void PositionForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult == DialogResult.OK)
            {
                String error = String.Empty;

                try
                {
                    if (Name_TB.Text.Trim() == String.Empty)
                    {
                        Name_TB.Focus();
                        error = "Необходимо ввести наименование позиции";
                        throw new Exception(error);
                    }

                    //if(Name_TB.Text.Trim().ToLower() == Name.ToLower())
                    //{
                    //    Name_TB.Focus();
                    //    error = "Исходное и конечное имена пользователя одинаковы";
                    //    throw new Exception(error);
                    //}

                    if (Pass_TB.Text.Trim() == String.Empty)
                    {
                        Pass_TB.Focus();
                        error = "Необходимо ввеситм пароль позиции";
                        throw new Exception(error);
                    }
                }
                catch
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = error;

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                    }

                    e.Cancel = true;
                }
            }
        }
Пример #13
0
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult == DialogResult.OK)
            {
                if (String.IsNullOrEmpty(Pass_TB.Text))
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = $@"Необходимо ввести пароль";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                    }

                    SystemArgs.PrintLog($"Получен неправильный пароль");

                    e.Cancel = true;
                    return;
                }

                using (StreamReader sr = new StreamReader(File.Open(SystemPath.PassAppPath, FileMode.Open)))
                {
                    String TempPass = sr.ReadLine();
                    String CurrPass = Hash.GetSHA256(Pass_TB.Text.Trim());

                    if (TempPass != CurrPass)
                    {
                        MessageOneButton_F Dialog = new MessageOneButton_F();

                        Dialog.Message_L.Text = $@"Неправильный пароль";

                        if (Dialog.ShowDialog() == DialogResult.OK)
                        {
                        }

                        SystemArgs.PrintLog($"Получен пароль");

                        e.Cancel = true;
                    }
                }
            }
        }
Пример #14
0
        private void button3_Click(object sender, EventArgs e)
        {
            String Search = Search_TB.Text.Trim();

            if (Search == String.Empty)
            {
                ResetSearch();
                return;
            }

            SystemArgs.Result.Clear();

            foreach (User Temp in SystemArgs.Users)
            {
                if (Temp.GetSearchString().IndexOf(Search) != -1)
                {
                    SystemArgs.Result.Add(Temp);
                }
            }

            if (SystemArgs.Result.Count != 0)
            {
                Show(SystemArgs.Result);

                SystemArgs.PrintLog($"Удачное завершение поиска поиска. Результатов {SystemArgs.Result.Count}");
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Поиск не дал результатов";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                    SystemArgs.PrintLog($"Поиск не дал результатов");
                    return;
                }
            }
        }
Пример #15
0
        public static void GetUsers()
        {
            SystemArgs.PrintLog($"Процедура получения списка пользователей => Старт");

            String[] PathFiles;

            if (Directory.Exists($@"{SystemPath.DataReg}"))
            {
                PathFiles = Directory.GetDirectories($@"{SystemPath.DataReg}");

                for (Int32 i = 0; i < PathFiles.Length; i++)
                {
                    String DirectoryName = new FileInfo(PathFiles[i]).Name;

                    if (File.Exists($@"{PathFiles[i]}\{DirectoryName}.hba"))
                    {
                        using (StreamReader sr = new StreamReader(File.Open($@"{PathFiles[i]}\{DirectoryName}.hba", FileMode.Open)))
                        {
                            String UserName = sr.ReadLine();
                            String Password = sr.ReadLine();
                            SystemArgs.Users.Add(new User(UserName, Password));
                        }
                    }
                }
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Директория хранения данных пользователей не найдена";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Директория хранения данных пользователей не найдена");
                Application.Exit();
            }
        }
Пример #16
0
        public static void ByHash(bool OrderBy)
        {
            List <User> TempList = SystemArgs.Users;  //Копируем элементы для сохранения

            try
            {
                if (OrderBy)
                {
                    var SortedData = from p in TempList
                                     orderby p.Password ascending
                                     select p;

                    SystemArgs.Users = SortedData.ToList();
                }
                else
                {
                    var SortedData = from p in TempList
                                     orderby p.Password descending
                                     select p;

                    SystemArgs.Users = SortedData.ToList();
                }
            }
            catch (Exception)
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Ошибка при сортировке. Данные будут восстановлены";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.Users = TempList; //Возращаем объекты в исходное состояние

                return;
            }
        }
Пример #17
0
        public static void GetDataUsersPath()
        {
            if (File.Exists(DataUSersPath))
            {
                using (StreamReader sr = new StreamReader(File.Open(DataUSersPath, FileMode.Open)))
                {
                    DataUSers = sr.ReadLine();
                }
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Файл DateUsers.conf не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл DataReg.conf не найден");

                return;
            }
        }
Пример #18
0
        public static void SetDataRegPath(String Path)
        {
            if (File.Exists(DataRegPath))
            {
                using (StreamWriter sw = new StreamWriter(File.Open(DataRegPath, FileMode.OpenOrCreate)))
                {
                    sw.WriteLine(Path);
                }
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Файл DateReg.conf не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл DataReg.conf не найден");

                return;
            }
        }
Пример #19
0
        public static String GetPasswordApp()
        {
            if (File.Exists(PassAppPath))
            {
                using (StreamReader sr = new StreamReader(File.Open(PassAppPath, FileMode.Open)))
                {
                    return(sr.ReadLine());
                }
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Файл Password.conf не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл Password.conf не найден");

                return(null);
            }
        }
Пример #20
0
        public static void SetPasswordApp(String Password)
        {
            if (File.Exists(PassAppPath))
            {
                using (StreamWriter sr = new StreamWriter(File.Open(PassAppPath, FileMode.OpenOrCreate)))
                {
                    sr.WriteLine($"{Hash.GetSHA256(Password)}");
                }
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Файл Password.conf не обнаружен";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Файл Password.conf не найден");

                return;
            }
        }
Пример #21
0
        private void Question_F_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (DialogResult == DialogResult.OK)
            {
                if (String.IsNullOrEmpty(RegUser_TB.Text))
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = "Необходимо указать путь к директории регистрации";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                        SystemArgs.PrintLog($"Получено пустое значние директории Reg");
                        e.Cancel = true;
                        return;
                    }
                }

                if (String.IsNullOrEmpty(DataUser_TB.Text))
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = "Необходимо указать путь к директории данных";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                        SystemArgs.PrintLog($"Получено пустое значние директории Files");
                        e.Cancel = true;
                        return;
                    }
                }

                if (!Directory.Exists(RegUser_TB.Text.Trim()))
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = "Указать путь к директории регистрации не существует";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                        SystemArgs.PrintLog($"Указать путь к директории регистрации не существует");
                        e.Cancel = true;
                        return;
                    }
                }

                if (!Directory.Exists(DataUser_TB.Text.Trim()))
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = "Указать путь к директории данных не существует";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                        SystemArgs.PrintLog($"Указать путь к директории данных не существует");
                        e.Cancel = true;
                        return;
                    }
                }

                if (String.IsNullOrEmpty(Question_TB.Text))
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = "Необходимо указать вопрос для восстановления";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                        SystemArgs.PrintLog($"Получено пустое значние вопроса");
                        e.Cancel = true;
                        return;
                    }
                }

                if (String.IsNullOrEmpty(Answer_TB.Text))
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = "Необходимо указать ответ на вопрос";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                        SystemArgs.PrintLog($"Получено пустое значение ответа на вопрос");
                        e.Cancel = true;
                        return;
                    }
                }

                MessegeTwoButtons_F DialogQE = new MessegeTwoButtons_F();

                DialogQE.Message_L.Text = "Сохранить указанные данные?";

                if (DialogQE.ShowDialog() == DialogResult.OK)
                {
                    SystemArgs.PrintLog($"Данные успешно сохранен");
                }
                else
                {
                    SystemArgs.PrintLog($"Процедура сохранения данных отменена");
                    e.Cancel = true;
                }
            }
        }
Пример #22
0
        public static void ChangeUsers(User NewUser, User OldUser)
        {
            SystemArgs.PrintLog($"Процедура модификации пользователя => Старт");

            String[] PathFiles;

            if (Directory.Exists($@"{SystemPath.DataReg}"))
            {
                PathFiles = Directory.GetDirectories($@"{SystemPath.DataReg}");

                Int32 Index = -1;

                for (Int32 i = 0; i < PathFiles.Length; i++)
                {
                    if ($@"{SystemPath.DataReg}\{OldUser.Name}" == PathFiles[i])
                    {
                        Index = i;
                        break;
                    }
                }

                if (Index != -1)
                {
                    Directory.Delete($@"{PathFiles[Index]}", true);
                    Directory.CreateDirectory($@"{SystemPath.DataReg}\{NewUser.Name}");

                    using (StreamWriter sw = new StreamWriter(File.Create($@"{SystemPath.DataReg}\{NewUser.Name}\{NewUser.Name}.hba")))
                    {
                        sw.WriteLine(NewUser.Name);
                        sw.WriteLine(NewUser.Password);
                    }

                    SystemArgs.PrintLog($"Директория пользователя {NewUser.Name} создана");
                }

                PathFiles = Directory.GetDirectories($@"{SystemPath.DataUSers}");

                bool Flag = false;

                for (Int32 i = 0; i < PathFiles.Length; i++)
                {
                    if ($@"{SystemPath.DataUSers}\{OldUser.Name}" == PathFiles[i])
                    {
                        Flag = true;
                        break;
                    }
                }

                if (Flag)
                {
                    Directory.CreateDirectory($@"Temp");

                    foreach (string newPath in Directory.GetFiles($@"{SystemPath.DataUSers}\{OldUser.Name}", "*.*", SearchOption.AllDirectories))
                    {
                        string[] fName = newPath.Split('\\');

                        File.Copy(newPath, $@"Temp\{fName[fName.Length - 1]}", true);
                    }

                    Directory.Delete($@"{SystemPath.DataUSers}\{OldUser.Name}", true);
                    Directory.CreateDirectory($@"{SystemPath.DataUSers}\{NewUser.Name}");

                    foreach (string newPath in Directory.GetFiles($@"Temp", "*.*", SearchOption.AllDirectories))
                    {
                        string[] fName = newPath.Split('\\');

                        File.Copy(newPath, $@"{SystemPath.DataUSers}\{NewUser.Name}\{fName[1]}", true);
                    }

                    Directory.Delete($@"Temp", true);
                }
                else
                {
                    Directory.CreateDirectory($@"{SystemPath.DataUSers}\{NewUser.Name}");
                }

                MessageOneButton_F Dialog2 = new MessageOneButton_F();

                Dialog2.Message_L.Text = "Пользователь успешно зарегистрирован";

                if (Dialog2.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.Users.Remove(OldUser);
                SystemArgs.Users.Add(NewUser);
                SystemArgs.PrintLog($"Пользователь успешно зарегистрирован");
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Директория хранения данных пользователей не найдена";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Директория хранения данных пользователей не найдена");
            }
        }
Пример #23
0
        public static void AddUser(User User)
        {
            SystemArgs.PrintLog($"Процедура добавления пользователя => Старт ");

            String[] PathFiles;

            PathFiles = Directory.GetDirectories($@"{SystemPath.DataReg}");

            for (Int32 i = 0; i < PathFiles.Length; i++)
            {
                if ($@"{SystemPath.DataReg}\{User.Name}" == PathFiles[i])
                {
                    MessageOneButton_F Dialog = new MessageOneButton_F();

                    Dialog.Message_L.Text = "Пользователь с таким именем уже существует";

                    if (Dialog.ShowDialog() == DialogResult.OK)
                    {
                    }

                    SystemArgs.PrintLog($"Пользователь существует");

                    return;
                }
            }

            if (Directory.Exists($@"{SystemPath.DataReg}"))
            {
                Directory.CreateDirectory($@"{SystemPath.DataReg}\{User.Name}");

                using (StreamWriter sw = new StreamWriter(File.Create($@"{SystemPath.DataReg}\{User.Name}\{User.Name}.hba")))
                {
                    sw.WriteLine(User.Name);
                    sw.WriteLine(User.Password);
                }

                SystemArgs.PrintLog($"Директория пользователя {User.Name} создана");

                Directory.CreateDirectory($@"{SystemPath.DataUSers}\{User.Name}");

                MessageOneButton_F Dialog2 = new MessageOneButton_F();

                Dialog2.Message_L.Text = "Пользователь успешно зарегистрирован";

                if (Dialog2.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.Users.Add(User);

                SystemArgs.PrintLog($"Пользователь успешно зарегистрирован");
            }
            else
            {
                MessageOneButton_F Dialog = new MessageOneButton_F();

                Dialog.Message_L.Text = "Директория хранения данных пользователей не найдена";

                if (Dialog.ShowDialog() == DialogResult.OK)
                {
                }

                SystemArgs.PrintLog($"Директория хранения данных пользователей не найдена");
            }
        }