void WebsiteAdmin_OnAdminRequest(AdminInterface admin, string sprocketPath, string[] pathSections, HandleFlag handled) { if (sprocketPath != "admin") { return; } admin.ContentHeading = "Current Overview"; admin.AddContentSection(new RankedString("<div class=\"standalone-message\">Overview information under construction.</div>", 0)); handled.Set(); }
void OnAdminRequest(AdminInterface admin, string sprocketPath, string[] pathSections, HandleFlag handled) { // build the "current user" block User user = User.Select(SecurityProvider.ClientSpaceID, WebAuthentication.Instance.CurrentUsername); string block = "<div id=\"currentuser-block\">" + "You are currently logged in as <b>{0}</b>." + "</div>"; admin.AddLeftColumnSection(new RankedString( string.Format(block, (user.FirstName + " " + user.Surname).Trim()), -100)); admin.WebsiteName = CurrentClientSpace.Name; if (!SecurityProvider.CurrentUser.HasPermission(PermissionType.UserAdministrator)) return; admin.AddMainMenuLink(new AdminMenuLink("Users and Roles", WebUtility.MakeFullPath("admin/security"), 0)); // build the security interface if it has been requested if (sprocketPath.StartsWith("admin/security")) { handled.Set(); int defaultMaxFilterMatches; try { defaultMaxFilterMatches = int.Parse(SprocketSettings.GetValue("WebSecurityDefaultUserFilterMatches")); } catch { defaultMaxFilterMatches = 50; } admin.AddInterfaceScript(WebControlScript.TabStrip); admin.AddInterfaceScript(WebControlScript.Fader); admin.AddInterfaceScript(WebControlScript.AjaxForm); string scr = ResourceLoader.LoadTextResource("Sprocket.Security.CMS.security.js") .Replace("50,//{defaultMaxFilterMatches}", defaultMaxFilterMatches.ToString() + ",") .Replace("if(true)//{ifUserCanAccessRoleManagement}", SecurityProvider.CurrentUser.HasPermission(PermissionType.RoleAdministrator) ? "" : "if(false)"); admin.AddInterfaceScript(new RankedString(scr, 0)); admin.AddBodyOnLoadScript(new RankedString("SecurityInterface.Run()", 0)); admin.ContentHeading = "Users and Roles"; string html = "<div id=\"user-admin-container\"></div>"; admin.AddContentSection(new RankedString(html, 0)); admin.AddHeadSection(new RankedString("<link rel=\"stylesheet\" type=\"text/css\" href=\"" + WebUtility.MakeFullPath("resources/admin/security.css") + "\" />", 0)); } }
void OnAdminRequest(AdminInterface admin, string sprocketPath, string[] pathSections, HandleFlag handled) { admin.AddMainMenuLink(new AdminMenuLink("Website Pages", WebUtility.MakeFullPath("admin/pages"), 0)); if(handled.Handled) return; switch (sprocketPath) { case "admin/pages": admin.ContentHeading = "Website Page List"; admin.AddContentSection(new RankedString(GetPageList(), 0)); break; default: return; } handled.Set(); }
void WebsiteAdmin_OnAdminRequest(AdminInterface admin, HandleFlag handled) { if (SprocketPath.Sections[0] != "admin") { return; } switch (SprocketPath.Value) { case "admin/dbsetup": Result result = DatabaseManager.DatabaseEngine.Initialise(); if (result.Succeeded) { admin.AddContentSection(new RankedString("<p style=\"color:green\" class=\"standalone-message\">Database setup completed.</p>", 1)); } else { admin.AddContentSection(new RankedString("<strong style=\"color:red\" class=\"standalone-message\">Unable to Initialise Database</strong><p>" + result.Message + "</p>", 1)); } break; case "admin/clearcache": ContentCache.ClearCache(); admin.AddContentSection(new RankedString("<p style=\"color:green\" class=\"standalone-message\">The cache has been cleared.</p>", 1)); break; case "admin": break; default: return; } admin.ContentHeading = "Current Overview"; admin.AddContentSection(new RankedString("<div class=\"standalone-message\">" + "<a href=\"" + WebUtility.BasePath + "admin/dbsetup\">Run database setup</a> | " + "<a href=\"" + WebUtility.BasePath + "admin/clearcache\">Clear page cache</a>" + "</div>", 0)); handled.Set(); }
void OnLoadRequestedPath(HttpApplication app, string path, string[] pathSections, HandleFlag handled) { if (pathSections.Length == 0) { return; } if (pathSections[0] != "admin") { return; } bool processed = false; string lastchunk = pathSections[pathSections.Length - 1]; switch (lastchunk) { case "admin.css": HttpContext.Current.Response.TransmitFile("~/resources/admin/admin.css"); HttpContext.Current.Response.ContentType = "text/css"; processed = true; break; default: WebAuthentication auth = WebAuthentication.Instance; HttpResponse Response = HttpContext.Current.Response; HttpServerUtility Server = HttpContext.Current.Server; switch (path) { case "admin/login": ShowLoginScreen(); processed = true; break; case "admin/logout": auth.ClearAuthenticationCookie(); Response.Redirect(WebUtility.MakeFullPath("admin/login")); processed = true; break; case "admin/login/process": if (auth.ProcessLoginForm("SprocketUsername", "SprocketPassword", "SprocketPreserveLogin")) { Response.Redirect(WebUtility.MakeFullPath("admin")); } else { ShowLoginScreen("Invalid Username and/or Password."); } processed = true; break; default: if (!auth.IsLoggedIn) { GotoLoginScreen(); processed = true; } else if (OnCMSAdminAuthenticationSuccess != null) { Result result = new Result(); OnCMSAdminAuthenticationSuccess(auth.CurrentUsername, result); if (!result.Succeeded) { ShowLoginScreen(result.Message); processed = true; } } break; } break; } if (processed) { handled.Set(); return; } if (OnAdminRequest != null) { AdminInterface admin = new AdminInterface(); OnAdminRequest(admin, path, pathSections, handled); if (handled.Handled) { WebClientScripts scripts = WebClientScripts.Instance; admin.AddMainMenuLink(new AdminMenuLink("Current Overview", WebUtility.MakeFullPath("admin"), -100)); admin.AddMainMenuLink(new AdminMenuLink("Log Out", WebUtility.MakeFullPath("admin/logout"), 100)); admin.AddFooterLink(new AdminMenuLink("© 2005-" + DateTime.Now.Year + " " + SprocketSettings.GetValue("WebsiteName"), "", 100)); string powered = SprocketSettings.GetValue("ShowPoweredBySprocket"); if (powered != null) { if (StringUtilities.MatchesAny(powered.ToLower(), "true", "yes")) { admin.AddFooterLink(new AdminMenuLink("Powered by Sprocket", "http://www.sprocketcms.com", 1000)); } } admin.AddHeadSection(new RankedString(scripts.BuildStandardScriptsBlock(), 1)); HttpContext.Current.Response.Write(admin.Render(path)); } } }
void OnLoadRequestedPath(HandleFlag handled) { if (SprocketPath.Sections.Length == 0) return; if (SprocketPath.Sections[0] != "admin") return; bool processed = false; string lastchunk = SprocketPath.Sections[SprocketPath.Sections.Length - 1]; switch(lastchunk) { case "admin.css": HttpContext.Current.Response.TransmitFile("~/resources/admin/admin.css"); HttpContext.Current.Response.ContentType = "text/css"; processed = true; break; default: WebAuthentication auth = WebAuthentication.Instance; HttpResponse Response = HttpContext.Current.Response; HttpServerUtility Server = HttpContext.Current.Server; switch (SprocketPath.Value) { case "admin/login": ShowLoginScreen(); processed = true; break; case "admin/logout": auth.ClearAuthenticationCookie(); Response.Redirect(WebUtility.MakeFullPath("admin/login")); processed = true; break; case "admin/login/process": if (auth.ProcessLoginForm("SprocketUsername", "SprocketPassword", "SprocketPreserveLogin")) Response.Redirect(WebUtility.MakeFullPath("admin")); else ShowLoginScreen("Invalid Username and/or Password."); processed = true; break; default: if (!auth.IsLoggedIn) { GotoLoginScreen(); processed = true; } else if (OnCMSAdminAuthenticationSuccess != null) { Result result = new Result(); OnCMSAdminAuthenticationSuccess(auth.CurrentUsername, result); if (!result.Succeeded) { ShowLoginScreen(result.Message); processed = true; } } break; } break; } if (processed) { handled.Set(); return; } if (OnAdminRequest != null) { AdminInterface admin = new AdminInterface(); OnAdminRequest(admin, handled); if (handled.Handled) { WebClientScripts scripts = WebClientScripts.Instance; admin.AddMainMenuLink(new AdminMenuLink("Administrative Tasks", WebUtility.MakeFullPath("admin"), -100)); admin.AddMainMenuLink(new AdminMenuLink("Log Out", WebUtility.MakeFullPath("admin/logout"), 100)); admin.AddFooterLink(new AdminMenuLink("© 2005-" + SprocketDate.Now.Year + " " + SprocketSettings.GetValue("WebsiteName"), "", 100)); string powered = SprocketSettings.GetValue("ShowPoweredBySprocket"); if(powered != null) if(StringUtilities.MatchesAny(powered.ToLower(), "true", "yes")) admin.AddFooterLink(new AdminMenuLink("Powered by Sprocket", "http://www.sprocketcms.com", 1000)); admin.AddHeadSection(new RankedString(scripts.BuildStandardScriptsBlock(), 1)); HttpContext.Current.Response.Write(admin.Render()); } } }
void WebsiteAdmin_OnAdminRequest(AdminInterface admin, HandleFlag handled) { if (SprocketPath.Sections[0] != "admin") return; switch (SprocketPath.Value) { case "admin/dbsetup": Result result = DatabaseManager.DatabaseEngine.Initialise(); if (result.Succeeded) admin.AddContentSection(new RankedString("<p style=\"color:green\" class=\"standalone-message\">Database setup completed.</p>", 1)); else admin.AddContentSection(new RankedString("<strong style=\"color:red\" class=\"standalone-message\">Unable to Initialise Database</strong><p>" + result.Message + "</p>", 1)); break; case "admin/clearcache": ContentCache.ClearCache(); admin.AddContentSection(new RankedString("<p style=\"color:green\" class=\"standalone-message\">The cache has been cleared.</p>", 1)); break; case "admin": break; default: return; } admin.ContentHeading = "Current Overview"; admin.AddContentSection(new RankedString("<div class=\"standalone-message\">" + "<a href=\"" + WebUtility.BasePath + "admin/dbsetup\">Run database setup</a> | " + "<a href=\"" + WebUtility.BasePath + "admin/clearcache\">Clear page cache</a>" + "</div>", 0)); handled.Set(); }
void WebEvents_OnLoadRequestedPath(HandleFlag handled) { if (handled.Handled) { return; } if (!IsAdminRequest) { return; } PageEntry page = pages.FromPath(SprocketPath.Value); if (page == null) { return; } KeyValuePair <string, object>[] vars; if (!SprocketPath.StartsWith("admin", "login")) { if (!WebAuthentication.VerifyAccess(PermissionType.AccessAdminArea)) { WebUtility.Redirect("admin/login"); return; } AdminInterface admin = new AdminInterface(); WebClientScripts scripts = WebClientScripts.Instance; admin.AddMainMenuLink(new AdminMenuLink("Website Home", WebUtility.MakeFullPath(""), ObjectRank.Last, "website_home")); admin.AddMainMenuLink(new AdminMenuLink("Overview", WebUtility.MakeFullPath("admin"), ObjectRank.First, "website_overview")); admin.AddMainMenuLink(new AdminMenuLink("Log Out", WebUtility.MakeFullPath("admin/logout"), ObjectRank.Last, "log_out")); admin.AddFooterLink(new AdminMenuLink("Log Out", WebUtility.MakeFullPath("admin/logout"), ObjectRank.Early)); admin.AddFooterLink(new AdminMenuLink("© 2005-" + DateTime.UtcNow.Year + " " + SprocketSettings.GetValue("WebsiteName"), "", ObjectRank.Late)); admin.AddFooterLink(new AdminMenuLink("Powered by Sprocket", "http://www.sprocketcms.com", ObjectRank.Last)); admin.AddHeadSection(new AdminSection(scripts.BuildStandardScriptsBlock(), ObjectRank.Late)); admin.WebsiteName = GetWebsiteName(); if (OnLoadAdminPage != null) { OnLoadAdminPage(admin, page, handled); if (handled.Handled) { return; } } vars = admin.GetScriptVariables(); } else { vars = new KeyValuePair <string, object> [1]; vars[0] = new KeyValuePair <string, object>("_admin_websitename", GetWebsiteName()); } ContentManager.RequestedPage = page; if (pagePreProcessors.ContainsKey(page.PageCode)) { foreach (PagePreprocessorHandler method in pagePreProcessors[page.PageCode]) { method(page); } } string txt = page.Render(vars); Response.ContentType = page.ContentType; Response.Write(txt); handled.Set(); }
void WebsiteAdmin_OnAdminRequest(AdminInterface admin, string sprocketPath, string[] pathSections, HandleFlag handled) { if (sprocketPath != "admin") return; admin.ContentHeading = "Current Overview"; admin.AddContentSection(new RankedString("<div class=\"standalone-message\">Overview information under construction.</div>", 0)); handled.Set(); }
void WebEvents_OnLoadRequestedPath(HandleFlag handled) { if (handled.Handled) return; if (!IsAdminRequest) return; PageEntry page = pages.FromPath(SprocketPath.Value); if (page == null) return; KeyValuePair<string, object>[] vars; if (!SprocketPath.StartsWith("admin", "login")) { if (!WebAuthentication.VerifyAccess(PermissionType.AccessAdminArea)) { WebUtility.Redirect("admin/login"); return; } AdminInterface admin = new AdminInterface(); WebClientScripts scripts = WebClientScripts.Instance; admin.AddMainMenuLink(new AdminMenuLink("Website Home", WebUtility.MakeFullPath(""), ObjectRank.Last, "website_home")); admin.AddMainMenuLink(new AdminMenuLink("Overview", WebUtility.MakeFullPath("admin"), ObjectRank.First, "website_overview")); admin.AddMainMenuLink(new AdminMenuLink("Log Out", WebUtility.MakeFullPath("admin/logout"), ObjectRank.Last, "log_out")); admin.AddFooterLink(new AdminMenuLink("Log Out", WebUtility.MakeFullPath("admin/logout"), ObjectRank.Early)); admin.AddFooterLink(new AdminMenuLink("© 2005-" + DateTime.UtcNow.Year + " " + SprocketSettings.GetValue("WebsiteName"), "", ObjectRank.Late)); admin.AddFooterLink(new AdminMenuLink("Powered by Sprocket", "http://www.sprocketcms.com", ObjectRank.Last)); admin.AddHeadSection(new AdminSection(scripts.BuildStandardScriptsBlock(), ObjectRank.Late)); admin.WebsiteName = GetWebsiteName(); if (OnLoadAdminPage != null) { OnLoadAdminPage(admin, page, handled); if (handled.Handled) return; } vars = admin.GetScriptVariables(); } else { vars = new KeyValuePair<string, object>[1]; vars[0] = new KeyValuePair<string, object>("_admin_websitename", GetWebsiteName()); } ContentManager.RequestedPage = page; if (pagePreProcessors.ContainsKey(page.PageCode)) foreach (PagePreprocessorHandler method in pagePreProcessors[page.PageCode]) method(page); string txt = page.Render(vars); Response.ContentType = page.ContentType; Response.Write(txt); handled.Set(); }