예제 #1
0
    /// <summary>
    /// Creates new invitation to group. Called when the "Add member to group" button is pressed.
    /// Expects the CreateGroup method to be run first.
    /// </summary>
    private bool CreateInvitation()
    {
        // Get the group
        GroupInfo group = GroupInfoProvider.GetGroupInfo("MyNewGroup", CMSContext.CurrentSiteName);

        if (group != null)
        {
            // Create new invitation
            InvitationInfo newInvitation = new InvitationInfo();

            // Set properties
            newInvitation.InvitationComment   = "Invitation created by API example.";
            newInvitation.InvitationGroupID   = group.GroupID;
            newInvitation.InvitationUserEmail = "*****@*****.**";
            newInvitation.InvitedByUserID     = CMSContext.CurrentUser.UserID;
            newInvitation.InvitationCreated   = DateTime.Now;
            newInvitation.InvitationValidTo   = DateTime.Now.AddDays(1);

            // Save object
            InvitationInfoProvider.SetInvitationInfo(newInvitation);

            return(true);
        }

        return(false);
    }
예제 #2
0
    /// <summary>
    /// Handles the UniGrid's OnAction event.
    /// </summary>
    /// <param name="actionName">Name of item (button) that throws event</param>
    /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param>
    protected void gridElem_OnAction(string actionName, object actionArgument)
    {
        switch (actionName)
        {
        case "delete":
        case "approve":
        case "reject":

            // Check MANAGE permission for groups module
            if (!CheckPermissions("cms.groups", CMSAdminControl.PERMISSION_MANAGE, this.GroupID))
            {
                return;
            }

            break;
        }

        if (actionName == "delete")
        {
            // Delete member
            GroupMemberInfoProvider.DeleteGroupMemberInfo(ValidationHelper.GetInteger(actionArgument, 0));
        }
        else if (actionName == "approve")
        {
            // Approve member
            GroupMemberInfo gmi = GroupMemberInfoProvider.GetGroupMemberInfo(ValidationHelper.GetInteger(actionArgument, 0));
            if (gmi != null)
            {
                gmi.MemberApprovedByUserID = CMSContext.CurrentUser.UserID;
                gmi.MemberStatus           = GroupMemberStatus.Approved;
                gmi.MemberApprovedWhen     = DateTime.Now;
                gmi.MemberRejectedWhen     = DataHelper.DATETIME_NOT_SELECTED;
                GroupMemberInfoProvider.SetGroupMemberInfo(gmi);
                GroupInfo group = GroupInfoProvider.GetGroupInfo(this.GroupID);
                if ((group != null) && (group.GroupSendWaitingForApprovalNotification))
                {
                    GroupMemberInfoProvider.SendNotificationMail("Groups.MemberApproved", CMSContext.CurrentSiteName, gmi, false);
                }
            }
        }
        else if (actionName == "reject")
        {
            // Reject member
            GroupMemberInfo gmi = GroupMemberInfoProvider.GetGroupMemberInfo(ValidationHelper.GetInteger(actionArgument, 0));
            if (gmi != null)
            {
                gmi.MemberApprovedByUserID = CMSContext.CurrentUser.UserID;
                gmi.MemberStatus           = GroupMemberStatus.Rejected;
                gmi.MemberApprovedWhen     = DataHelper.DATETIME_NOT_SELECTED;
                gmi.MemberRejectedWhen     = DateTime.Now;
                GroupMemberInfoProvider.SetGroupMemberInfo(gmi);
                GroupInfo group = GroupInfoProvider.GetGroupInfo(this.GroupID);
                if ((group != null) && (group.GroupSendWaitingForApprovalNotification))
                {
                    GroupMemberInfoProvider.SendNotificationMail("Groups.MemberRejected", CMSContext.CurrentSiteName, gmi, false);
                }
            }
        }
        this.RaiseOnAction(actionName, actionArgument);
    }
예제 #3
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Only community manager can delete group
        if (!MembershipContext.AuthenticatedUser.IsAuthorizedPerResource("CMS.Groups", CMSAdminControl.PERMISSION_MANAGE))
        {
            RedirectToAccessDenied("CMS.Groups", CMSAdminControl.PERMISSION_MANAGE);
        }

        int groupId = QueryHelper.GetInteger("groupid", 0);

        gi = GroupInfoProvider.GetGroupInfo(groupId);

        if (gi != null)
        {
            lblMsg.Style.Add("font-weight", "bold");
            chkDeleteAll.Text = MacroResolver.Resolve(GetString("group.deleterelated"));
            mGroupListUrl     = ResolveUrl(mGroupListUrl);

            // Pagetitle
            PageTitle.TitleText = GetString("group.deletegroup") + " \"" + HTMLHelper.HTMLEncode(gi.GroupDisplayName) + "\"";
            // Initialize breadcrumbs
            PageBreadcrumbs.Items.Add(new BreadcrumbItem()
            {
                Text        = GetString("deletegroup.listlink"),
                RedirectUrl = mGroupListUrl,
            });
            PageBreadcrumbs.Items.Add(new BreadcrumbItem()
            {
                Text = HTMLHelper.HTMLEncode(gi.GroupDisplayName),
            });

            btnDelete.Click += new EventHandler(btnDelete_Click);
            btnCancel.Click += new EventHandler(btnCancel_Click);
        }
    }
    /// <summary>
    /// Approves member.
    /// </summary>
    public bool RejectMember()
    {
        // Check MANAGE permission for groups module
        if (!CheckPermissions("cms.groups", PERMISSION_MANAGE, GroupID))
        {
            return(false);
        }

        if ((CurrentMember != null) && (MembershipContext.AuthenticatedUser != null))
        {
            // Set properties
            CurrentMember.MemberApprovedByUserID = MembershipContext.AuthenticatedUser.UserID;
            CurrentMember.MemberStatus           = GroupMemberStatus.Rejected;
            CurrentMember.MemberApprovedWhen     = DateTimeHelper.ZERO_TIME;
            CurrentMember.MemberRejectedWhen     = DateTime.Now;

            // Save to database
            GroupMemberInfoProvider.SetGroupMemberInfo(CurrentMember);

            GroupInfo group = GroupInfoProvider.GetGroupInfo(GroupID);
            if ((group != null) && (group.GroupSendWaitingForApprovalNotification))
            {
                // Send notification email
                GroupMemberInfoProvider.SendNotificationMail("Groups.MemberRejected", SiteContext.CurrentSiteName, CurrentMember, false);
            }

            lblMemberApproved.Text = GetApprovalInfoText(CurrentMember.MemberApprovedWhen, CurrentMember.MemberApprovedByUserID);
            lblMemberRejected.Text = GetApprovalInfoText(CurrentMember.MemberRejectedWhen, CurrentMember.MemberApprovedByUserID);
            return(true);
        }
        return(false);
    }
