Beispiel #1
0
    void UIFormControl_OnBeforeDataRetrieval(object sender, EventArgs e)
    {
        // Set site id and other data if the room is new
        if ((UIContext.EditedObject == null) || (((ChatRoomInfo)UIContext.EditedObject).ChatRoomID <= 0))
        {
            IDataContainer data = UIFormControl.Data;
            data["ChatRoomCreatedByChatUserID"] = ChatUserHelper.GetChatUserFromCMSUser().ChatUserID;
            data["ChatRoomCreatedWhen"]         = DateTime.Now; // GETDATE() will be used on SQL Server side
            data["ChatRoomSiteID"] = SiteID;

            Guid guid = Guid.NewGuid();
            data["ChatRoomGUID"] = guid;

            EditingFormControl passwordEditingControl = UIFormControl.FieldEditingControls["chatroompassword"];
            string             password = passwordEditingControl.Value.ToString();
            passwordEditingControl.Value = ChatRoomHelper.GetRoomPasswordHash(password, guid);
        }
        else
        {
            ChatRoomInfo       room           = UIContext.EditedObject as ChatRoomInfo;
            EditingFormControl enabledControl = UIFormControl.FieldEditingControls["chatroomenabled"];
            bool enabled = (bool)enabledControl.Value;
            if (room.ChatRoomEnabled != enabled)
            {
                if (enabled)
                {
                    ChatRoomHelper.EnableChatRoom(room.ChatRoomID);
                }
                else
                {
                    ChatRoomHelper.DisableChatRoom(room.ChatRoomID);
                }
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        Grid.OnAction            += new OnActionEventHandler(Grid_OnAction);
        Grid.OnExternalDataBound += new OnExternalDataBoundEventHandler(gridElem_OnExternalDataBound);

        if (FromSettings)
        {
            Grid.EditActionUrl = "~/CMSModules/Chat/Pages/Tools/ChatSupportCannedResponse/EditFromSettings.aspx?responseId={0}";

            Grid.WhereCondition = "ChatSupportCannedResponseChatUserID = " + ChatUserHelper.GetChatUserFromCMSUser().ChatUserID;
        }
        else
        {
            Grid.EditActionUrl = "~/CMSModules/Chat/Pages/Tools/ChatSupportCannedResponse/Edit.aspx?responseId={0}&siteid=" + SiteID;

            // Single site is selected.
            if (SiteID > 0)
            {
                Grid.WhereCondition = string.Format("ChatSupportCannedResponseSiteID = {0} AND ChatSupportCannedResponseChatUserID IS NULL", SiteID);
            }
            // Global is selected
            else if (SiteID == -4)
            {
                Grid.WhereCondition = "ChatSupportCannedResponseSiteID IS NULL AND ChatSupportCannedResponseChatUserID IS NULL";
            }
            // Global and current is selected
            else if (SiteID == -5)
            {
                Grid.WhereCondition = string.Format("(ChatSupportCannedResponseSiteID = {0} OR ChatSupportCannedResponseSiteID IS NULL) AND ChatSupportCannedResponseChatUserID IS NULL", SiteContext.CurrentSiteID);
            }
        }

        RegisterRefreshUsingPostBackScript();
    }
    // 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);
            }
        }
    }
Beispiel #4
0
    void EditForm_OnBeforeSave(object sender, EventArgs e)
    {
        int chatUserID;

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

            chatUserID = ChatUserHelper.GetChatUserFromCMSUser(UserInfoProvider.GetUserInfo(userID)).ChatUserID;
        }

        AdminLevelEnum adminLevel = ChatHelper.GetEnum(Convert.ToInt32(fdrpAdminLevel.SelectedValue), AdminLevelEnum.None);

        ChatRoomUserHelper.SetChatAdminLevel(ChatRoomID, chatUserID, adminLevel);


        URLHelper.Redirect(string.Format("List.aspx?roomid={0}&saved=1", ChatRoomID));

        // Stop processing, because save was handled manually
        UIFormControl.StopProcessing = true;
    }
