public static RenewEditingSession ( System.PageInfo page, string user ) : void | ||
page | System.PageInfo | The edited Page. |
user | string | The User who is editing the Page. |
return | void |
protected void Page_Load(object sender, EventArgs e) { // Manage the case when the application is for some reason restarted // during the editing of a Page or File if (Request["Page"] != null) { PageInfo page = Pages.FindPage(Request["Page"]); if (page == null) { return; } else { // The system already authenticates the user, if any, at the request level string username = Request.UserHostAddress; if (SessionFacade.LoginKey != null) { username = SessionFacade.CurrentUsername; } Collisions.RenewEditingSession(page, username); } } }
/// <summary> /// Verifies for editing collisions, and if no collision is found, "locks" the page /// </summary> private void ManageEditingCollisions() { if (currentPage == null) { return; } lblRefreshLink.Text = @"<a href=""" + UrlTools.BuildUrl(currentWiki, "Edit.aspx?Page=", Tools.UrlEncode(currentPage.FullName), (Request["Section"] != null ? "&Section=" + currentSection.ToString() : "")) + @""">" + Properties.Messages.Refresh + " »</a>"; string username = Request.UserHostAddress; if (SessionFacade.LoginKey != null) { username = SessionFacade.CurrentUsername; } if (Collisions.IsPageBeingEdited(currentPage, username)) { pnlCollisions.Visible = true; lblConcurrentEditingUsername.Text = "(" + Users.UserLink(currentWiki, Collisions.WhosEditing(currentPage)) + ")"; if (Settings.GetDisableConcurrentEditing(currentWiki)) { lblSaveDisabled.Visible = true; lblSaveDangerous.Visible = false; btnSave.Enabled = false; btnSaveAndContinue.Enabled = false; } else { lblSaveDisabled.Visible = false; lblSaveDangerous.Visible = true; btnSave.Enabled = true; btnSaveAndContinue.Enabled = true; } } else { pnlCollisions.Visible = false; btnSave.Enabled = true; btnSaveAndContinue.Enabled = true; Collisions.RenewEditingSession(currentPage, username); } }