예제 #5
0
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            SetContext();

            boardsElem.HideWhenGroupIsNotSupplied = true;
            boardsElem.OnCheckPermissions        += boardsElem_OnCheckPermissions;

            GroupInfo gi = GroupInfoProvider.GetGroupInfo(GroupName, SiteContext.CurrentSiteName);
            if (gi != null)
            {
                boardsElem.GroupID = gi.GroupID;
            }
            else
            {
                Visible = false;
            }

            ReleaseContext();
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        roleUsersElem.IsLiveSite = false;

        roleId  = QueryHelper.GetInteger("roleid", 0);
        groupId = QueryHelper.GetInteger("groupid", 0);

        // Check whether group exists
        GroupInfo gi = GroupInfoProvider.GetGroupInfo(groupId);

        if (gi != null)
        {
            //Check whether selected role is in selected group
            RoleInfo ri = RoleInfoProvider.GetRoleInfo(roleId);
            if ((ri != null) && (ri.RoleGroupID == gi.GroupID))
            {
                roleUsersElem.RoleID              = roleId;
                roleUsersElem.GroupID             = groupId;
                roleUsersElem.OnCheckPermissions += roleUsersElem_OnCheckPermissions;
            }
        }
        else
        {
            roleUsersElem.Visible = false;
        }
    }
    /// <summary>
    /// Handles the UniGrid's OnAction event.
    /// </summary>
    /// <param name="actionName">Name of item (button) that throws event</param>
    /// <param name="actionArgument">ID (value of Primary key) of corresponding data row</param>
    protected void gridElem_OnAction(string actionName, object actionArgument)
    {
        GroupInfo gi = null;

        // Handle event
        switch (actionName)
        {
        case "approve":
            CheckPermissions();
            gi = GroupInfoProvider.GetGroupInfo(ValidationHelper.GetInteger(actionArgument, 0));
            gi.GroupApproved         = true;
            gi.GroupApprovedByUserID = MembershipContext.AuthenticatedUser.UserID;
            GroupInfoProvider.SetGroupInfo(gi);
            break;

        case "reject":
            CheckPermissions();
            gi = GroupInfoProvider.GetGroupInfo(ValidationHelper.GetInteger(actionArgument, 0));
            gi.GroupApproved         = false;
            gi.GroupApprovedByUserID = 0;
            GroupInfoProvider.SetGroupInfo(gi);
            break;
        }

        RaiseOnAction(actionName, actionArgument);
    }
예제 #8
0
    /// <summary>
    /// Gets and updates group member. Called when the "Get and update member" button is pressed.
    /// Expects the CreateGroupMember method to be run first.
    /// </summary>
    private bool GetAndUpdateGroupMember()
    {
        // Get the group
        GroupInfo group = GroupInfoProvider.GetGroupInfo("MyNewGroup", CMSContext.CurrentSiteName);

        if (group != null)
        {
            // Get the user
            UserInfo user = UserInfoProvider.GetUserInfo(CMSContext.CurrentUser.UserName);

            if (user != null)
            {
                // Get the group member
                GroupMemberInfo updateMember = GroupMemberInfoProvider.GetGroupMemberInfo(user.UserID, group.GroupID);
                if (updateMember != null)
                {
                    // Update the properties
                    updateMember.MemberComment = updateMember.MemberComment.ToLowerCSafe();

                    // Save the changes
                    GroupMemberInfoProvider.SetGroupMemberInfo(updateMember);

                    return(true);
                }
            }
        }

        return(false);
    }
예제 #9
0
    /// <summary>
    /// Deletes group member. Called when the "Delete member" button is pressed.
    /// Expects the CreateGroupMember method to be run first.
    /// </summary>
    private bool DeleteGroupMember()
    {
        // Get the group
        GroupInfo group = GroupInfoProvider.GetGroupInfo("MyNewGroup", CMSContext.CurrentSiteName);

        if (group != null)
        {
            // Get the user
            UserInfo user = UserInfoProvider.GetUserInfo(CMSContext.CurrentUser.UserName);

            if (user != null)
            {
                // Get the group member
                GroupMemberInfo deleteMember = GroupMemberInfoProvider.GetGroupMemberInfo(user.UserID, group.GroupID);
                if (deleteMember != null)
                {
                    // Save the changes
                    GroupMemberInfoProvider.DeleteGroupMemberInfo(deleteMember);

                    return(true);
                }
            }
        }

        return(false);
    }