Beispiel #5
0
    protected void Page_Load(object sender, EventArgs e)
    {
        // Get information about chat room this window has been opened for.
        int roomId = QueryHelper.GetInteger("windowroomid", 0);

        try
        {
            ChatUserHelper.VerifyChatUserHasJoinRoomRights(roomId);
        }
        catch (ChatServiceException)
        {
            DisplayError();

            return;
        }
        ChatRoomInfo room = ChatRoomInfoProvider.GetChatRoomInfo(roomId);

        if (room == null)
        {
            DisplayError();

            return;
        }

        // Script references insertion
        ScriptHelper.RegisterJQuery(Page);
        ChatScriptHelper.RegisterChatManager(Page);
        ChatScriptHelper.RegisterChatNotificationManager(Page);
        ScriptHelper.RegisterScriptFile(Page, "~/CMSScripts/jquery/jquery-resize.js");
        ScriptHelper.RegisterScriptFile(Page, "~/CMSModules/Chat/Pages/Scripts/ChatRoomWindow.js");

        SetWebpartsUp(room.ChatRoomIsSupport);
        lblTitle.Text = HTMLHelper.HTMLEncode(room.ChatRoomDisplayName) + " – " + GetString(room.ChatRoomIsSupport ? "chat.title.support" : "chat.title.privateconversation");
        string json = JsonConvert.SerializeObject(
            new
        {
            roomId,
            pnlChatRoomWindowClientId = pnlChatRoomWindow.ClientID,
            pnlTopClientId            = pnlTop.ClientID,
            pnlBottomClientId         = pnlBottom.ClientID,
            ChatRoomMessagesClientId  = ChatRoomMessagesElem.ClientID,
            btnCloseClientId          = btnCloseWindow.ClientID,
            isSupport = room.ChatRoomIsSupport,
            notificationManagerOptions = new
            {
                eventName   = "newmessage",
                soundFile   = ChatSettingsProvider.EnableSoundSupportChat ? ResolveUrl("~/CMSModules/Chat/CMSPages/Sound/Chat_message.mp3") : String.Empty,
                notifyTitle = GetString("chat.general.newmessages")
            },
            title = lblTitle.Text
        },
            new JsonSerializerSettings {
            StringEscapeHandling = StringEscapeHandling.EscapeHtml
        }
            );
        string startupScript = String.Format("ChatSupportWindow({0});", json);

        ScriptHelper.RegisterStartupScript(Page, typeof(string), "ChatSupportWindow", startupScript, true);
    }
