private void UpdateEditDeleteVisible(IWikiObjectOwner obj) { var canEdit = false; var canDelete = false; var editVisible = Action.Equals(ActionOnPage.View) || Action.Equals(ActionOnPage.CategoryView); if (obj != null) { var secObj = new WikiObjectsSecurityObject(obj); canEdit = CommunitySecurity.CheckPermissions(secObj, Common.Constants.Action_EditPage); canDelete = CommunitySecurity.CheckPermissions(secObj, Common.Constants.Action_RemovePage) && !string.IsNullOrEmpty(obj.GetObjectId().ToString()); } pEditButtons.Visible = !editVisible; hlEditPage.Visible = editVisible && canEdit; if (Version > 0 && (Action.Equals(ActionOnPage.View) || Action.Equals(ActionOnPage.CategoryView))) { hlEditPage.Visible = pEditButtons.Visible = false; } cmdDelete.Visible = editVisible && canDelete; litVersionSeparatorDel.Visible = cmdDelete.Visible; }
protected void InitPageActionPanel() { var sb = new StringBuilder(); var canEdit = false; var canDelete = false; var subscribed = false; if (_wikiObjOwner != null) { var secObj = new WikiObjectsSecurityObject(_wikiObjOwner); canEdit = CommunitySecurity.CheckPermissions(secObj, Common.Constants.Action_EditPage); canDelete = CommunitySecurity.CheckPermissions(secObj, Common.Constants.Action_RemovePage) && !string.IsNullOrEmpty(_wikiObjOwner.GetObjectId().ToString()); } if (SecurityContext.IsAuthenticated && (Action.Equals(ActionOnPage.CategoryView) || Action.Equals(ActionOnPage.View))) { var subscriptionProvider = WikiNotifySource.Instance.GetSubscriptionProvider(); var userList = new List<string>(); var IAmAsRecipient = (IDirectRecipient)WikiNotifySource.Instance.GetRecipientsProvider().GetRecipient(SecurityContext.CurrentAccount.ID.ToString()); if (IAmAsRecipient != null) { userList = new List<string>( subscriptionProvider.GetSubscriptions( Community.Wiki.Common.Constants.EditPage, IAmAsRecipient) ); } var pageName = WikiPage ?? string.Empty; subscribed = userList.Exists(s => string.Compare(s, pageName, StringComparison.InvariantCultureIgnoreCase) == 0 || (s == null && string.Empty.Equals(pageName))); var SubscribeTopicLink = string.Format(CultureInfo.CurrentCulture, string.Format(CultureInfo.CurrentCulture, "<a id=\"statusSubscribe\" class=\"follow-status " + (subscribed ? "subscribed" : "unsubscribed") + "\" title=\"{0}\" href=\"#\"></a>", !subscribed ? WikiResource.NotifyOnEditPage : WikiResource.UnNotifyOnEditPage)); SubscribeLinkBlock.Text = SubscribeTopicLink; } var delURL = string.Format(@"javascript:if(confirm('{0}')) __doPostBack('{1}', '');", WikiResource.cfmDeletePage, _Default_GetDelUniqId()); sb.Append("<div id=\"WikiActionsMenuPanel\" class=\"studio-action-panel\">"); sb.Append("<ul class=\"dropdown-content\">"); sb.AppendFormat("<li><a class=\"dropdown-item\" href=\"{0}\">{1}</a></li>", ActionHelper.GetViewPagePath(this.ResolveUrlLC("pagehistorylist.aspx"), WikiPage), WikiResource.menu_ShowVersions); sb.AppendFormat("<li><a class=\"dropdown-item\" href=\"javascript:window.print();\">{0}</a></li>", WikiResource.menu_PrintThePage); if (canEdit) sb.AppendFormat("<li><a class=\"dropdown-item\" href=\"{0}\">{1}</a></li>", ActionHelper.GetEditPagePath(this.ResolveUrlLC("default.aspx"), WikiPage), WikiResource.menu_EditThePage); if (canDelete) sb.AppendFormat("<li><a class=\"dropdown-item\" href=\"{0}\">{1}</a></li>", delURL, WikiResource.menu_DeleteThePage); sb.Append("</ul>"); sb.Append("</div>"); ActionPanel.Text = sb.ToString(); sb = new StringBuilder(); sb.AppendLine("var notyfy = " + subscribed.ToString().ToLower(CultureInfo.CurrentCulture) + ";"); sb.AppendLine("var pageId = \"" + HttpUtility.HtmlEncode((Page as WikiBasePage).WikiPage).EscapeString() + "\";"); sb.AppendLine("jq(\"#statusSubscribe\").on(\"click\", function(){"); sb.AppendLine("AjaxPro.onLoading = function(b) {"); sb.AppendLine("if(b) LoadingBanner.displayLoading();"); sb.AppendLine("else LoadingBanner.hideLoading();"); sb.AppendLine("}"); sb.AppendLine("MainWikiAjaxMaster.SubscribeOnEditPage(notyfy, pageId, callbackNotifyWikiPage);"); sb.AppendLine("});"); sb.AppendLine("function callbackNotifyWikiPage(result){notyfy = result.value;"); sb.AppendLine("if(!notyfy){"); sb.AppendLine("jq(\"#statusSubscribe\").removeClass(\"subscribed\").addClass(\"unsubscribed\");"); sb.AppendFormat("jq(\"#statusSubscribe\").attr(\"title\", \"{0}\");", WikiResource.NotifyOnEditPage); sb.AppendLine("} else {"); sb.AppendLine("jq(\"#statusSubscribe\").removeClass(\"unsubscribed\").addClass(\"subscribed\");"); sb.AppendFormat("jq(\"#statusSubscribe\").attr(\"title\", \"{0}\");", WikiResource.UnNotifyOnEditPage); sb.AppendLine("}};"); Page.RegisterInlineScript(sb.ToString()); }