예제 #10
0
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            srcMedia.WhereCondition    = this.WhereCondition;
            srcMedia.OrderBy           = this.OrderBy;
            srcMedia.TopN              = this.SelectTopN;
            srcMedia.FilterName        = this.ID;
            srcMedia.SourceFilterName  = this.FilterName;
            srcMedia.CacheItemName     = this.CacheItemName;
            srcMedia.CacheDependencies = this.CacheDependencies;
            srcMedia.CacheMinutes      = this.CacheMinutes;
            srcMedia.SelectedColumns   = this.Columns;

            // Set group ID
            srcMedia.GroupID = -1;
            if (!string.IsNullOrEmpty(this.GroupName))
            {
                GroupInfo gi = GroupInfoProvider.GetGroupInfo(this.GroupName, CMSContext.CurrentSiteName);
                if (gi != null)
                {
                    srcMedia.GroupID = gi.GroupID;
                }
            }
        }
    }
예제 #11
0
    /// <summary>
    /// Creates group member. Called when the "Create member" button is pressed.
    /// </summary>
    private bool CreateGroupMember()
    {
        // Get the group
        GroupInfo group = GroupInfoProvider.GetGroupInfo("MyNewGroup", CMSContext.CurrentSiteName);

        if (group != null)
        {
            // Get the user
            UserInfo user = UserInfoProvider.GetUserInfo(CMSContext.CurrentUser.UserName);

            if (user != null)
            {
                // Create new group member object
                GroupMemberInfo newMember = new GroupMemberInfo();

                //Set the properties
                newMember.MemberGroupID          = group.GroupID;
                newMember.MemberApprovedByUserID = CurrentUser.UserID;
                newMember.MemberApprovedWhen     = DateTime.Now;
                newMember.MemberInvitedByUserID  = CurrentUser.UserID;
                newMember.MemberUserID           = user.UserID;
                newMember.MemberJoined           = DateTime.Now;
                newMember.MemberComment          = "New member added by API example.";

                // Save the member
                GroupMemberInfoProvider.SetGroupMemberInfo(newMember);
            }

            return(true);
        }

        return(false);
    }
예제 #12
0
 /// <summary>
 /// Initializes the control properties.
 /// </summary>
 protected void SetupControl()
 {
     if (this.StopProcessing)
     {
         // Do nothing
         viewPoll.Visible = false;
     }
     else
     {
         GroupInfo gi = GroupInfoProvider.GetGroupInfo(this.GroupName, CMSContext.CurrentSiteName);
         if (gi != null)
         {
             viewPoll.ControlContext        = ControlContext;
             viewPoll.PollCodeName          = PollCodeName;
             viewPoll.CheckPermissions      = CheckPermissions;
             viewPoll.CheckVoted            = CheckVoted;
             viewPoll.CountType             = CountType;
             viewPoll.CacheMinutes          = CacheMinutes;
             viewPoll.HideWhenNotAuthorized = HideWhenNotAuthorized;
             viewPoll.ShowGraph             = ShowGraph;
             viewPoll.ShowResultsAfterVote  = ShowResultsAfterVote;
             viewPoll.HideWhenNotOpened     = HideWhenNotOpened;
             viewPoll.ButtonText            = ButtonText;
             viewPoll.OnAfterVoted         += viewPoll_OnAfterVoted;
             viewPoll.PollSiteID            = CMSContext.CurrentSiteID;
             viewPoll.PollGroupID           = gi.GroupID;
         }
         else
         {
             viewPoll.Visible = false;
         }
     }
 }
예제 #13
0
    /// <summary>
    /// Approves member.
    /// </summary>
    public bool RejectMember()
    {
        // Check MANAGE permission for groups module
        if (!CheckPermissions("cms.groups", CMSAdminControl.PERMISSION_MANAGE, this.GroupID))
        {
            return(false);
        }

        EnsureMember();
        if ((this.gmi != null) && (CMSContext.CurrentUser != null))
        {
            // Set properties
            this.gmi.MemberApprovedByUserID = CMSContext.CurrentUser.UserID;
            this.gmi.MemberStatus           = GroupMemberStatus.Rejected;
            this.gmi.MemberApprovedWhen     = DataHelper.DATETIME_NOT_SELECTED;
            this.gmi.MemberRejectedWhen     = DateTime.Now;

            // Save to database
            GroupMemberInfoProvider.SetGroupMemberInfo(this.gmi);

            GroupInfo group = GroupInfoProvider.GetGroupInfo(this.GroupID);
            if ((group != null) && (group.GroupSendWaitingForApprovalNotification))
            {
                // Send notification email
                GroupMemberInfoProvider.SendNotificationMail("Groups.MemberRejected", CMSContext.CurrentSiteName, this.gmi, false);
            }

            this.lblMemberApproved.Text = GetApprovalInfoText(gmi.MemberApprovedWhen, gmi.MemberApprovedByUserID);
            this.lblMemberRejected.Text = GetApprovalInfoText(gmi.MemberRejectedWhen, gmi.MemberApprovedByUserID);
            return(true);
        }
        return(false);
    }
예제 #14
0
 /// <summary>
 /// Initializes the control properties.
 /// </summary>
 protected void SetupControl()
 {
     if (StopProcessing)
     {
         // Do nothing
     }
     else
     {
         ScriptHelper.RegisterBootstrapScripts(this.Page);
         pollsElem.IsLiveSite = true;
         pollsElem.HideWhenGroupIsNotSupplied = true;
         pollsElem.OnCheckPermissions        += pollsElem_OnCheckPermissions;
         GroupInfo gi = GroupInfoProvider.GetGroupInfo(GroupName, SiteContext.CurrentSiteName);
         if (gi != null)
         {
             pollsElem.GroupID = gi.GroupID;
             pollsElem.SiteID  = gi.GroupSiteID;
         }
         else
         {
             Visible = false;
         }
         pollsElem.ReloadData();
     }
 }