Beispiel #6
0
    /// <summary>
    /// Validates form.
    /// </summary>
    private void OnBeforeValidate(object sender, EventArgs e)
    {
        int      selectedCMSUserId = ValidationHelper.GetInteger(Control.GetFieldValue("ChatUserUserID"), 0);
        UserInfo user     = UserInfoProvider.GetUserInfo(selectedCMSUserId);
        string   nickname = Control.GetFieldValue("ChatUserNickname") as string;

        // Validate form - user and nickname fields must be filled
        if ((user == null) || (String.IsNullOrWhiteSpace(nickname)))
        {
            ShowErrorAndStopProcessing("chat.user.erroridnickname");

            return;
        }

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

            return;
        }

        // Creating a new object
        if (Control.IsInsertMode)
        {
            // Check if userID is unique in ChatUser table if adding a new user
            if (ChatUserInfoProvider.GetChatUserByUserID(selectedCMSUserId) != null)
            {
                ShowErrorAndStopProcessing("chat.user.erroridunique");

                return;
            }
        }

        // Check nickname only if text has been changed
        ChatUserInfo editedChatUser = Control.EditedObject as ChatUserInfo;

        if (Control.IsInsertMode || (nickname != editedChatUser.ChatUserNickname))
        {
            try
            {
                ChatUserHelper.VerifyNicknameIsValid(ref nickname);
            }
            catch (ChatServiceException ex)
            {
                ShowErrorAndStopProcessing(ex.StatusMessage);

                return;
            }


            // Check if Nickname is unique in registered users
            if (!ChatUserHelper.IsNicknameAvailable(nickname))
            {
                ShowErrorAndStopProcessing("chat.user.errornickunique");

                return;
            }
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        int roomID = QueryHelper.GetInteger("roomid", 0);

        ChatRoomMessages.RoomID = roomID;

        ChatRoomInfo room = ChatRoomInfoProvider.GetChatRoomInfo(roomID);

        if (room != null)
        {
            ChatOnlineUserHelper.LogInCurrentCMSUser();
            ChatRoomUserHelper.JoinUserToRoom(room.ChatRoomID, ChatUserHelper.GetChatUserFromCMSUser(), room.ChatRoomPassword, false);
        }

        ChatRoomUsers.ChatUserTransformationName = "Chat.Transformations.CMSChatRoomUser";
        ChatRoomUsers.EnableFiltering            = true;
        ChatRoomUsers.ShowFilterItems            = 20;
        ChatRoomUsers.EnablePaging = true;
        ChatRoomUsers.PagingItems  = 30;
        ChatRoomUsers.ChatErrorDeleteAllButtonTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";
        ChatRoomUsers.ChatErrorTransformationName    = "Chat.Transformations.CMSChatError";
        ChatRoomUsers.ChatMessageTransformationName  = "Chat.Transformations.CMSChatMessage";
        ChatRoomUsers.ChatRoomUserTransformationName = "Chat.Transformations.CMSChatRoomUser";

        RoomName.ChatRoomNameTransformationName = "Chat.Transformations.CMSRoomName";
        RoomName.DisplayInitialTitle            = false;

        ChatNotification.NotificationTransformation = "Chat.Transformations.CMSChatNotification";
        ChatNotification.ChatErrorDeleteAllButtonTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";
        ChatNotification.ChatErrorTransformationName    = "Chat.Transformations.CMSChatError";
        ChatNotification.ChatMessageTransformationName  = "Chat.Transformations.CMSChatMessage";
        ChatNotification.ChatRoomUserTransformationName = "Chat.Transformations.CMSChatRoomUser";
        ChatNotification.EnableNotificationBubble       = false;

        ChatErrors.ErrorTransformationName           = "Chat.Transformations.CMSChatError";
        ChatErrors.ShowDeleteAllBtn                  = true;
        ChatErrors.ButtonDeleteAllTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";

        ChatRoomMessages.ChatMessageTransformationName = "Chat.Transformations.CMSChatMessage";
        ChatRoomMessages.Count     = 100;
        ChatRoomMessages.Direction = ChatRoomMessagesDirectionEnum.Down;


        // Registration to chat webservice
        AbstractCMSPage cmsPage = this.Page as AbstractCMSPage;

        if (cmsPage != null)
        {
            ChatHelper.RegisterChatSupportAJAXProxy(cmsPage);
        }
    }
Beispiel #8
0
 void UIFormControl_OnBeforeSave(object sender, EventArgs e)
 {
     // If creating a new canned response
     if (TypedEditedObject == null || TypedEditedObject.ChatSupportCannedResponseID <= 0)
     {
         if (!Personal)
         {
             EditForm.Data["ChatSupportCannedResponseChatUserID"] = null;
             EditForm.Data["ChatSupportCannedResponseSiteID"]     = SiteID;
         }
         else
         {
             EditForm.Data["ChatSupportCannedResponseChatUserID"] = ChatUserHelper.GetChatUserFromCMSUser().ChatUserID;
             EditForm.Data["ChatSupportCannedResponseSiteID"]     = null;
         }
     }
 }
    void UIFormControl_OnBeforeSave(object sender, EventArgs e)
    {
        // If creating new canned response
        if (TypedEditedObject == null)
        {
            if (QueryHelper.Contains("siteid"))
            {
                EditForm.Data["ChatSupportCannedResponseChatUserID"] = null;

                EditForm.Data["ChatSupportCannedResponseSiteID"] = SiteID;
            }
            else
            {
                EditForm.Data["ChatSupportCannedResponseChatUserID"] = ChatUserHelper.GetChatUserFromCMSUser().ChatUserID;
            }
        }
    }
Beispiel #10
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;
            }
        }
    }
    void CheckModifyPermissions(ChatSupportCannedResponseInfo cannedResponse)
    {
        if (cannedResponse.ChatSupportCannedResponseChatUserID.HasValue)
        {
            var currentUser = MembershipContext.AuthenticatedUser;

            if (!currentUser.IsAuthorizedPerResource("CMS.Chat", "EnterSupport"))
            {
                RedirectToAccessDenied("CMS.Chat", "EnterSupport");
            }

            if (cannedResponse.ChatSupportCannedResponseChatUserID.Value != ChatUserHelper.GetChatUserFromCMSUser().ChatUserID)
            {
                RedirectToAccessDenied(GetString("general.modifynotallowed"));
            }
        }
        else
        {
            // In "per site mode" Page is always CMSChatPage
            ((CMSChatPage)Page).CheckModifyPermission(cannedResponse.ChatSupportCannedResponseSiteID);
        }
    }
