public static bool IsControlAccountExist(string Name) { List <AdminPanelControlAccount> cAccounts = new List <AdminPanelControlAccount>(); bool result = false; try { cAccounts = AdminPanelControlAccounts.GetControlAccounts(); foreach (AdminPanelControlAccount ca in cAccounts) { if (ca.Name != Name) { continue; } result = true; break; } } catch (Exception error) { Log.WriteException(error); throw new WebMail.WebMailException(error); } return(result); }
public void SaveSettings(object sender, System.EventArgs e) { bool flag = false; this.Context.Application.Remove(AdminPanelConstants.serverSettings); this.Context.Application.Remove(Constants.sessionSettings); string adminpanelxml = Path.Combine(AdminPanelUtils.GetAdminPanelDataFolderPath(), @"adminpanel.xml"); bool isAdminpanelxmlWrite = false; FileStream fs; try { fs = File.Open(adminpanelxml, FileMode.Open, FileAccess.Write); fs.Close(); isAdminpanelxmlWrite = true; } catch (UnauthorizedAccessException) { isAdminpanelxmlWrite = false; } if (isAdminpanelxmlWrite) { if (txtSecurityPassword.Text.Trim() != AdminPanelConstants.DummyPassword) { if (_isServerExist) { try { if (AdminPanelControlAccounts.IsControlAccountExist(UserName)) { AdminPanelControlAccounts.SetControlAccountPassword(UserName, txtSecurityPassword.Text); } else { AdminPanelControlAccounts.AdminPanelControlAccount ca = new AdminPanelControlAccounts.AdminPanelControlAccount(); ca.Name = UserName; ca.Password = txtSecurityPassword.Text; AdminPanelControlAccounts.AddControlAccount(ca); } flag = true; } catch (Exception ex) { flag = false; AdminPanelUtils.SetPageErrorMessage(Page, ex.Message); } if (flag) { apSettings.Pass = txtSecurityPassword.Text; } } else { apSettings.Pass = txtSecurityPassword.Text; } } if (_isServerExist) { apSettings.Host = txtHost.Value; apSettings.Port = txtPort.Value; } try { apSettings.Save(); AdminPanelUtils.SetPageReportMessage(Page, "Settings are successfully saved!"); } catch (Exception ex) { AdminPanelUtils.SetPageErrorMessage(Page, ex.Message); } } else { AdminPanelUtils.SetPageErrorMessage(Page, "Failed to access \"adminpanel.xml\" config file."); } }