예제 #15
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Only community manager can delete group
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.Groups", CMSAdminControl.PERMISSION_MANAGE))
        {
            RedirectToCMSDeskAccessDenied("CMS.Groups", CMSAdminControl.PERMISSION_MANAGE);
        }

        int groupId = QueryHelper.GetInteger("groupid", 0);

        gi = GroupInfoProvider.GetGroupInfo(groupId);

        if (gi != null)
        {
            lblMsg.Style.Add("font-weight", "bold");
            mGroupListUrl = ResolveUrl(mGroupListUrl);

            // Pagetitle
            this.CurrentMaster.Title.TitleText  = GetString("group.deletegroup") + " \"" + HTMLHelper.HTMLEncode(gi.GroupDisplayName) + "\"";
            this.CurrentMaster.Title.TitleImage = GetImageUrl("CMSModules/CMS_Groups/groupdelete.png");

            // Initializes breadcrumbs
            string[,] breadcrumbs = new string[2, 3];
            breadcrumbs[0, 0]     = GetString("group.deletegroup.listlink");
            breadcrumbs[0, 1]     = mGroupListUrl;
            breadcrumbs[0, 2]     = "";
            breadcrumbs[1, 0]     = HTMLHelper.HTMLEncode(gi.GroupDisplayName);
            breadcrumbs[1, 1]     = "";
            breadcrumbs[1, 2]     = "";
            this.CurrentMaster.Title.Breadcrumbs = breadcrumbs;

            btnDelete.Click += new EventHandler(btnDelete_Click);
            btnCancel.Click += new EventHandler(btnCancel_Click);
        }
    }
예제 #16
0
    /// <summary>
    /// Deletes group. Called when the "Delete group" button is pressed.
    /// Expects the CreateGroup method to be run first.
    /// </summary>
    private bool DeleteGroup()
    {
        // Get the group
        GroupInfo deleteGroup = GroupInfoProvider.GetGroupInfo("MyNewGroup", CMSContext.CurrentSiteName);

        // Delete the group
        GroupInfoProvider.DeleteGroupInfo(deleteGroup);

        return(deleteGroup != null);
    }
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            // Get group info
            GroupInfo gi = null;
            if (((GroupName == "") || GroupName == GroupInfoProvider.CURRENT_GROUP) && (CommunityContext.CurrentGroup != null))
            {
                gi = CommunityContext.CurrentGroup;
            }
            else
            {
                gi = GroupInfoProvider.GetGroupInfo(GroupName, SiteContext.CurrentSiteName);
            }

            if (gi != null)
            {
                // Get alternative form info
                AlternativeFormInfo afi = AlternativeFormInfoProvider.GetAlternativeFormInfo(AlternativeFormName);
                if (afi != null)
                {
                    // Initialize data form
                    formElem.Visible = true;
                    formElem.Info    = gi;
                    formElem.AlternativeFormFullName = AlternativeFormName;
                    formElem.SubmitButton.Visible    = false;
                    formElem.IsLiveSite = true;
                }
                else
                {
                    lblError.Text      = String.Format(GetString("altform.formdoesntexists"), AlternativeFormName);
                    lblError.Visible   = true;
                    plcContent.Visible = false;
                }
            }
            else
            {
                // Hide data form
                formElem.Visible     = false;
                lblNoProfile.Visible = true;
                lblNoProfile.Text    = NoProfileText;
            }
        }
    }
예제 #18
0
 /// <summary>
 /// Initializes the control properties.
 /// </summary>
 protected void SetupControl()
 {
     if (StopProcessing)
     {
         // Do nothing
     }
     else
     {
         membersElem.HideWhenGroupIsNotSupplied = true;
         membersElem.OnCheckPermissions        += membersElem_OnCheckPermissions;
         GroupInfo gi = GroupInfoProvider.GetGroupInfo(GroupName, SiteContext.CurrentSiteName);
         if (gi != null)
         {
             membersElem.GroupID = gi.GroupID;
         }
     }
 }
예제 #19
0
    public void RaisePostBackEvent(string eventArgument)
    {
        if (!CheckPermissions("cms.groups", PERMISSION_MANAGE, GroupID))
        {
            return;
        }

        string[] args = eventArgument.Split(';');

        if (args.Length == 2)
        {
            // Get info on currently selected item
            int permission = Convert.ToInt32(args[0]);
            int access     = Convert.ToInt32(args[1]);

            GroupInfo group = GroupInfoProvider.GetGroupInfo(GroupID);
            if (group != null)
            {
                // Update forum permission access information
                switch (permission)
                {
                case 0:
                    // Set 'AllowCreate' permission to specified access
                    group.AllowCreate = (SecurityAccessEnum)access;
                    break;

                case 1:
                    // Set 'AllowDelete' permission to specified access
                    group.AllowDelete = ((SecurityAccessEnum)access);
                    break;

                case 2:
                    // Set 'AllowModify' permission to specified access
                    group.AllowModify = (SecurityAccessEnum)access;
                    break;

                default:
                    break;
                }

                // Save changes to the forum
                GroupInfoProvider.SetGroupInfo(group);
            }
        }
    }
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    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, SiteContext.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();
        }
    }
예제 #21
0
    /// <summary>
    /// Gets and updates group. Called when the "Get and update group" button is pressed.
    /// Expects the CreateGroup method to be run first.
    /// </summary>
    private bool GetAndUpdateGroup()
    {
        // Get the group
        GroupInfo updateGroup = GroupInfoProvider.GetGroupInfo("MyNewGroup", CMSContext.CurrentSiteName);

        if (updateGroup != null)
        {
            // Update the properties
            updateGroup.GroupDisplayName = updateGroup.GroupDisplayName.ToLowerCSafe();

            // Save the changes
            GroupInfoProvider.SetGroupInfo(updateGroup);

            return(true);
        }

        return(false);
    }
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            forumsElem.HideWhenGroupIsNotSupplied = true;
            forumsElem.OnCheckPermissions        += new CMSAdminControl.CheckPermissionsEventHandler(forumsElem_OnCheckPermissions);

            GroupInfo gi = GroupInfoProvider.GetGroupInfo(GroupName, CMSContext.CurrentSiteName);
            if (gi != null)
            {
                forumsElem.GroupID = gi.GroupID;
            }
        }
    }
