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.CMSHelper; using CMS.Community; using CMS.GlobalHelper; using CMS.PortalControls; using CMS.UIControls; public partial class CMSWebParts_Community_Profile_GroupProfile : CMSAbstractWebPart { #region "Private variables" private bool mDisplayMessage = false; #endregion #region "Public properties" /// /// Gets or sets group name to specify group members. /// public string GroupName { get { string groupName = ValidationHelper.GetString(GetValue("GroupName"), ""); if ((string.IsNullOrEmpty(groupName) || groupName == GroupInfoProvider.CURRENT_GROUP) && (CommunityContext.CurrentGroup != null)) { return CommunityContext.CurrentGroup.GroupName; } return groupName; } set { SetValue("GroupName", value); } } /// /// If true group display name change allowed on live site. /// public bool AllowChangeGroupDisplayName { get { return ValidationHelper.GetBoolean(GetValue("AllowChangeGroupDisplayName"), false); } set { groupProfileElem.AllowChangeGroupDisplayName = value; SetValue("AllowChangeGroupDisplayName", value); } } /// /// Gets or sets message which should be displayed if user hasn't permissions. /// public string NoPermissionMessage { get { return ValidationHelper.GetString(GetValue("NoPermissionMessage"), ""); } set { SetValue("NoPermissionMessage", value); messageElem.ErrorMessage = value; } } /// /// If true, changing theme for group page is enabled. /// public bool AllowSelectTheme { get { return ValidationHelper.GetBoolean(GetValue("AllowSelectTheme"), false); } set { SetValue("AllowSelectTheme", value); groupProfileElem.AllowSelectTheme = value; } } /// /// If true, the general tab is enabled. /// public bool DisplayGeneral { get { return ValidationHelper.GetBoolean(GetValue("DisplayGeneral"), groupProfileElem.ShowGeneralTab); } set { SetValue("DisplayGeneral", value); groupProfileElem.ShowGeneralTab = value; } } /// /// If true, the security tab is enabled. /// public bool DisplaySecurity { get { return ValidationHelper.GetBoolean(GetValue("DisplaySecurity"), groupProfileElem.ShowSecurityTab); } set { SetValue("DisplaySecurity", value); groupProfileElem.ShowSecurityTab = value; } } /// /// If true, the members tab is enabled. /// public bool DisplayMembers { get { return ValidationHelper.GetBoolean(GetValue("DisplayMembers"), groupProfileElem.ShowMembersTab); } set { SetValue("DisplayMembers", value); groupProfileElem.ShowMembersTab = value; } } /// /// If true, the roles tab is enabled. /// public bool DisplayRoles { get { return ValidationHelper.GetBoolean(GetValue("DisplayRoles"), groupProfileElem.ShowRolesTab); } set { SetValue("DisplayRoles", value); groupProfileElem.ShowRolesTab = value; } } /// /// If true, the forums tab is enabled. /// public bool DisplayForums { get { return ValidationHelper.GetBoolean(GetValue("DisplayForums"), groupProfileElem.ShowForumsTab); } set { SetValue("DisplayForums", value); groupProfileElem.ShowForumsTab = value; } } /// /// If true, the media library tab is enabled. /// public bool DisplayMediaLibrary { get { return ValidationHelper.GetBoolean(GetValue("DisplayMediaLibrary"), groupProfileElem.ShowMediaTab); } set { SetValue("DisplayMediaLibrary", value); groupProfileElem.ShowMediaTab = value; } } /// /// If true, the message boards tab is enabled. /// public bool DisplayMessageBoards { get { return ValidationHelper.GetBoolean(GetValue("DisplayMessageBoards"), groupProfileElem.ShowMessageBoardsTab); } set { SetValue("DisplayMessageBoards", value); groupProfileElem.ShowMessageBoardsTab = value; } } /// /// If true, the polls tab is enabled. /// public bool DisplayPolls { get { return ValidationHelper.GetBoolean(GetValue("DisplayPolls"), groupProfileElem.ShowPollsTab); } set { SetValue("DisplayPolls", value); groupProfileElem.ShowPollsTab = value; } } /// /// If true, the polls tab is enabled. /// public bool DisplayProjects { get { return ValidationHelper.GetBoolean(GetValue("DisplayProjects"), groupProfileElem.ShowProjectsTab); } set { SetValue("DisplayProjects", value); groupProfileElem.ShowProjectsTab = value; } } #endregion /// /// Content loaded event handler. /// public override void OnContentLoaded() { base.OnContentLoaded(); SetupControl(); } /// /// Reloads data. /// public override void ReloadData() { base.ReloadData(); SetupControl(); } /// /// Initializes the control properties. /// protected void SetupControl() { if (StopProcessing) { // Do nothing } else { SetContext(); messageElem.ErrorMessage = NoPermissionMessage; messageElem.IsLiveSite = true; groupProfileElem.IsLiveSite = true; groupProfileElem.RedirectToAccessDeniedPage = false; groupProfileElem.OnCheckPermissions += new CMSAdminControl.CheckPermissionsEventHandler(groupProfileElem_OnCheckPermissions); groupProfileElem.HideWhenGroupIsNotSupplied = true; GroupInfo gi = GroupInfoProvider.GetGroupInfo(GroupName, CMSContext.CurrentSiteName); if (gi != null) { groupProfileElem.GroupID = gi.GroupID; groupProfileElem.AllowChangeGroupDisplayName = AllowChangeGroupDisplayName; groupProfileElem.AllowSelectTheme = AllowSelectTheme; groupProfileElem.ShowGeneralTab = DisplayGeneral; groupProfileElem.ShowSecurityTab = DisplaySecurity; groupProfileElem.ShowMembersTab = DisplayMembers; groupProfileElem.ShowRolesTab = DisplayRoles; groupProfileElem.ShowForumsTab = DisplayForums; groupProfileElem.ShowMediaTab = DisplayMediaLibrary; groupProfileElem.ShowMessageBoardsTab = DisplayMessageBoards; groupProfileElem.ShowPollsTab = DisplayPolls; groupProfileElem.ShowProjectsTab = DisplayProjects; } else { groupProfileElem.StopProcessing = true; groupProfileElem.Visible = false; mDisplayMessage = true; } ReleaseContext(); } } /// /// Group profile - check permissions. /// private void groupProfileElem_OnCheckPermissions(string permissionType, CMSAdminControl sender) { if (!(CMSContext.CurrentUser.IsGroupAdministrator(groupProfileElem.GroupID) || CMSContext.CurrentUser.IsAuthorizedPerResource("cms.groups", permissionType))) { if (sender != null) { sender.StopProcessing = true; } groupProfileElem.StopProcessing = true; groupProfileElem.Visible = false; messageElem.ErrorMessage = NoPermissionMessage; mDisplayMessage = true; } } /// /// Render override. /// /// Writer protected override void Render(HtmlTextWriter writer) { if (!mDisplayMessage) { messageElem.Visible = false; } base.Render(writer); } }