using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
namespace ASPNetPortal {
public class ModuleSettingsPage : System.Web.UI.Page {
protected System.Web.UI.WebControls.TextBox moduleTitle;
protected System.Web.UI.WebControls.TextBox cacheTime;
protected System.Web.UI.WebControls.CheckBoxList authEditRoles;
protected System.Web.UI.WebControls.CheckBox showMobile;
protected System.Web.UI.WebControls.LinkButton ApplyButton;
int moduleId = 0;
int tabId = 0;
//*******************************************************
//
// The Page_Load server event handler on this page is used
// to populate the module settings on the page
//
//*******************************************************
private void Page_Load(object sender, System.EventArgs e) {
// Verify that the current user has access to access this page
if (PortalSecurity.IsInRoles("Admins") == false) {
Response.Redirect("~/Admin/EditAccessDenied.aspx");
}
// Determine Module to Edit
if (Request.Params["mid"] != null) {
moduleId = Int32.Parse(Request.Params["mid"]);
}
// Determine Tab to Edit
if (Request.Params["tabid"] != null) {
tabId = Int32.Parse(Request.Params["tabid"]);
}
if (Page.IsPostBack == false) {
BindData();
}
}
//*******************************************************
//
// The ApplyChanges_Click server event handler on this page is used
// to save the module settings into the portal configuration system
//
//*******************************************************
private void ApplyChanges_Click(Object Sender, EventArgs e) {
// Obtain PortalSettings from Current Context
PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"];
object value = GetModule();
if (value != null) {
ModuleSettings m = (ModuleSettings) value;
// Construct Authorized User Roles String
String editRoles = "";
foreach(ListItem item in authEditRoles.Items) {
if (item.Selected == true) {
editRoles = editRoles + item.Text + ";";
}
}
// update module
AdminDB admin = new AdminDB();
admin.UpdateModule(moduleId, m.ModuleOrder, m.PaneName, moduleTitle.Text, Int32.Parse(cacheTime.Text), editRoles, showMobile.Checked);
// Update Textbox Settings
moduleTitle.Text = m.ModuleTitle;
cacheTime.Text = m.CacheTime.ToString();
// Populate checkbox list with all security roles for this portal
// and "check" the ones already configured for this module
SqlDataReader roles = admin.GetPortalRoles(portalSettings.PortalId);
// Clear existing items in checkboxlist
authEditRoles.Items.Clear();
ListItem allItem = new ListItem();
allItem.Text = "All Users";
if (m.AuthorizedEditRoles.LastIndexOf("All Users") > -1) {
allItem.Selected = true;
}
authEditRoles.Items.Add(allItem);
while(roles.Read()) {
ListItem item = new ListItem();
item.Text = (String) roles["RoleName"];
item.Value = roles["RoleID"].ToString();
if ((m.AuthorizedEditRoles.LastIndexOf(item.Text)) > -1) {
item.Selected = true;
}
authEditRoles.Items.Add(item);
}
}
// Navigate back to admin page
Response.Redirect("TabLayout.aspx?tabid=" + tabId);
}
//*******************************************************
//
// The BindData helper method is used to populate a asp:datalist
// server control with the current "edit access" permissions
// set within the portal configuration system
//
//*******************************************************
private void BindData() {
// Obtain PortalSettings from Current Context
PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"];
object value = GetModule();
if (value != null) {
ModuleSettings m = (ModuleSettings) value;
// Update Textbox Settings
moduleTitle.Text = m.ModuleTitle;
cacheTime.Text = m.CacheTime.ToString();
showMobile.Checked = m.ShowMobile;
// Populate checkbox list with all security roles for this portal
// and "check" the ones already configured for this module
AdminDB admin = new AdminDB();
SqlDataReader roles = admin.GetPortalRoles(portalSettings.PortalId);
// Clear existing items in checkboxlist
authEditRoles.Items.Clear();
ListItem allItem = new ListItem();
allItem.Text = "All Users";
if (m.AuthorizedEditRoles.LastIndexOf("All Users") > -1) {
allItem.Selected = true;
}
authEditRoles.Items.Add(allItem);
while(roles.Read()) {
ListItem item = new ListItem();
item.Text = (String) roles["RoleName"];
item.Value = roles["RoleID"].ToString();
if ((m.AuthorizedEditRoles.LastIndexOf(item.Text)) > -1) {
item.Selected = true;
}
authEditRoles.Items.Add(item);
}
}
}
private ModuleSettings GetModule() {
// Obtain PortalSettings for this tab
PortalSettings portalSettings = (PortalSettings) HttpContext.Current.Items["PortalSettings"];
// Obtain selected module data
foreach (ModuleSettings _module in portalSettings.ActiveTab.Modules) {
if (_module.ModuleId == moduleId)
return _module;
}
return null;
}
public ModuleSettingsPage() {
Page.Init += new System.EventHandler(Page_Init);
}
private void Page_Init(object sender, EventArgs e) {
//
// CODEGEN: This call is required by the ASP.NET Web Form Designer.
//
InitializeComponent();
}
#region Web Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent() {
this.ApplyButton.Click += new System.EventHandler(this.ApplyChanges_Click);
this.Load += new System.EventHandler(this.Page_Load);
}
#endregion
}
}