예제 #23
0
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            groupPermissions.OnCheckPermissions += groupPermissions_OnCheckPermissions;

            GroupInfo gi = GroupInfoProvider.GetGroupInfo(GroupName, SiteContext.CurrentSiteName);
            if (gi != null)
            {
                groupPermissions.GroupID = gi.GroupID;
            }
            else
            {
                Visible = false;
            }
        }
    }
예제 #24
0
 /// <summary>
 /// Initializes the control properties.
 /// </summary>
 protected void SetupControl()
 {
     if (StopProcessing)
     {
         // Do nothing
     }
     else
     {
         rolesElem.HideWhenGroupIsNotSupplied = true;
         rolesElem.OnCheckPermissions        += rolesElem_OnCheckPermissions;
         GroupInfo gi = GroupInfoProvider.GetGroupInfo(GroupName, CMSContext.CurrentSiteName);
         if (gi != null)
         {
             rolesElem.GroupID = gi.GroupID;
             rolesElem.SiteID  = CMSContext.CurrentSiteID;
         }
         else
         {
             Visible = false;
         }
     }
 }
예제 #25
0
 /// <summary>
 /// Initializes the control properties.
 /// </summary>
 protected void SetupControl()
 {
     if (StopProcessing)
     {
         // Do nothing
     }
     else
     {
         groupEditElem.HideWhenGroupIsNotSupplied = true;
         groupEditElem.OnCheckPermissions        += groupEditElem_OnCheckPermissions;
         GroupInfo gi = GroupInfoProvider.GetGroupInfo(GroupName, CMSContext.CurrentSiteName);
         if (gi != null)
         {
             groupEditElem.AllowChangeGroupDisplayName = AllowChangeGroupDisplayName;
             groupEditElem.GroupID          = gi.GroupID;
             groupEditElem.SiteID           = gi.GroupSiteID;
             groupEditElem.AllowSelectTheme = AllowSelectTheme;
         }
         else
         {
             Visible = false;
         }
     }
 }
예제 #26
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get the group ID and the group InfoObject
        groupId = QueryHelper.GetInteger("groupid", 0);
        GroupInfo gi = GroupInfoProvider.GetGroupInfo(groupId);

        if (gi != null)
        {
            groupDisplayName = HTMLHelper.HTMLEncode(gi.GroupDisplayName);
        }

        // Page title
        this.CurrentMaster.Title.TitleText  = GetString("Group.EditHeaderCaption");
        this.CurrentMaster.Title.TitleImage = GetImageUrl("Objects/Community_Group/object.png");

        this.CurrentMaster.Title.HelpTopicName = "group_general";
        this.CurrentMaster.Title.HelpName      = "helpTopic";

        // Pagetitle breadcrumbs
        string[,] pageTitleTabs = new string[2, 3];
        pageTitleTabs[0, 0]     = GetString("Group.ItemListLink");
        pageTitleTabs[0, 1]     = "~/CMSModules/Groups/Tools/Group_List.aspx";
        pageTitleTabs[0, 2]     = "_parent";
        pageTitleTabs[1, 0]     = groupDisplayName;
        pageTitleTabs[1, 1]     = "";
        pageTitleTabs[1, 2]     = "";
        this.CurrentMaster.Title.Breadcrumbs = pageTitleTabs;

        // Tabs
        string[,] tabs = new string[9, 4];
        tabs[0, 0]     = GetString("General.General");
        tabs[0, 1]     = "SetHelpTopic('helpTopic', 'group_general');";
        tabs[0, 2]     = "Group_Edit_General.aspx?groupID=" + groupId;
        tabs[1, 0]     = GetString("General.Security");
        tabs[1, 1]     = "SetHelpTopic('helpTopic', 'group_security');";
        tabs[1, 2]     = "Security/Security.aspx?groupID=" + groupId;
        tabs[2, 0]     = GetString("Group.Members");
        tabs[2, 1]     = "SetHelpTopic('helpTopic', 'group_members_list');";
        tabs[2, 2]     = "Members/Member_List.aspx?groupID=" + groupId;

        if (ResourceSiteInfoProvider.IsResourceOnSite("CMS.Roles", CMSContext.CurrentSiteName))
        {
            tabs[3, 0] = GetString("general.roles");
            tabs[3, 1] = "SetHelpTopic('helpTopic', 'group_roles_list');";
            tabs[3, 2] = "Roles/Role_List.aspx?groupID=" + groupId;
        }

        if (ResourceSiteInfoProvider.IsResourceOnSite("CMS.Forums", CMSContext.CurrentSiteName))
        {
            tabs[4, 0] = GetString("group_general.forums");
            tabs[4, 1] = "SetHelpTopic('helpTopic', 'forum_list');";
            tabs[4, 2] = "Forums/Groups/ForumGroups_List.aspx?groupid=" + groupId;
        }

        if (ResourceSiteInfoProvider.IsResourceOnSite("CMS.MediaLibrary", CMSContext.CurrentSiteName))
        {
            tabs[5, 0] = GetString("Group.MediaLibrary");
            tabs[5, 1] = "SetHelpTopic('helpTopic', 'library_list');";
            tabs[5, 2] = "MediaLibrary/Library_List.aspx?groupid=" + groupId;
        }

        if (ResourceSiteInfoProvider.IsResourceOnSite("CMS.MessageBoards", CMSContext.CurrentSiteName))
        {
            tabs[6, 0] = GetString("Group.MessageBoards");
            tabs[6, 1] = "SetHelpTopic('helpTopic', 'group_messageboard');";
            tabs[6, 2] = "MessageBoards/Boards_Default.aspx?groupid=" + groupId;
        }

        if (ResourceSiteInfoProvider.IsResourceOnSite("CMS.Polls", CMSContext.CurrentSiteName))
        {
            tabs[7, 0] = GetString("Group.Polls");
            tabs[7, 1] = "SetHelpTopic('helpTopic', 'polls_list');";
            tabs[7, 2] = "Polls/Polls_List.aspx?groupID=" + groupId;
        }

        // Check whether license for project management is avilable
        // if no hide project management tab
        if (LicenseHelper.CheckFeature(URLHelper.GetCurrentDomain(), FeatureEnum.ProjectManagement))
        {
            // Check site availability
            if (ResourceSiteInfoProvider.IsResourceOnSite("CMS.ProjectManagement", CMSContext.CurrentSiteName))
            {
                tabs[8, 0] = ResHelper.GetString("pm.project.list");
                tabs[8, 1] = "SetHelpTopic('helpTopic', 'pm_projects');";
                tabs[8, 2] = "ProjectManagement/Project/List.aspx?groupid=" + groupId;
            }
        }

        this.CurrentMaster.Tabs.Tabs      = tabs;
        this.CurrentMaster.Tabs.UrlTarget = "content";
    }
