using System; using System.Data; using System.Collections; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using CMS.GlobalHelper; using CMS.SiteProvider; using CMS.UIControls; public partial class CMSModules_Membership_Controls_Roles_Roles : CMSAdminEditControl { #region "Variables" private bool mHideWhenGroupIsNotSupplied = false; #endregion #region "Properties" /// /// Determines whether to hide the content of the control when GroupID is not supplied. /// public bool HideWhenGroupIsNotSupplied { get { return mHideWhenGroupIsNotSupplied; } set { mHideWhenGroupIsNotSupplied = value; } } /// /// Gets and sets current group ID. /// public int GroupID { get { int groupId = ValidationHelper.GetInteger(ViewState["groupid"], 0); if (groupId <= 0) { groupId = ValidationHelper.GetInteger(GetValue("GroupID"), 0); } return groupId; } set { ViewState["groupid"] = value; } } /// /// Gets and sets current group GUID. /// public Guid GroupGUID { get { Guid groupGuid = ValidationHelper.GetGuid(ViewState["groupguid"], Guid.Empty); if (groupGuid == Guid.Empty) { groupGuid = ValidationHelper.GetGuid(GetValue("GroupGUID"), Guid.Empty); } return groupGuid; } set { ViewState["groupguid"] = value; } } /// /// Gets and sets current site ID. /// public int SiteID { get { int siteId = ValidationHelper.GetInteger(ViewState["siteid"], 0); if (siteId <= 0) { siteId = ValidationHelper.GetInteger(GetValue("SiteID"), 0); } return siteId; } set { ViewState["siteid"] = value; } } /// /// Gets and sets current role ID. /// public int RoleID { get { return ValidationHelper.GetInteger(ViewState["roleid"], 0); } set { ViewState["roleid"] = value; } } /// /// Gets and sets control to be displayed. /// public string SelectedControl { get { return ValidationHelper.GetString(ViewState["selectedcontrol"], "general"); } set { ViewState["selectedcontrol"] = value; } } #endregion protected void Page_Load(object sender, EventArgs e) { #region "Security" RoleList.OnCheckPermissions += new CheckPermissionsEventHandler(RoleList_OnCheckPermissions); RoleEdit.OnCheckPermissions += new CheckPermissionsEventHandler(RoleEdit_OnCheckPermissions); Role.OnCheckPermissions += new CheckPermissionsEventHandler(Role_OnCheckPermissions); #endregion if (!Visible) { EnableViewState = false; } if (StopProcessing) { Role.StopProcessing = true; RoleList.StopProcessing = true; RoleEdit.StopProcessing = true; } else { if ((GroupID == 0) && HideWhenGroupIsNotSupplied) { Visible = false; return; } // Is live site Role.IsLiveSite = IsLiveSite; RoleList.SiteID = SiteID; RoleList.GroupID = GroupID; RoleEdit.GroupID = GroupID; RoleEdit.GroupGUID = GroupGUID; RoleEdit.SiteID = SiteID; RoleEdit.DisplayMode = DisplayMode; Role.GroupID = GroupID; Role.GroupGUID = GroupGUID; Role.SiteID = SiteID; Role.DisplayMode = DisplayMode; // Setup new role button btnNewRole.Click += new EventHandler(btnNewRole_Click); imgNewRole.ImageUrl = GetImageUrl("Objects/CMS_Role/add.png"); imgNewRole.AlternateText = GetString("Administration-Role_New.NewRole"); // BreadCrumbs setup btnBreadCrumbs.Click += new EventHandler(btnBreadCrumbs_Click); lblRole.ResourceString = "Administration-Role_New.NewRole"; RoleList.OnEdit += new EventHandler(RoleList_OnEdit); RoleEdit.OnSaved += new EventHandler(RoleEdit_OnSaved); DisplayControls(SelectedControl); } } #region "Security handlers" private void Role_OnCheckPermissions(string permissionType, CMSAdminControl sender) { RaiseOnCheckPermissions(permissionType, sender); } private void RoleEdit_OnCheckPermissions(string permissionType, CMSAdminControl sender) { RaiseOnCheckPermissions(permissionType, sender); } private void RoleList_OnCheckPermissions(string permissionType, CMSAdminControl sender) { RaiseOnCheckPermissions(permissionType, sender); } #endregion /// /// Displays appropriate controls. /// public void DisplayControls(string control) { // Hide all controls first and set all IDs Role.Visible = false; RoleList.Visible = false; RoleEdit.Visible = false; headerLinks.Visible = false; pnlRolesBreadcrumbs.Visible = false; // Display edit control if (RoleID > 0) { Role.Visible = true; pnlRolesBreadcrumbs.Visible = true; RoleInfo role = RoleInfoProvider.GetRoleInfo(RoleID); if (role != null) { lblRole.ResourceString = HTMLHelper.HTMLEncode(role.DisplayName); } Role.SiteID = SiteID; Role.ItemID = RoleID; Role.ReloadData(false); } else { switch (control) { // Display list control case "general": default: RoleList.Visible = true; headerLinks.Visible = true; RoleList.SiteID = SiteID; RoleEdit.SiteID = SiteID; RoleEdit.ReloadData(false); break; // Display new control case "newrole": RoleEdit.Visible = true; pnlRolesBreadcrumbs.Visible = true; lblRole.ResourceString = "Administration-Role_New.Title"; break; } } } /// /// Edit action delegate handler. /// private void RoleList_OnEdit(object sender, EventArgs e) { RoleID = Role.ItemID = RoleList.SelectedItemID; Role.ReloadData(true); DisplayControls(""); } /// /// New role click handler. /// private void btnNewRole_Click(object sender, EventArgs e) { RoleID = RoleEdit.ItemID = Role.ItemID = 0; RoleEdit.ReloadData(true); SelectedControl = "newrole"; DisplayControls(SelectedControl); } /// /// Breadcrumbs click handler. /// private void btnBreadCrumbs_Click(object sender, EventArgs e) { RoleID = 0; SelectedControl = "general"; DisplayControls(SelectedControl); Role.SelectedTab = 0; } /// /// OnSave event handler. /// private void RoleEdit_OnSaved(object sender, EventArgs e) { Role.ItemID = RoleID = RoleEdit.ItemID; Role.ReloadData(true); SelectedControl = "general"; DisplayControls(SelectedControl); } }