PageRenderTime 55ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/BlogEngine/BlogEngine.NET/admin/Settings/Rules.aspx.cs

#
C# | 190 lines | 128 code | 35 blank | 27 comment | 6 complexity | 4e76b54dd90fb4aa7b5a5ba2c72e2d88 MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, BSD-3-Clause
  1. namespace admin.Settings
  2. {
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Web.UI.WebControls;
  6. using BlogEngine.Core;
  7. using BlogEngine.Core.Web.Extensions;
  8. using System.Web.Services;
  9. using BlogEngine.Core.Json;
  10. using App_Code;
  11. public partial class Rules : System.Web.UI.Page
  12. {
  13. static protected ExtensionSettings Filters;
  14. /// <summary>
  15. /// Usually filter implemented as extension and can be turned
  16. /// on and off. If it is not extension, defaulted to enabled.
  17. /// </summary>
  18. /// <param name="filter">Filter (extension) name</param>
  19. /// <returns>True if enabled</returns>
  20. public bool CustomFilterEnabled(string filter)
  21. {
  22. var ext = ExtensionManager.GetExtension(filter);
  23. return ext == null ? true : ext.Enabled;
  24. }
  25. [WebMethod]
  26. public static List<JsonCustomFilter> GetCustomFilters()
  27. {
  28. if (!Security.IsAuthorizedTo(Rights.AccessAdminSettingsPages))
  29. return new List<JsonCustomFilter>();
  30. var customFilters = JsonCustomFilterList.GetCustomFilters();
  31. customFilters.Sort((f1, f2) => string.Compare(f1.Name, f2.Name));
  32. return customFilters;
  33. }
  34. protected void Page_Load(object sender, EventArgs e)
  35. {
  36. WebUtils.CheckRightsForAdminSettingsPage(false);
  37. Filters = ExtensionManager.GetSettings("MetaExtension", "BeCommentFilters");
  38. if (!IsPostBack)
  39. {
  40. BindFilters();
  41. }
  42. Page.MaintainScrollPositionOnPostBack = true;
  43. Page.Title = Resources.labels.comments;
  44. btnSave.Click += btnSave_Click;
  45. btnSave.Text = Resources.labels.saveSettings;
  46. }
  47. protected void BindFilters()
  48. {
  49. gridFilters.DataKeyNames = new string[] { Filters.KeyField };
  50. gridFilters.DataSource = Filters.GetDataTable();
  51. gridFilters.DataBind();
  52. // rules
  53. cbTrustAuthenticated.Checked = BlogSettings.Instance.TrustAuthenticatedUsers;
  54. ddWhiteListCount.SelectedValue = BlogSettings.Instance.CommentWhiteListCount.ToString();
  55. ddBlackListCount.SelectedValue = BlogSettings.Instance.CommentBlackListCount.ToString();
  56. cbReportMistakes.Checked = BlogSettings.Instance.CommentReportMistakes;
  57. cbBlockOnDelete.Checked = BlogSettings.Instance.BlockAuthorOnCommentDelete;
  58. cbAddIpToWhitelistFilterOnApproval.Checked = BlogSettings.Instance.AddIpToWhitelistFilterOnApproval;
  59. cbAddIpToBlacklistFilterOnRejection.Checked = BlogSettings.Instance.AddIpToBlacklistFilterOnRejection;
  60. }
  61. protected void btnSave_Click(object sender, EventArgs e)
  62. {
  63. // rules
  64. BlogSettings.Instance.TrustAuthenticatedUsers = cbTrustAuthenticated.Checked;
  65. BlogSettings.Instance.CommentWhiteListCount = int.Parse(ddWhiteListCount.SelectedValue);
  66. BlogSettings.Instance.CommentBlackListCount = int.Parse(ddBlackListCount.SelectedValue);
  67. BlogSettings.Instance.CommentReportMistakes = cbReportMistakes.Checked;
  68. BlogSettings.Instance.BlockAuthorOnCommentDelete = cbBlockOnDelete.Checked;
  69. BlogSettings.Instance.AddIpToWhitelistFilterOnApproval = cbAddIpToWhitelistFilterOnApproval.Checked;
  70. BlogSettings.Instance.AddIpToBlacklistFilterOnRejection = cbAddIpToBlacklistFilterOnRejection.Checked;
  71. //-----------------------------------------------------------------------
  72. // Persist settings
  73. //-----------------------------------------------------------------------
  74. BlogSettings.Instance.Save();
  75. Response.Redirect(Request.RawUrl, true);
  76. }
  77. protected void btnDelete_Click(object sender, EventArgs e)
  78. {
  79. ImageButton btn = (ImageButton)sender;
  80. GridViewRow grdRow = (GridViewRow)btn.Parent.Parent;
  81. int pageIdx = gridFilters.PageIndex;
  82. int pageSize = gridFilters.PageSize;
  83. int rowIndex = grdRow.RowIndex;
  84. if (pageIdx > 0) rowIndex = pageIdx * pageSize + rowIndex;
  85. foreach (ExtensionParameter par in Filters.Parameters)
  86. {
  87. par.DeleteValue(rowIndex);
  88. }
  89. ExtensionManager.SaveSettings("MetaExtension", Filters);
  90. Response.Redirect(Request.RawUrl);
  91. }
  92. protected void gridView_PageIndexChanging(object sender, GridViewPageEventArgs e)
  93. {
  94. gridFilters.PageIndex = e.NewPageIndex;
  95. BindFilters();
  96. }
  97. protected void btnAddFilter_Click(object sender, EventArgs e)
  98. {
  99. if (ValidateForm())
  100. {
  101. string id = Guid.NewGuid().ToString();
  102. string[] f = new string[] { id,
  103. ddAction.SelectedValue,
  104. ddSubject.SelectedValue,
  105. ddOperator.SelectedValue,
  106. txtFilter.Text };
  107. Filters.AddValues(f);
  108. ExtensionManager.SaveSettings("MetaExtension", Filters);
  109. Response.Redirect(Request.RawUrl);
  110. }
  111. }
  112. protected bool ValidateForm()
  113. {
  114. if (string.IsNullOrEmpty(txtFilter.Text))
  115. {
  116. FilterValidation.InnerHtml = "Filter is a required field";
  117. return false;
  118. }
  119. return true;
  120. }
  121. public static string ApprovedCnt(object total, object cought)
  122. {
  123. try
  124. {
  125. int t = int.Parse(total.ToString());
  126. int c = int.Parse(cought.ToString());
  127. int a = t - c;
  128. return a.ToString();
  129. }
  130. catch (Exception)
  131. {
  132. return "";
  133. }
  134. }
  135. protected void gridCustomFilters_RowCommand(object sender, GridViewCommandEventArgs e)
  136. {
  137. //string filterName = e.CommandArgument.ToString();
  138. //if (!string.IsNullOrEmpty(filterName))
  139. //{
  140. // // reset statistics for this filter
  141. // for (int i = 0; i < _customFilters.Parameters[0].Values.Count; i++)
  142. // {
  143. // if (_customFilters.Parameters[0].Values[i] == filterName)
  144. // {
  145. // _customFilters.Parameters[2].Values[i] = "0";
  146. // _customFilters.Parameters[3].Values[i] = "0";
  147. // _customFilters.Parameters[4].Values[i] = "0";
  148. // }
  149. // }
  150. // ExtensionManager.SaveSettings("MetaExtension", _customFilters);
  151. // Response.Redirect(Request.RawUrl);
  152. //}
  153. }
  154. }
  155. }