예제 #27
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Visible)
        {
            EnableViewState = false;
        }

        if (StopProcessing)
        {
            // Do nothing
            Visible = false;
            groupPictureEdit.StopProcessing = true;
            groupPageURLElem.StopProcessing = true;
        }
        else
        {
            string currSiteName = SiteContext.CurrentSiteName;
            plcGroupLocation.Visible             = DisplayAdvanceOptions;
            plcAdvanceOptions.Visible            = DisplayAdvanceOptions;
            groupPageURLElem.EnableSiteSelection = false;
            plcOnline.Visible = ActivitySettingsHelper.ActivitiesEnabledAndModuleLoaded(currSiteName);

            ctrlSiteSelectStyleSheet.CurrentSelector.ReturnColumnName = "StyleSheetID";
            ctrlSiteSelectStyleSheet.SiteId             = SiteContext.CurrentSiteID;
            ctrlSiteSelectStyleSheet.AllowEditButtons   = false;
            ctrlSiteSelectStyleSheet.IsLiveSite         = IsLiveSite;
            lblStyleSheetName.AssociatedControlClientID = ctrlSiteSelectStyleSheet.CurrentSelector.ClientID;

            // Is allow edit display name is set on live site
            if ((AllowChangeGroupDisplayName) && (IsLiveSite))
            {
                if (!plcAdvanceOptions.Visible)
                {
                    plcCodeName.Visible = false;
                }
                plcAdvanceOptions.Visible = true;
            }

            // Web parts theme selector visibility
            if ((!AllowSelectTheme) && (IsLiveSite))
            {
                plcStyleSheetSelector.Visible = false;
            }

            RaiseOnCheckPermissions(PERMISSION_READ, this);

            if (StopProcessing)
            {
                return;
            }

            if ((GroupID == 0) && HideWhenGroupIsNotSupplied)
            {
                Visible = false;
                return;
            }

            InitializeForm();

            groupInfo = GroupInfoProvider.GetGroupInfo(GroupID);
            if (groupInfo != null)
            {
                if (!RequestHelper.IsPostBack())
                {
                    // Handle existing Group editing - prepare the data
                    if (GroupID > 0)
                    {
                        HandleExistingGroup();
                    }
                }

                groupPictureEdit.GroupInfo = groupInfo;

                // UI Tools theme selector visibility
                if ((!IsLiveSite) && (groupInfo.GroupNodeGUID == Guid.Empty))
                {
                    plcStyleSheetSelector.Visible = false;
                }

                // Init theme selector
                if (plcStyleSheetSelector.Visible)
                {
                    if (!URLHelper.IsPostback())
                    {
                        TreeProvider tree = new TreeProvider(MembershipContext.AuthenticatedUser);
                        if (groupInfo.GroupNodeGUID != Guid.Empty)
                        {
                            TreeNode node = tree.SelectSingleNode(groupInfo.GroupNodeGUID, TreeProvider.ALL_CULTURES, SiteContext.CurrentSiteName);
                            if (node != null)
                            {
                                ctrlSiteSelectStyleSheet.Value = node.DocumentStylesheetID;
                            }
                        }
                    }
                }
            }
            else
            {
                plcStyleSheetSelector.Visible = false;
            }

            txtDescription.IsLiveSite   = IsLiveSite;
            groupPictureEdit.IsLiveSite = IsLiveSite;
            groupPageURLElem.IsLiveSite = IsLiveSite;
        }
    }
