示例#1
0
        private void DropUser(Panel users_panel)
        {
            String user, role2 = "";

            user = ((Label)(users_panel.Controls[0])).Text;
            if (user == "hoba")
            {
                MessageBox.Show("Невозможно удалить учетную запись гл. администратора.");
                return;
            }
            try
            {
                NpgsqlDataReader dataReader = PgSql.SelectFromWhere("role", "users", "login", user.ToString());
                if (dataReader.Read())
                {
                    role2 = dataReader[0].ToString();
                }
                else
                {
                    throw new Exception("error...");
                }
                dataReader.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return;
            }
            if (StringHelper.TextToRole(role2) == "admin" && StringHelper.TextToRole(role) != "admin")
            {
                MessageBox.Show("Администратора может удалить только администратор.");
                return;
            }
            var res = DialogResult.OK;

            if (user == curr_user)
            {
                res = MessageBox.Show(String.Format("Вы уверены, что хотите удалить из базы данных себя (\"{0}\")?\nЭто действие приведет к выходу программы к окну авторизации.", user), "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            }
            else
            {
                res = MessageBox.Show(String.Format("Вы уверены, что хотите удалить пользователя \"{0}\" с ролью \"{1}\" из Базы Данных?", user, StringHelper.RoleToText(role2)), "", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            }
            if (res == DialogResult.Yes)
            {
                try
                {
                    PgSql.DeleteFromTable("users", "login", user);
                    ShowAllUsers();
                    MessageBox.Show(String.Format("Пользователь {0} успешно удален", user));
                    if (user == curr_user)
                    {
                        this.DialogResult = DialogResult.Retry;
                        this.Close();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }
            else
            {
                return;
            }
        }