Beispiel #12
0
    void UIFormControl_OnCheckPermissions(object sender, EventArgs e)
    {
        if (Personal)
        {
            var currentUser = MembershipContext.AuthenticatedUser;

            if (currentUser == null || !currentUser.IsAuthorizedPerResource("CMS.Chat", "EnterSupport"))
            {
                RedirectToAccessDenied("CMS.Chat", "EnterSupport");
            }

            // This should be always false, but prevents exceptions
            if (TypedEditedObject != null)
            {
                // The chat user ID is inserted after permission check in OnBeforeSave. If the ID has no value, there is no point in checking it because it will be filled in aftewards
                if (TypedEditedObject.ChatSupportCannedResponseChatUserID.HasValue && TypedEditedObject.ChatSupportCannedResponseChatUserID.Value != ChatUserHelper.GetChatUserFromCMSUser().ChatUserID)
                {
                    RedirectToAccessDenied(GetString("chat.error.cannedresponsenotyours"));
                }
            }
        }
        else
        {
            // Editing existing canned response or create a new one
            int?siteIDToCheck = ((TypedEditedObject != null) && (TypedEditedObject.ChatSupportCannedResponseID > 0)) ? TypedEditedObject.ChatSupportCannedResponseSiteID : SiteID;

            ((CMSChatPage)Page).CheckModifyPermission(siteIDToCheck);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        PageTitle title = PageTitle;

        passwordPromptElem.TitleText = ResHelper.GetString("chat.password");

        // Script references insertion
        ScriptHelper.RegisterJQuery(Page);
        ChatScriptHelper.RegisterChatNotificationManager(Page);
        ScriptHelper.RegisterScriptFile(Page, "~/CMSScripts/jquery/jquery-resize.js");
        ScriptHelper.RegisterScriptFile(Page, "~/CMSModules/Chat/CMSPages/Scripts/ChatRoomWindow.js");

        // Get information about chat room this window has been opened for.
        int roomID = QueryHelper.GetInteger("windowroomid", 0);

        try
        {
            ChatUserHelper.VerifyChatUserHasJoinRoomRights(roomID);
        }
        catch (ChatServiceException)
        {
            DisplayError();

            return;
        }

        ChatRoomInfo room = ChatRoomInfoProvider.GetChatRoomInfo(roomID);

        if (room == null)
        {
            DisplayError();

            return;
        }

        string pnlChatRoomWindowCssClass = " ChatPopupWindow";

        // Disable irrelevant controls
        if (room.ChatRoomIsOneToOne)
        {
            ChatMessageSendElem.HideUserPicker();
            pnlChatRoomWindowCssClass += " IsOneToOne";

            // Set appropriate window title
            string pageTitle = ResHelper.GetString(room.ChatRoomIsSupport ? "chat.title.support" : "chat.title.privateconversation");
            Page.Header.Title = title.TitleText = pageTitle;
        }
        else
        {
            Page.Header.Title = title.TitleText = room.ChatRoomDisplayName;
        }

        SetWebpartsUp();

        if (room.ChatRoomIsSupport)
        {
            pnlChatRoomWindowCssClass += " IsSupport";
            if (ChatSettingsProvider.IsSupportMailEnabledAndValid)
            {
                pnlSupportSendMail.Visible     = true;
                hplSupportSendMail.NavigateUrl = ChatSettingsProvider.SupportMailDialogURL + "?roomid=" + roomID;
                hplSupportSendMail.Target      = "_blank";
            }
        }
        pnlChatRoomWindow.CssClass += pnlChatRoomWindowCssClass;
        JavaScriptSerializer sr = new JavaScriptSerializer();

        string json = sr.Serialize(
            new
        {
            roomID   = roomID,
            password = room.HasPassword,
            pnlChatRoomPasswordPrompt       = '#' + pnlChatRoomPasswordPrompt.ClientID,
            txtChatRoomPasswordPromptInput  = '#' + txtChatRoomPasswordPromptInput.ClientID,
            btnChatRoomPasswordPromptSubmit = '#' + btnChatRoomPasswordPromptSubmit.ClientID,
            isOneToOne                 = room.IsWhisperRoom,
            isCustomerSupport          = room.ChatRoomIsSupport,
            hplSupportSendMailClientID = room.ChatRoomIsSupport ? '#' + hplSupportSendMail.ClientID : "",
            pnlPasswordPromptError     = '#' + pnlChatRoomsPromptPasswordError.ClientID,
            pnlChatRoomWindow          = '#' + pnlChatRoomWindow.ClientID,
            ChatRoomMessagesClientID   = ChatRoomMessagesElem.ClientID,
            btnClose = "#" + btnCloseWindow.ClientID,
            notificationManagerOptions = new
            {
                eventName   = "newmessage",
                soundFile   = ChatSettingsProvider.EnableSoundLiveChat ? ResolveUrl("~/CMSModules/Chat/CMSPages/Sound/Chat_message.mp3") : String.Empty,
                notifyTitle = ResHelper.GetString("chat.general.newmessages")
            }
        }
            );


        string startupScript = String.Format("ChatRoomWindow({0});", json);

        ScriptHelper.RegisterStartupScript(Page, typeof(string), "ChatRoomWindow_" + ClientID, startupScript, true);
    }
    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 UIFormControl_OnCheckPermissions(object sender, EventArgs e)
    {
        if (Personal)
        {
            CurrentUserInfo currentUser = CMSContext.CurrentUser;

            if (!currentUser.IsAuthorizedPerResource("CMS.Chat", "EnterSupport"))
            {
                RedirectToAccessDenied("CMS.Chat", "EnterSupport");
            }

            if ((TypedEditedObject != null) && (TypedEditedObject.ChatSupportCannedResponseChatUserID.Value != ChatUserHelper.GetChatUserFromCMSUser().ChatUserID))
            {
                RedirectToAccessDenied(GetString("general.modifynotallowed"));
            }
        }
        else
        {
            int?siteIDToCheck;

            // Editing existing canned response
            if (TypedEditedObject != null)
            {
                siteIDToCheck = TypedEditedObject.ChatSupportCannedResponseSiteID;
            }
            // Creating new
            else
            {
                siteIDToCheck = SiteID;
            }

            ((CMSChatPage)Page).CheckModifyPermission(siteIDToCheck);
        }
    }
Beispiel #16
0
    protected void Page_Load(object sender, EventArgs e)
    {
        int roomID = QueryHelper.GetInteger("roomid", 0);

        ChatRoomMessages.RoomID = roomID;

        ChatRoomInfo room = ChatRoomInfoProvider.GetChatRoomInfo(roomID);

        if (room != null)
        {
            if (!room.ChatRoomEnabled)
            {
                CSSHelper.RegisterBootstrap(Page);
                CSSHelper.RegisterDesignMode(Page);
                ShowError(GetString("chat.errormessage.roomdisabled"));
                pnlChatView.Visible = false;

                return;
            }

            ChatOnlineUserHelper.LogInChatUser(ChatUserHelper.GetChatUserFromCMSUser(MembershipContext.AuthenticatedUser), false);
            ChatRoomUserHelper.JoinUserToRoom(room.ChatRoomID, ChatUserHelper.GetChatUserFromCMSUser(), room.ChatRoomPassword, false);
        }

        ChatRoomUsers.ChatUserTransformationName = "Chat.Transformations.CMSChatRoomUser";
        ChatRoomUsers.EnableFiltering            = true;
        ChatRoomUsers.ShowFilterItems            = ChatHelper.WPShowFilterLimit;
        ChatRoomUsers.EnablePaging = true;
        ChatRoomUsers.PagingItems  = ChatHelper.WPPagingItems;
        ChatRoomUsers.GroupPagesBy = ChatHelper.WPGroupPagesBy;
        ChatRoomUsers.ChatErrorDeleteAllButtonTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";
        ChatRoomUsers.ChatErrorTransformationName    = "Chat.Transformations.CMSChatError";
        ChatRoomUsers.ChatMessageTransformationName  = "Chat.Transformations.CMSChatMessage";
        ChatRoomUsers.ChatRoomUserTransformationName = "Chat.Transformations.CMSChatRoomUser";

        RoomName.ChatRoomNameTransformationName = "Chat.Transformations.CMSRoomName";
        RoomName.DisplayInitialTitle            = false;

        ChatNotification.NotificationTransformation = "Chat.Transformations.CMSChatNotification";
        ChatNotification.ChatErrorDeleteAllButtonTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";
        ChatNotification.ChatErrorTransformationName    = "Chat.Transformations.CMSChatError";
        ChatNotification.ChatMessageTransformationName  = "Chat.Transformations.CMSChatMessage";
        ChatNotification.ChatRoomUserTransformationName = "Chat.Transformations.CMSChatRoomUser";
        ChatNotification.EnableNotificationBubble       = false;

        ChatErrors.ErrorTransformationName           = "Chat.Transformations.CMSChatError";
        ChatErrors.ShowDeleteAllBtn                  = true;
        ChatErrors.ButtonDeleteAllTransformationName = "Chat.Transformations.CMSChatErrorDeleteAllButton";

        ChatRoomMessages.ChatMessageTransformationName = "Chat.Transformations.CMSChatMessage";
        ChatRoomMessages.Count     = 100;
        ChatRoomMessages.Direction = ChatRoomMessagesDirectionEnum.Down;


        // Registration to chat webservice
        AbstractCMSPage cmsPage = this.Page as AbstractCMSPage;

        if (cmsPage != null)
        {
            ChatHelper.RegisterChatSupportAJAXProxy(cmsPage);
        }
    }
Beispiel #17
0
    protected void UIFormOnOnBeforeValidate(object sender, EventArgs e)
    {
        int selectedCMSUserId = ValidationHelper.GetInteger(fUserSelector.Value, 0);

        UserInfo user = UserInfoProvider.GetUserInfo(selectedCMSUserId);

        // Validate form - both fields must be filled
        if ((user == null) || (fNickname.EditingControl.Text == ""))
        {
            ShowErrorAndStopProcessing("chat.user.erroridnickname");
            return;
        }

        if (user.IsPublic())
        {
            ShowErrorAndStopProcessing("chat.cantassociatechatusertopublic");
            return;
        }


        // Editing
        if (TypedEditedObject != null)
        {
            if (!TypedEditedObject.ChatUserUserID.HasValue)
            {
                ShowErrorAndStopProcessing("chat.user.cannoteditanonymoususer");
                return;
            }
        }
        else
        {
            // New object

            // Check if userID is unique in ChatUser table if adding a new user
            if (ChatUserInfoProvider.GetChatUserByUserID(selectedCMSUserId) != null)
            {
                ShowErrorAndStopProcessing("chat.user.erroridunique");
                return;
            }
        }

        string newNickname = fNickname.EditingControl.Text;

        // Check nickname only if text has been changed
        if ((TypedEditedObject == null) || (newNickname != TypedEditedObject.ChatUserNickname))
        {
            try
            {
                ChatUserHelper.VerifyNicknameIsValid(ref newNickname);
            }
            catch (ChatServiceException ex)
            {
                ShowErrorAndStopProcessing(ex.StatusMessage);
                return;
            }


            // Check if Nickname is unique in registered users
            if (!ChatUserHelper.IsNicknameAvailable(newNickname))
            {
                ShowErrorAndStopProcessing("chat.user.errornickunique");
                return;
            }
        }

        fNickname.EditingControl.Text = newNickname;
    }
    protected override void OnInit(EventArgs e)
    {
        if (!CMSContext.CurrentUser.IsAuthorizedPerResource("CMS.Chat", "EnterSupport"))
        {
            RedirectToAccessDenied("CMS.Chat", "EnterSupport");
        }

        ChatSupportCannedResponseInfo editedObject = (ChatSupportCannedResponseInfo)CMSContext.EditedObject;

        if ((editedObject != null) && (!editedObject.ChatSupportCannedResponseChatUserID.HasValue || (editedObject.ChatSupportCannedResponseChatUserID.Value != ChatUserHelper.GetChatUserFromCMSUser().ChatUserID)))
        {
            RedirectToAccessDenied(GetString("chat.error.cannedresponsenotyours"));
        }

        base.OnInit(e);
    }