// Init event
    void CMSModules_Chat_CMSPages_OfflineSupportForm_Init(object sender, EventArgs e)
    {
        if (!RequestHelper.IsPostBack())
        {
            int roomID = QueryHelper.GetInteger("roomid", 0);

            try
            {
                if (ChatUserHelper.CheckJoinRoomRights(roomID))
                {
                    ChatRoomUserInfo chatRoomUser = ChatRoomUserInfoProvider.GetChatRoomUser(ChatOnlineUserHelper.GetLoggedInChatUser().ChatUserID, roomID);

                    IEnumerable <MessageData> messages = ChatMessageInfoProvider.GetLatestMessages(roomID, 300, chatRoomUser.ChatRoomUserJoinTime);

                    StringBuilder sb = new StringBuilder();

                    // Iterate backwards over the messages, take only non-system messages
                    foreach (MessageData message in messages.Where(m => !m.SystemMessageType.IsSystemMessage()).Reverse())
                    {
                        sb.AppendFormat("{0} {1}: {2}", message.LastModified, message.Nickname, message.MessageText);
                        sb.NewLine();
                    }

                    messageEditElem.MessageText = sb.ToString();
                }
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("CMSModules_Chat_CMSPages_OfflineSupportForm", "GET ROOM MESSAGES", ex);
            }
        }
    }
    void Grid_OnAction(string actionName, object actionArgument)
    {
        // If room is global also modifyglobal permission has to be checked.. add it to every action which has modify permisison
        ((CMSChatPage)Page).CheckModifyPermission(SiteID);

        int chatRoomUserID = ValidationHelper.GetInteger(actionArgument, 0);

        if (chatRoomUserID == 0)
        {
            return;
        }

        ChatRoomUserInfo chatRoomUser = ChatRoomUserInfoProvider.GetChatRoomUser(chatRoomUserID);

        if (chatRoomUser == null)
        {
            return;
        }

        // Can't perform any action in one to one support room
        if (ChatRoom.IsOneToOneSupport)
        {
            ShowError(GetString("chat.cantrevokerightsofsupportroomcreator"));
            return;
        }

        switch (actionName)
        {
        case "kick":
            if (!chatRoomUser.IsOnline)
            {
                ShowError(GetString("chat.cantkickofflineuser"));
                return;
            }
            ChatRoomUserHelper.KickUserFromRoom(ChatRoomID, ChatUserInfoProvider.GetChatUserInfo(chatRoomUser.ChatRoomUserChatUserID), ChatUserHelper.GetChatUserFromCMSUser(MembershipContext.AuthenticatedUser));
            break;

        case "revoke":
            if (chatRoomUser.ChatRoomUserAdminLevel == AdminLevelEnum.Creator)
            {
                ShowError(GetString("chat.cantrevokecreatorrights"));
                return;
            }
            ChatRoomUserHelper.KickUserPermanentlyFromRoom(ChatRoomID, ChatUserInfoProvider.GetChatUserInfo(chatRoomUser.ChatRoomUserChatUserID), ChatUserHelper.GetChatUserFromCMSUser(MembershipContext.AuthenticatedUser));
            break;
        }
    }
Exemplo n.º 3
0
    void EditForm_OnBeforeValidate(object sender, EventArgs e)
    {
        int chatUserID;

        if (IsEditing)
        {
            chatUserID = TypedEditedObject.ChatRoomUserChatUserID;
        }
        else
        {
            int userID = ValidationHelper.GetInteger(fUserSelector.Value, 0);

            UserInfo user = UserInfoProvider.GetUserInfo(userID);
            if (user == null)
            {
                ShowErrorAndStopProcessing("chat.pleaseselectuser");

                return;
            }

            if (user.IsPublic())
            {
                ShowErrorAndStopProcessing("chat.cantaddpermissionstopublicuser");

                return;
            }

            chatUserID = ChatUserHelper.GetChatUserFromCMSUser(user).ChatUserID;

            ChatRoomUserInfo chatRoomUser = ChatRoomUserInfoProvider.GetChatRoomUser(chatUserID, ChatRoomID);

            // If user with already raised privilegies is beign created
            if ((chatRoomUser != null) && (chatRoomUser.ChatRoomUserAdminLevel >= (ChatRoom.ChatRoomPrivate ? AdminLevelEnum.Join : AdminLevelEnum.Admin)))
            {
                ShowErrorAndStopProcessing("chat.errror.userhasalreadyraisedprivilegies");
                return;
            }
        }
    }