예제 #28
0
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    protected void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            GroupInfo group = null;

            // Try to get group information from query string
            int groupId = QueryHelper.GetInteger("groupid", 0);
            group = (groupId > 0) ? GroupInfoProvider.GetGroupInfo(groupId) : CommunityContext.CurrentGroup;

            if (group != null)
            {
                // Check whether group is approved
                if (!group.GroupApproved)
                {
                    lblAccessInfo.Text = GetString("group.groupnotavailable");
                }
                else
                {
                    // Check permissions for current user
                    switch (group.GroupAccess)
                    {
                    // Anybody can view the content
                    default:
                    case SecurityAccessEnum.AllUsers:
                        // If content for selected group is available for all users redirect back to group page
                        RedirectToGroupPage(group);
                        break;

                    // Site members can view the content
                    case SecurityAccessEnum.AuthenticatedUsers:
                        if (!AuthenticationHelper.IsAuthenticated())
                        {
                            lblAccessInfo.Text = String.Format(SiteMembersOnlyText, "<a title=\"Sign in\" href=\"" + URLHelper.UpdateParameterInUrl(LoginURL, "returnurl", HTMLHelper.EncodeForHtmlAttribute(RequestContext.CurrentURL)) + "\">", "</a>");
                        }
                        else
                        {
                            RedirectToGroupPage(group);
                        }
                        break;

                    // Only group members can view the content
                    case SecurityAccessEnum.GroupMembers:
                        if (!MembershipContext.AuthenticatedUser.IsGroupMember(group.GroupID))
                        {
                            // If current user is public show text with sign in link
                            if (!AuthenticationHelper.IsAuthenticated())
                            {
                                lblAccessInfo.Text = String.Format(GroupMembersOnlyText, "<a title=\"Sign in\" href=\"" + URLHelper.UpdateParameterInUrl(LoginURL, "returnurl", HTMLHelper.EncodeForHtmlAttribute(RequestContext.CurrentURL)) + "\">", "</a>");
                            }
                            else
                            {
                                // For authenticate users display text with join the group text
                                string link = string.Empty;

                                // If join group path is defined use it, otherwise display join the group dialog
                                if (String.IsNullOrEmpty(JoinGroupPath))
                                {
                                    // Register the dialog script
                                    ScriptHelper.RegisterDialogScript(Page);

                                    string script = ScriptHelper.GetScript("function JoinToGroupAccessRequest() {\n" +
                                                                           "modalDialog('" + AuthenticationHelper.ResolveDialogUrl("~/CMSModules/Groups/CMSPages/JoinTheGroup.aspx") + "?groupid=" + group.GroupID + "','requestJoinToGroup', 500, 180); \n" +
                                                                           " } \n");
                                    ScriptHelper.RegisterClientScriptBlock(this, typeof(string), "JoinToGroupAccessRequest", script);

                                    link = "<a title=\"" + GetString("group.joingroup") + "\" href=\"" + HTMLHelper.EncodeForHtmlAttribute(RequestContext.CurrentURL) + "\" onclick=\"JoinToGroupAccessRequest(); return false;\">";
                                }
                                else
                                {
                                    link = "<a title=\"" + GetString("group.joingroup") + "\" href=\"" + JoinGroupPath + "\">";
                                }

                                lblAccessInfo.Text = String.Format(GroupMembersOnlyAuthenticatedText, link, "</a>");
                            }
                        }
                        else
                        {
                            RedirectToGroupPage(group);
                        }
                        break;
                    }
                }
            }
            else
            {
                Visible = false;
            }
        }
    }
    /// <summary>
    /// Initializes the control properties.
    /// </summary>
    public void SetupControl()
    {
        if (StopProcessing)
        {
            // Do nothing
        }
        else
        {
            // Clear placeholder first
            plcHolder.Controls.Clear();

            // Group settings
            ForumDivider1.ForumLayout = ForumLayout;

            // Friendly URLs
            ForumDivider1.UseFriendlyURL       = UseFriendlyURL;
            ForumDivider1.FriendlyURLExtension = FriendlyURLExtension;
            ForumDivider1.FriendlyBaseURL      = FriendlyBaseURL;

            // Post options
            ForumDivider1.DisplayAttachmentImage     = DisplayAttachmentImage;
            ForumDivider1.AttachmentImageMaxSideSize = AttachmentImageMaxSideSize;
            ForumDivider1.EnableAvatars         = EnableAvatars;
            ForumDivider1.AvatarMaxSideSize     = AvatarMaxSideSize;
            ForumDivider1.ViewMode              = ThreadViewMode;
            ForumDivider1.EnableFavorites       = EnableFavorites;
            ForumDivider1.EnableSignature       = EnableSignature;
            ForumDivider1.MaxRelativeLevel      = MaxRelativeLevel;
            ForumDivider1.DisplayBadgeInfo      = DisplayBadgeInfo;
            ForumDivider1.RedirectToUserProfile = RedirectToUserProfile;
            ForumDivider1.BaseURL           = BaseURL;
            ForumDivider1.UnsubscriptionURL = UnsubscriptionURL;
            ForumDivider1.EnableFriendship  = EnableFriendship && UIHelper.IsFriendsModuleEnabled(CMSContext.CurrentSiteName);
            ForumDivider1.EnableMessaging   = EnableMessaging;

            // Behaviour
            ForumDivider1.EnableSubscription       = EnableSubscription;
            ForumDivider1.EnableOnSiteManagement   = OnSiteManagement;
            ForumDivider1.HideForumForUnauthorized = HideForumForUnauthorized;
            ForumDivider1.RedirectUnauthorized     = RedirectUnauthorized;
            ForumDivider1.LogonPageURL             = LogonPageURL;
            ForumDivider1.AccessDeniedPageURL      = AccessDeniedPageURL;

            // Abuse report
            ForumDivider1.AbuseReportAccess = AbuseReportAccess;
            ForumDivider1.AbuseReportRoles  = AbuseReportRoles;

            //Paging
            ForumDivider1.EnableThreadPaging = EnableThreadPaging;
            ForumDivider1.ThreadPageSize     = ThreadPageSize;
            ForumDivider1.EnablePostsPaging  = EnablePostsPaging;
            ForumDivider1.PostsPageSize      = PostsPageSize;

            // Tree forum properties
            ForumDivider1.ShowMode   = ShowMode;
            ForumDivider1.ExpandTree = ExpandTree;

            if (CommunityContext.CurrentGroup != null)
            {
                ForumDivider1.CommunityGroupID = CommunityContext.CurrentGroup.GroupID;
            }

            if (UseUpdatePanel)
            {
                ForumDivider1.UseRedirectAfterAction = false;
            }

            string    path = ResolveUrl("~/CMSModules/Forums/Controls/ForumDivider.ascx");
            GroupInfo gi   = GroupInfoProvider.GetGroupInfo(GroupName, CMSContext.CurrentSiteName);
            if (gi != null)
            {
                forumGroups = ForumGroupInfoProvider.GetGroups("GroupGroupID = " + gi.GroupID + "AND ((SELECT Count(ForumID) FROM Forums_Forum WHERE (ForumOpen = 1) AND ForumGroupID = GroupID ) > 0)", "GroupOrder");
                if (!DataHelper.DataSourceIsEmpty(forumGroups))
                {
                    int  ctrlId   = 0;
                    bool wasAdded = false;

                    // Load all the groups
                    foreach (DataRow dr in forumGroups.Tables[0].Rows)
                    {
                        Control ctrl = this.LoadUserControl(path);
                        if (ctrl != null)
                        {
                            ctrl.ID = "groupElem" + ctrlId;
                            ForumViewer frmv = ctrl as ForumViewer;
                            if (frmv != null)
                            {
                                // Copy values
                                ForumDivider1.CopyValues(frmv);
                                if (wasAdded && !String.IsNullOrEmpty(GroupsSeparator))
                                {
                                    plcHolder.Controls.Add(new LiteralControl(GroupsSeparator));
                                }

                                frmv.GroupID = ValidationHelper.GetInteger(dr["GroupID"], 0);
                                plcHolder.Controls.Add(frmv);
                                wasAdded = true;
                            }
                        }

                        ctrlId++;
                    }
                }
            }
        }
    }
