// 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; } }
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; } } }