예제 #30
0
    /// <summary>
    /// Accepts invitation.
    /// </summary>
    protected void btnAccept_OnCommand(object sender, CommandEventArgs e)
    {
        if (e.CommandName == "accept")
        {
            // Accept
            int            invitationId = ValidationHelper.GetInteger(e.CommandArgument, 0);
            InvitationInfo invitation   = InvitationInfoProvider.GetInvitationInfo(invitationId);

            // Check if time is correct
            if ((invitation.InvitationValidTo == DateTimeHelper.ZERO_TIME) ||
                (invitation.InvitationValidTo >= DateTime.Now))
            {
                GroupInfo group = GroupInfoProvider.GetGroupInfo(invitation.InvitationGroupID);
                if (group != null)
                {
                    // Check if invitation is from group member
                    if (!GroupMemberInfoProvider.IsMemberOfGroup(invitation.InvitedUserID, invitation.InvitationGroupID))
                    {
                        // Transfer user name to user info
                        if (userInfo == null)
                        {
                            userInfo = UserInfoProvider.GetUserInfo(UserName);
                        }
                        if (userInfo != null)
                        {
                            // Create group member info object
                            GroupMemberInfo groupMember = new GroupMemberInfo();
                            groupMember.MemberInvitedByUserID = invitation.InvitedByUserID;
                            groupMember.MemberUserID          = userInfo.UserID;
                            groupMember.MemberGroupID         = invitation.InvitationGroupID;
                            groupMember.MemberJoined          = DateTime.Now;

                            // Set proper status depending on group settings
                            switch (group.GroupApproveMembers)
                            {
                            case GroupApproveMembersEnum.ApprovedCanJoin:
                                groupMember.MemberStatus = GroupMemberStatus.WaitingForApproval;
                                lblInfo.Text             = MemberWaiting.Replace("##GROUPNAME##", HTMLHelper.HTMLEncode(group.GroupDisplayName)) + "<br /><br />";
                                break;

                            default:
                                groupMember.MemberApprovedByUserID = invitation.InvitedByUserID;
                                groupMember.MemberApprovedWhen     = DateTime.Now;
                                groupMember.MemberStatus           = GroupMemberStatus.Approved;
                                lblInfo.Text = MemberJoined.Replace("##GROUPNAME##", HTMLHelper.HTMLEncode(group.GroupDisplayName)) + "<br /><br />";
                                break;
                            }
                            // Store info object to database
                            GroupMemberInfoProvider.SetGroupMemberInfo(groupMember);

                            // Delete all invitations to specified group for specified user
                            string whereCondition = "InvitationGroupID = " + invitation.InvitationGroupID + " AND (InvitedUserID=" + userInfo.UserID + ")";
                            InvitationInfoProvider.DeleteInvitations(whereCondition);

                            // Log activity
                            LogJoinActivity(groupMember, group);
                        }
                    }
                    else
                    {
                        // Show error message and delete invitation
                        lblInfo.Text     = UserIsAlreadyMember.Replace("##GROUPNAME##", HTMLHelper.HTMLEncode(group.GroupDisplayName)) + "<br /><br />";
                        lblInfo.CssClass = "InvitationErrorLabel";
                        InvitationInfoProvider.DeleteInvitationInfo(invitation);
                    }
                }
                else
                {
                    // Show error message and delete invitation
                    lblInfo.Text     = GroupNoLongerExists + "<br /><br />";
                    lblInfo.CssClass = "InvitationErrorLabel";
                    InvitationInfoProvider.DeleteInvitationInfo(invitation);
                }
            }
            else
            {
                // Show error message and delete invitation
                lblInfo.Text     = InvitationIsNotValid + "<br /><br />";
                lblInfo.CssClass = "InvitationErrorLabel";
                InvitationInfoProvider.DeleteInvitationInfo(invitation);
            }

            lblInfo.Visible = true;
            BindData();
        }
    }