Update: Error UI Updated
This commit is contained in:
1 parent
b1048588e7
commit
fe00963cb0
19 files changed
+514
-160
No files matched your search
@@ -45,25 +45,26 @@ namespace Disco.Services.Authorization
|
|||||||
|
|
||||||
#region Token Accessors
|
#region Token Accessors
|
||||||
|
|
||||||
internal const string RequireAuthenticationMessage = "This Disco feature requires authentication.";
|
internal const string RequireAuthenticationMessage = "This feature requires authentication.";
|
||||||
internal const string RequireDiscoAuthorizationMessage = "Your account does not have the required permission to access this Disco feature. This feature requires your account to be included in at least one Disco Authorization Role.";
|
internal const string RequireDiscoAuthorizationMessage = "Your account does not have the required permission to access this feature. This feature requires your account to be included in at least one Disco Authorization Role.";
|
||||||
internal const string RequireMessageTemplate = "Your account does not have the required permission ({0}) to access this Disco feature.";
|
internal const string RequireMessageTemplate = "Your account does not have the required permission to access this feature.\r\n";
|
||||||
internal const string RequireAllMessageTemplate = "Your account does not have the required permission to access this Disco feature. This feature requires permission for: {0}.";
|
internal const string RequireMessageSingleTemplate = RequireMessageTemplate + "This feature requires the following permission:\r\n- {0}";
|
||||||
internal const string RequireAnyMessageTemplate = "Your account does not have the required permission to access this Disco feature. This feature requires at least one of these permissions: {0}.";
|
internal const string RequireAllMessageTemplate = RequireMessageTemplate + "This feature requires permission for:{0}.";
|
||||||
|
internal const string RequireAnyMessageTemplate = RequireMessageTemplate + "This feature requires at least one of these permissions:{0}.";
|
||||||
|
|
||||||
internal static string BuildRequireMessage(string ClaimKey)
|
internal static string BuildRequireMessage(string ClaimKey)
|
||||||
{
|
{
|
||||||
return string.Format(RequireMessageTemplate, Claims.GetClaimDetails(ClaimKey).Item1);
|
return string.Format(RequireMessageSingleTemplate, Claims.GetClaimDetails(ClaimKey).Item1);
|
||||||
}
|
}
|
||||||
internal static string BuildRequireAllMessage(IEnumerable<string> ClaimKeys)
|
internal static string BuildRequireAllMessage(IEnumerable<string> ClaimKeys)
|
||||||
{
|
{
|
||||||
var claimFriendlyNames = ClaimKeys.Select(ck => Claims.GetClaimDetails(ck).Item1);
|
var claimFriendlyNames = ClaimKeys.Select(ck => Claims.GetClaimDetails(ck).Item1);
|
||||||
return string.Format(RequireAllMessageTemplate, string.Join("; ", claimFriendlyNames));
|
return string.Format(RequireAllMessageTemplate, string.Join("\r\n- ", claimFriendlyNames));
|
||||||
}
|
}
|
||||||
internal static string BuildRequireAnyMessage(IEnumerable<string> ClaimKeys)
|
internal static string BuildRequireAnyMessage(IEnumerable<string> ClaimKeys)
|
||||||
{
|
{
|
||||||
var claimFriendlyNames = ClaimKeys.Select(ck => Claims.GetClaimDetails(ck).Item1);
|
var claimFriendlyNames = ClaimKeys.Select(ck => Claims.GetClaimDetails(ck).Item1);
|
||||||
return string.Format(RequireAnyMessageTemplate, string.Join("; ", claimFriendlyNames));
|
return string.Format(RequireAnyMessageTemplate, string.Join("\r\n- ", claimFriendlyNames));
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Web.Mvc;
|
using System.Web.Mvc;
|
||||||
@@ -34,30 +35,44 @@ namespace Disco.Services.Authorization
|
|||||||
protected sealed override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
|
protected sealed override void HandleUnauthorizedRequest(AuthorizationContext filterContext)
|
||||||
{
|
{
|
||||||
string resultMessage = HandleUnauthorizedMessage();
|
string resultMessage = HandleUnauthorizedMessage();
|
||||||
|
string resultResource = BuildAuthorizeResource(filterContext);
|
||||||
|
|
||||||
LogAccessDenied(filterContext, resultMessage);
|
// Log Access Denied
|
||||||
|
if (Token != null) // Don't log anonymous
|
||||||
|
AuthorizationLog.LogAccessDenied(Token.User.Id, resultResource, resultMessage);
|
||||||
|
|
||||||
filterContext.Result = new HttpUnauthorizedResult(resultMessage);
|
// Build Response View
|
||||||
|
var ex = new AccessDeniedException(resultMessage, resultResource);
|
||||||
|
HandleErrorInfo model = new HandleErrorInfo(ex, filterContext.ActionDescriptor.ControllerDescriptor.ControllerName, filterContext.ActionDescriptor.ActionName);
|
||||||
|
ViewResult result = new ViewResult
|
||||||
|
{
|
||||||
|
ViewName = "Error",
|
||||||
|
MasterName = Token == null ? "_PublicLayout" : "_Layout",
|
||||||
|
ViewData = new ViewDataDictionary<HandleErrorInfo>(model),
|
||||||
|
TempData = filterContext.Controller.TempData
|
||||||
|
};
|
||||||
|
|
||||||
|
filterContext.Result = result;
|
||||||
|
var contextResponse = filterContext.HttpContext.Response;
|
||||||
|
contextResponse.Clear();
|
||||||
|
contextResponse.StatusCode = (int)HttpStatusCode.Unauthorized;
|
||||||
|
contextResponse.TrySkipIisCustomErrors = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LogAccessDenied(AuthorizationContext FilterContext, string ResultMessage)
|
private string BuildAuthorizeResource(AuthorizationContext FilterContext)
|
||||||
{
|
{
|
||||||
// Don't log anonymous
|
var authResource = AuthorizeResource;
|
||||||
if (Token != null)
|
var url = FilterContext.HttpContext.Request.RawUrl;
|
||||||
|
|
||||||
|
if (authResource == null)
|
||||||
{
|
{
|
||||||
// Calculate Authorize Resource
|
var controllerName = FilterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
|
||||||
if (AuthorizeResource == null)
|
var actionName = FilterContext.ActionDescriptor.ActionName;
|
||||||
{
|
|
||||||
var controllerName = FilterContext.ActionDescriptor.ControllerDescriptor.ControllerName;
|
|
||||||
var actionName = FilterContext.ActionDescriptor.ActionName;
|
|
||||||
|
|
||||||
AuthorizeResource = string.Format("{0}::{1}", controllerName, actionName);
|
authResource = string.Format("{0}::{1}", controllerName, actionName);
|
||||||
}
|
|
||||||
|
|
||||||
var resource = string.Format("{0} [{1}]", AuthorizeResource, FilterContext.HttpContext.Request.RawUrl);
|
|
||||||
|
|
||||||
AuthorizationLog.LogAccessDenied(Token.User.Id, resource, ResultMessage);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return string.Format("{0} [{1}]", authResource, url);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -25,7 +25,7 @@ namespace Disco.Services.Web
|
|||||||
|
|
||||||
string controllerName = (string)filterContext.RouteData.Values["controller"];
|
string controllerName = (string)filterContext.RouteData.Values["controller"];
|
||||||
string actionName = (string)filterContext.RouteData.Values["action"];
|
string actionName = (string)filterContext.RouteData.Values["action"];
|
||||||
HandleErrorInfo model = new HandleErrorInfo(ex, controllerName, actionName);
|
HandleErrorInfo model = new HandleErrorInfo(ex, controllerName ?? "Unknown", actionName ?? "Unknown");
|
||||||
ViewResult result = new ViewResult
|
ViewResult result = new ViewResult
|
||||||
{
|
{
|
||||||
ViewName = "Error",
|
ViewName = "Error",
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
@{
|
@{
|
||||||
Layout = "~/Areas/Public/Views/Shared/_Layout.cshtml";
|
Layout = "~/Views/Shared/_PublicLayout.cshtml";
|
||||||
}
|
}
|
||||||
@@ -2,7 +2,7 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:4.0.30319.18051
|
// Runtime Version:4.0.30319.34003
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
@@ -45,7 +45,7 @@ namespace Disco.Web.Areas.Public.Views
|
|||||||
|
|
||||||
#line 1 "..\..\Areas\Public\Views\_ViewStart.cshtml"
|
#line 1 "..\..\Areas\Public\Views\_ViewStart.cshtml"
|
||||||
|
|
||||||
Layout = "~/Areas/Public/Views/Shared/_Layout.cshtml";
|
Layout = "~/Views/Shared/_PublicLayout.cshtml";
|
||||||
|
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
|
|||||||
@@ -1446,6 +1446,31 @@ header .watermark,
|
|||||||
-webkit-border-radius: 0 0 6px 6px;
|
-webkit-border-radius: 0 0 6px 6px;
|
||||||
border-radius: 0 0 6px 6px;
|
border-radius: 0 0 6px 6px;
|
||||||
}
|
}
|
||||||
|
#layout_Error {
|
||||||
|
min-height: 200px;
|
||||||
|
}
|
||||||
|
#layout_Error table {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
#layout_Error h1,
|
||||||
|
#layout_Error h2,
|
||||||
|
#layout_Error h3,
|
||||||
|
#layout_Error h4,
|
||||||
|
#layout_Error h5 {
|
||||||
|
color: #fff;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
#layout_Error h2.error {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
#layout_Error .stacktrace {
|
||||||
|
white-space: pre;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
#layout_Error > div {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 650px;
|
||||||
|
}
|
||||||
#layout_uiExtensions {
|
#layout_uiExtensions {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:1Line truncated
|
.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table;border-collapse:collapse}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{min-height:0}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-front{z-index:100}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted #000}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;min-height:0}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}.ui-button{display:inline-block;position:relative;padding:0;line-height:normal;margin-right:.1em;cursor:pointer;vertical-align:middle;text-align:center;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:normal}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}input.ui-button::-moz-focus-inner,button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:1Line truncated
|
||||||
@@ -268,6 +268,31 @@ header .watermark,
|
|||||||
-webkit-border-radius: 0 0 6px 6px;
|
-webkit-border-radius: 0 0 6px 6px;
|
||||||
border-radius: 0 0 6px 6px;
|
border-radius: 0 0 6px 6px;
|
||||||
}
|
}
|
||||||
|
#layout_Error {
|
||||||
|
min-height: 200px;
|
||||||
|
}
|
||||||
|
#layout_Error table {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
#layout_Error h1,
|
||||||
|
#layout_Error h2,
|
||||||
|
#layout_Error h3,
|
||||||
|
#layout_Error h4,
|
||||||
|
#layout_Error h5 {
|
||||||
|
color: #fff;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
#layout_Error h2.error {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
#layout_Error .stacktrace {
|
||||||
|
white-space: pre;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
#layout_Error > div {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 650px;
|
||||||
|
}
|
||||||
#layout_uiExtensions {
|
#layout_uiExtensions {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -200,6 +200,33 @@ header, #header {
|
|||||||
.border-radius4(0, 0, 6px, 6px);
|
.border-radius4(0, 0, 6px, 6px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#layout_Error {
|
||||||
|
min-height: 200px;
|
||||||
|
|
||||||
|
table {
|
||||||
|
background-color: #fff;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1, h2, h3, h4, h5 {
|
||||||
|
color: #fff;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2.error {
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stacktrace {
|
||||||
|
white-space: pre;
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
& > div {
|
||||||
|
margin: 0 auto;
|
||||||
|
width: 650px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#layout_uiExtensions {
|
#layout_uiExtensions {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -1 +1 @@
|
|||||||
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}body{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;margin:0;padding:0 10px;color:#333}body.layout{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAFvCAMAAABEoqrSAAADAFBMVEVRUVFUVFRYWFhbW1tfX19iYmJmZmZpaWltbW1wcHB0dHR3d3d7e3t/f3/MzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD28iAmAAAAbklEQVRIx2NUZ4ABlv9kMZkYRrXhYUphMwzZXEYCogQV0FfbUHMOrSxGAoyMBEygM/M/zZnMjFiZDPQEjCYEsin2/EYKk6qGDTVzR7TnRwN1NFBHPT8aqKOBOur5Uc+PBip1zWVkYGCBCv2nhrkAr7hI+jpl4KUAAAAASUVORK5CYII=) left top repeat-x #d1d1d1}.page{max-width:1230px;min-width:750px;margin-left:auto;margin-right:auto}header,#header{position:relative;margin:0;padding:0;height:110px}header #headerMenu,#header #headerMenu{height:24px;padding:4px;line-height:22px;text-align:right}header #headerMenu a,#header #headerMenu a{color:#000;text-decoration:none}header #headerMenu a:hover,#header #headerMenu a:hover{text-decoration:underline}header #heading,#header #heading{float:left;height:75px}header #heading img,#header #heading img{height:75px;width:300px}header nav,#header nav{padding:0;margin:0;font-size:1.1em}header nav ul#menu,#header nav ul#menu{height:29px;padding:3px 6px;margin:0;list-style:none;z-index:100000}header nav ul#menu>li,#header nav ul#menu>li{display:inline-block;z-index:100000;margin-bottom:-4px}header nav ul#menu>li a,#header nav ul#menu>li a{padding:4px 10px;text-decoration:none;color:#fff;display:inline-block;height:21px}header nav ul#menu>li a:hover,#header nav ul#menu>li a:hover{color:#ffd5ba;text-decoration:none}header nav ul#menu>li a:active,#header nav ul#menu>li a:active{text-decoration:none}header nav ul#menu>li.sep,#header nav ul#menu>li.sep{margin-top:4px;height:21px;border-left:1px solid #777}header nav ul#menu>li.moveRight,#header nav ul#menu>li.moveRight{margin-left:40px}header nav ul#menu>li>ul,#header nav ul#menu>li>ul{z-index:100000;display:none;list-style:none;position:absolute;margin:2px 0 0 0;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;border-right:1px solid #d1d1d1;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header nav ul#menu>li>ul li,#header nav ul#menu>li>ul li{position:relative;background-color:#f2f2f2;background-position:top;background-repeat:repeat-x}header nav ul#menu>li>ul li:not(:first-child),#header nav ul#menu>li>ul li:not(:first-child){border-top:1px solid #e6e6e6}header nav ul#menu>li>ul li:hover,#header nav ul#menu>li>ul li:hover{background-color:#e6e6e6}header nav ul#menu>li>ul li:hover:not(:first-child),#header nav ul#menu>li>ul li:hover:not(:first-child){border-top:1px solid #d9d9d9}header nav ul#menu>li>ul li.hasSubMenu,#header nav ul#menu>li>ul li.hasSubMenu{background-image:url(data:image/png;base64,iVBORw0KGgoAALine truncated
|
.tableData{border:solid 1px #e8eef4;border-collapse:collapse}.tableData>tbody>tr>td{border:solid 1px #e8eef4;background-color:#fff}.tableData>tbody>tr:nth-child(odd)>td{background-color:#fcfcfd}.tableData>thead>tr>th,.tableData>tbody>tr>th{background-color:#e8eef4;border:solid 1px #e8eef4}.tableData>tbody>tr:hover>td{background-color:#e8eef4}.tableData>tfoot>tr>th,.tableData>tfoot>tr>td{background-color:#e8eef4}.tableDataDark{border:solid 1px #8db2d8;border-collapse:collapse}.tableDataDark td{border:solid 1px #8db2d8;background-color:#fff}.tableDataDark th{background-color:#8db2d8;border:solid 1px #8db2d8}.tableDataContainer{background-color:#fff}.tableDataVertical{border:solid 1px #e8eef4;border-collapse:collapse}.tableDataVertical>tbody>tr:nth-child(odd){background-color:#e8eef4;margin:0;padding:0}.tableDataVertical>tbody>tr>th.name{width:170px;text-align:right}.tableDataVertical table.sub>tbody>tr:not(:first-child)>th,.tableDataVertical table.sub>tbody>tr:not(:first-child)>td{border-top:1px dashed #aaa}.tableDataVertical table.sub>tbody>tr>th{font-weight:normal;text-align:right}.tableDataVertical table.sub>tbody>tr>th.name{text-align:right}.icon16{display:inline-block;height:16px;width:16px;margin-left:2px;cursor:pointer}.subtleUntilHover{-moz-opacity:.3;opacity:.3}.subtleUntilHover:hover{-moz-opacity:1;opacity:1}body{font-size:12px;font-family:"Segoe UI",Arial,Verdana,Tahoma,sans-serif;margin:0;padding:0 10px;color:#333}body.layout{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAFvCAMAAABEoqrSAAADAFBMVEVRUVFUVFRYWFhbW1tfX19iYmJmZmZpaWltbW1wcHB0dHR3d3d7e3t/f3/MzMzNzc3Ozs7Pz8/Q0NDR0dHS0tLT09PU1NTV1dXW1tbX19fY2NjZ2dna2trb29vc3Nzd3d3e3t7f39/g4ODh4eHi4uLj4+Pk5OTl5eXm5ubn5+fo6Ojp6enq6urr6+vs7Ozt7e3u7u7v7+/w8PDx8fHy8vLz8/P09PT19fX29vb39/f4+Pj5+fn6+vr7+/v8/Pz9/f3+/v4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD28iAmAAAAbklEQVRIx2NUZ4ABlv9kMZkYRrXhYUphMwzZXEYCogQV0FfbUHMOrSxGAoyMBEygM/M/zZnMjFiZDPQEjCYEsin2/EYKk6qGDTVzR7TnRwN1NFBHPT8aqKOBOur5Uc+PBip1zWVkYGCBCv2nhrkAr7hI+jpl4KUAAAAASUVORK5CYII=) left top repeat-x #d1d1d1}.page{max-width:1230px;min-width:750px;margin-left:auto;margin-right:auto}header,#header{position:relative;margin:0;padding:0;height:110px}header #headerMenu,#header #headerMenu{height:24px;padding:4px;line-height:22px;text-align:right}header #headerMenu a,#header #headerMenu a{color:#000;text-decoration:none}header #headerMenu a:hover,#header #headerMenu a:hover{text-decoration:underline}header #heading,#header #heading{float:left;height:75px}header #heading img,#header #heading img{height:75px;width:300px}header nav,#header nav{padding:0;margin:0;font-size:1.1em}header nav ul#menu,#header nav ul#menu{height:29px;padding:3px 6px;margin:0;list-style:none;z-index:100000}header nav ul#menu>li,#header nav ul#menu>li{display:inline-block;z-index:100000;margin-bottom:-4px}header nav ul#menu>li a,#header nav ul#menu>li a{padding:4px 10px;text-decoration:none;color:#fff;display:inline-block;height:21px}header nav ul#menu>li a:hover,#header nav ul#menu>li a:hover{color:#ffd5ba;text-decoration:none}header nav ul#menu>li a:active,#header nav ul#menu>li a:active{text-decoration:none}header nav ul#menu>li.sep,#header nav ul#menu>li.sep{margin-top:4px;height:21px;border-left:1px solid #777}header nav ul#menu>li.moveRight,#header nav ul#menu>li.moveRight{margin-left:40px}header nav ul#menu>li>ul,#header nav ul#menu>li>ul{z-index:100000;display:none;list-style:none;position:absolute;margin:2px 0 0 0;border-left:1px solid #d1d1d1;border-bottom:1px solid #d1d1d1;border-right:1px solid #d1d1d1;padding:0;min-width:180px;box-shadow:2px 2px 5px rgba(209,209,209,.5)}header nav ul#menu>li>ul li,#header nav ul#menu>li>ul li{position:relative;background-color:#f2f2f2;background-position:top;background-repeat:repeat-x}header nav ul#menu>li>ul li:not(:first-child),#header nav ul#menu>li>ul li:not(:first-child){border-top:1px solid #e6e6e6}header nav ul#menu>li>ul li:hover,#header nav ul#menu>li>ul li:hover{background-color:#e6e6e6}header nav ul#menu>li>ul li:hover:not(:first-child),#header nav ul#menu>li>ul li:hover:not(:first-child){border-top:1px solid #d9d9d9}header nav ul#menu>li>ul li.hasSubMenu,#header nav ul#menu>li>ul li.hasSubMenu{background-image:url(data:image/png;base64,iVBORw0KGgoAALine truncated
|
||||||
@@ -509,8 +509,18 @@
|
|||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
</Compile>
|
</Compile>
|
||||||
<Compile Include="Areas\Public\Views\Shared\_Layout.generated.cs">
|
<Compile Include="Views\Shared\DisplayTemplates\AccessDeniedException.generated.cs">
|
||||||
<DependentUpon>_Layout.cshtml</DependentUpon>
|
<DependentUpon>AccessDeniedException.cshtml</DependentUpon>
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\Shared\DisplayTemplates\Exception.generated.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>Exception.cshtml</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Views\Shared\_PublicLayout.generated.cs">
|
||||||
|
<DependentUpon>_PublicLayout.cshtml</DependentUpon>
|
||||||
<AutoGen>True</AutoGen>
|
<AutoGen>True</AutoGen>
|
||||||
<DesignTime>True</DesignTime>
|
<DesignTime>True</DesignTime>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -1778,9 +1788,17 @@
|
|||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
<LastGenOutput>Licence.generated.cs</LastGenOutput>
|
<LastGenOutput>Licence.generated.cs</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
<None Include="Areas\Public\Views\Shared\_Layout.cshtml">
|
<Content Include="Views\Shared\DisplayTemplates\AccessDeniedException.cshtml">
|
||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
<LastGenOutput>_Layout.generated.cs</LastGenOutput>
|
<LastGenOutput>AccessDeniedException.generated.cs</LastGenOutput>
|
||||||
|
</Content>
|
||||||
|
<None Include="Views\Shared\DisplayTemplates\Exception.cshtml">
|
||||||
|
<Generator>RazorGenerator</Generator>
|
||||||
|
<LastGenOutput>Exception.generated.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<None Include="Views\Shared\_PublicLayout.cshtml">
|
||||||
|
<Generator>RazorGenerator</Generator>
|
||||||
|
<LastGenOutput>_PublicLayout.generated.cs</LastGenOutput>
|
||||||
</None>
|
</None>
|
||||||
<None Include="Areas\Public\Views\UserHeldDevices\Index.cshtml">
|
<None Include="Areas\Public\Views\UserHeldDevices\Index.cshtml">
|
||||||
<Generator>RazorGenerator</Generator>
|
<Generator>RazorGenerator</Generator>
|
||||||
@@ -1915,6 +1933,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Folder Include="Areas\API\Models\WirelessCertificate\" />
|
<Folder Include="Areas\API\Models\WirelessCertificate\" />
|
||||||
|
<Folder Include="Areas\Public\Views\Shared\" />
|
||||||
<Folder Include="Areas\Services\Models\" />
|
<Folder Include="Areas\Services\Models\" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
@@ -1968,7 +1987,7 @@
|
|||||||
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
<SaveServerSettingsInUserFile>False</SaveServerSettingsInUserFile>
|
||||||
</WebProjectProperties>
|
</WebProjectProperties>
|
||||||
</FlavorProperties>
|
</FlavorProperties>
|
||||||
<UserProperties BuildVersion_UpdateFileVersion="True" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_BuildVersioningStyle="None.DeltaBaseYear.MonthAndDayStamp.TimeStamp" BuildVersion_DetectChanges="False" BuildVersion_UseGlobalSettings="False" BuildVersion_BuildAction="Both" BuildVersion_StartDate="2011/7/1" />
|
<UserProperties BuildVersion_StartDate="2011/7/1" BuildVersion_BuildAction="Both" BuildVersion_UseGlobalSettings="False" BuildVersion_DetectChanges="False" BuildVersion_BuildVersioningStyle="None.DeltaBaseYear.MonthAndDayStamp.TimeStamp" BuildVersion_UpdateAssemblyVersion="True" BuildVersion_UpdateFileVersion="True" />
|
||||||
</VisualStudio>
|
</VisualStudio>
|
||||||
</ProjectExtensions>
|
</ProjectExtensions>
|
||||||
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
|
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
@model Disco.Services.Authorization.AccessDeniedException
|
||||||
|
@{
|
||||||
|
ViewBag.Title = "Authorization Required";
|
||||||
|
Disco.Services.Authorization.AccessDeniedException ex = (Disco.Services.Authorization.AccessDeniedException)Model;
|
||||||
|
}
|
||||||
|
<i class="icon accessDenied"></i>
|
||||||
|
<div>
|
||||||
|
<h2 class="error">@ex.Message</h2>
|
||||||
|
<h4>Feature:</h4>
|
||||||
|
<div class="code stacktrace" style="width: 560px;">@ex.Resource</div>
|
||||||
|
</div>
|
||||||
@@ -0,0 +1,91 @@
|
|||||||
|
#pragma warning disable 1591
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.34003
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Disco.Web.Views.Shared.DisplayTemplates
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Text;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Helpers;
|
||||||
|
using System.Web.Mvc;
|
||||||
|
using System.Web.Mvc.Ajax;
|
||||||
|
using System.Web.Mvc.Html;
|
||||||
|
using System.Web.Routing;
|
||||||
|
using System.Web.Security;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.WebPages;
|
||||||
|
using Disco.BI.Extensions;
|
||||||
|
using Disco.Models.Repository;
|
||||||
|
using Disco.Services.Authorization;
|
||||||
|
using Disco.Services.Web;
|
||||||
|
using Disco.Web;
|
||||||
|
using Disco.Web.Extensions;
|
||||||
|
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
||||||
|
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/DisplayTemplates/AccessDeniedException.cshtml")]
|
||||||
|
public partial class AccessDeniedException : Disco.Services.Web.WebViewPage<Disco.Services.Authorization.AccessDeniedException>
|
||||||
|
{
|
||||||
|
public AccessDeniedException()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public override void Execute()
|
||||||
|
{
|
||||||
|
|
||||||
|
#line 2 "..\..\Views\Shared\DisplayTemplates\AccessDeniedException.cshtml"
|
||||||
|
|
||||||
|
ViewBag.Title = "Authorization Required";
|
||||||
|
Disco.Services.Authorization.AccessDeniedException ex = (Disco.Services.Authorization.AccessDeniedException)Model;
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n<i");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"icon accessDenied\"");
|
||||||
|
|
||||||
|
WriteLiteral("></i>\r\n<div>\r\n <h2");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"error\"");
|
||||||
|
|
||||||
|
WriteLiteral(">");
|
||||||
|
|
||||||
|
|
||||||
|
#line 8 "..\..\Views\Shared\DisplayTemplates\AccessDeniedException.cshtml"
|
||||||
|
Write(ex.Message);
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("</h2>\r\n <h4>Feature:</h4>\r\n <div");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"code stacktrace\"");
|
||||||
|
|
||||||
|
WriteLiteral(" style=\"width: 560px;\"");
|
||||||
|
|
||||||
|
WriteLiteral(">");
|
||||||
|
|
||||||
|
|
||||||
|
#line 10 "..\..\Views\Shared\DisplayTemplates\AccessDeniedException.cshtml"
|
||||||
|
Write(ex.Resource);
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("</div>\r\n</div>");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma warning restore 1591
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
@model System.Exception
|
||||||
|
@{
|
||||||
|
var ex = Model;
|
||||||
|
}
|
||||||
|
<i class="icon"></i>
|
||||||
|
@while (ex != null)
|
||||||
|
{
|
||||||
|
<div class="form" style="width: 650px">
|
||||||
|
<h2 class="error">@ex.Message</h2>
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
Details <a href="#" class="toClipboard smallMessage">(Copy to Clipboard)</a>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div class="code stacktrace" style="width: 638px;">@ex.Message
|
||||||
|
[@ex.GetType().FullName]
|
||||||
|
|
||||||
|
Stack Trace:
|
||||||
|
@ex.StackTrace</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
ex = ex.InnerException;
|
||||||
|
}
|
||||||
|
<script>
|
||||||
|
$(function () {
|
||||||
|
var toClipboardLinks = $('#layout_Error').find('a.toClipboard');
|
||||||
|
|
||||||
|
if (window.clipboardData) {
|
||||||
|
// Clipboard access available
|
||||||
|
toClipboardLinks.click(function (e) {
|
||||||
|
$this = $(this);
|
||||||
|
|
||||||
|
var details = $this.closest('table').find('div.stacktrace').text();
|
||||||
|
details = $.trim(details).replace(/\n/gm, '\r\n');
|
||||||
|
window.clipboardData.setData('Text', details);
|
||||||
|
|
||||||
|
alert('Details copied to Clipboard');
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// No Clipboard access available - hide links
|
||||||
|
toClipboardLinks.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
@@ -0,0 +1,166 @@
|
|||||||
|
#pragma warning disable 1591
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.34003
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace Disco.Web.Views.Shared.DisplayTemplates
|
||||||
|
{
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Net;
|
||||||
|
using System.Text;
|
||||||
|
using System.Web;
|
||||||
|
using System.Web.Helpers;
|
||||||
|
using System.Web.Mvc;
|
||||||
|
using System.Web.Mvc.Ajax;
|
||||||
|
using System.Web.Mvc.Html;
|
||||||
|
using System.Web.Routing;
|
||||||
|
using System.Web.Security;
|
||||||
|
using System.Web.UI;
|
||||||
|
using System.Web.WebPages;
|
||||||
|
using Disco.BI.Extensions;
|
||||||
|
using Disco.Models.Repository;
|
||||||
|
using Disco.Services.Authorization;
|
||||||
|
using Disco.Services.Web;
|
||||||
|
using Disco.Web;
|
||||||
|
using Disco.Web.Extensions;
|
||||||
|
|
||||||
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
||||||
|
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/DisplayTemplates/Exception.cshtml")]
|
||||||
|
public partial class Exception : Disco.Services.Web.WebViewPage<System.Exception>
|
||||||
|
{
|
||||||
|
public Exception()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
public override void Execute()
|
||||||
|
{
|
||||||
|
|
||||||
|
#line 2 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
|
||||||
|
|
||||||
|
var ex = Model;
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n<i");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"icon\"");
|
||||||
|
|
||||||
|
WriteLiteral("></i>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 6 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
|
||||||
|
while (ex != null)
|
||||||
|
{
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(" <div");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"form\"");
|
||||||
|
|
||||||
|
WriteLiteral(" style=\"width: 650px\"");
|
||||||
|
|
||||||
|
WriteLiteral(">\r\n <h2");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"error\"");
|
||||||
|
|
||||||
|
WriteLiteral(">");
|
||||||
|
|
||||||
|
|
||||||
|
#line 9 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
|
||||||
|
Write(ex.Message);
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("</h2>\r\n <table>\r\n <tr>\r\n <td>\r\n " +
|
||||||
|
" Details <a");
|
||||||
|
|
||||||
|
WriteLiteral(" href=\"#\"");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"toClipboard smallMessage\"");
|
||||||
|
|
||||||
|
WriteLiteral(">(Copy to Clipboard)</a>\r\n </td>\r\n </tr>\r\n <" +
|
||||||
|
"tr>\r\n <td>\r\n <div");
|
||||||
|
|
||||||
|
WriteLiteral(" class=\"code stacktrace\"");
|
||||||
|
|
||||||
|
WriteLiteral(" style=\"width: 638px;\"");
|
||||||
|
|
||||||
|
WriteLiteral(">");
|
||||||
|
|
||||||
|
|
||||||
|
#line 18 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
|
||||||
|
Write(ex.Message);
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("\r\n[");
|
||||||
|
|
||||||
|
|
||||||
|
#line 19 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
|
||||||
|
Write(ex.GetType().FullName);
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("]\r\n\r\nStack Trace:\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 22 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
|
||||||
|
Write(ex.StackTrace);
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral("</div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n");
|
||||||
|
|
||||||
|
|
||||||
|
#line 27 "..\..\Views\Shared\DisplayTemplates\Exception.cshtml"
|
||||||
|
|
||||||
|
ex = ex.InnerException;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#line default
|
||||||
|
#line hidden
|
||||||
|
WriteLiteral(@"<script>
|
||||||
|
$(function () {
|
||||||
|
var toClipboardLinks = $('#layout_Error').find('a.toClipboard');
|
||||||
|
|
||||||
|
if (window.clipboardData) {
|
||||||
|
// Clipboard access available
|
||||||
|
toClipboardLinks.click(function (e) {
|
||||||
|
$this = $(this);
|
||||||
|
|
||||||
|
var details = $this.closest('table').find('div.stacktrace').text();
|
||||||
|
details = $.trim(details).replace(/\n/gm, '\r\n');
|
||||||
|
window.clipboardData.setData('Text', details);
|
||||||
|
|
||||||
|
alert('Details copied to Clipboard');
|
||||||
|
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// No Clipboard access available - hide links
|
||||||
|
toClipboardLinks.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
");
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#pragma warning restore 1591
|
||||||
@@ -1,38 +1,15 @@
|
|||||||
@model System.Web.Mvc.HandleErrorInfo
|
@model System.Web.Mvc.HandleErrorInfo
|
||||||
@{
|
@{
|
||||||
ViewBag.Title = "Server Error";
|
ViewBag.Title = "An Error Occurred";
|
||||||
|
|
||||||
var ex = Model.Exception;
|
var ex = Model.Exception;
|
||||||
|
|
||||||
|
|
||||||
while (ex != null)
|
|
||||||
{
|
|
||||||
|
|
||||||
<div class="form" style="width: 650px">
|
|
||||||
<h2 style="white-space: pre;">@ex.Message</h2>
|
|
||||||
<table style="background-color: #fff;">
|
|
||||||
<tr>
|
|
||||||
<th style="width: 40px;">Type:</th>
|
|
||||||
<td>
|
|
||||||
@ex.GetType().Name
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<th>Stack:
|
|
||||||
</th>
|
|
||||||
<td>
|
|
||||||
<div class="code" style="width: 560px; white-space: pre; overflow: auto;">@ex.StackTrace</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
ex = ex.InnerException;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
<script>
|
<div id="layout_Error">
|
||||||
$(function () {
|
@Html.DisplayFor(m => m.Exception)
|
||||||
$('#layout_PageHeading').css({ 'background': '#C80000', 'color': '#fff' });
|
<script>
|
||||||
$('#layout_Page').css({ 'background': 'linear-gradient(to top, #F2B0B0, #C80000 200px)' }).find('h2').css({ 'color': '#fff' });
|
$(function () {
|
||||||
});
|
$('#layout_PageHeading').css({ 'background': '#C80000', 'color': '#fff' });
|
||||||
</script>
|
$('#layout_Page').css({ 'background': 'linear-gradient(to top, #F2B0B0, #C80000 200px)' });
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
@@ -45,91 +45,36 @@ namespace Disco.Web.Views.Shared
|
|||||||
|
|
||||||
#line 2 "..\..\Views\Shared\Error.cshtml"
|
#line 2 "..\..\Views\Shared\Error.cshtml"
|
||||||
|
|
||||||
ViewBag.Title = "Server Error";
|
ViewBag.Title = "An Error Occurred";
|
||||||
|
|
||||||
var ex = Model.Exception;
|
var ex = Model.Exception;
|
||||||
|
|
||||||
|
|
||||||
while (ex != null)
|
|
||||||
{
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
WriteLiteral(" <div");
|
WriteLiteral("\r\n<div");
|
||||||
|
|
||||||
WriteLiteral(" class=\"form\"");
|
WriteLiteral(" id=\"layout_Error\"");
|
||||||
|
|
||||||
WriteLiteral(" style=\"width: 650px\"");
|
WriteLiteral(">\r\n");
|
||||||
|
|
||||||
WriteLiteral(">\r\n <h2");
|
WriteLiteral(" ");
|
||||||
|
|
||||||
WriteLiteral(" style=\"white-space: pre;\"");
|
|
||||||
|
|
||||||
WriteLiteral(">");
|
|
||||||
|
|
||||||
|
|
||||||
#line 12 "..\..\Views\Shared\Error.cshtml"
|
#line 8 "..\..\Views\Shared\Error.cshtml"
|
||||||
Write(ex.Message);
|
Write(Html.DisplayFor(m => m.Exception));
|
||||||
|
|
||||||
|
|
||||||
#line default
|
|
||||||
#line hidden
|
|
||||||
WriteLiteral("</h2>\r\n <table");
|
|
||||||
|
|
||||||
WriteLiteral(" style=\"background-color: #fff;\"");
|
|
||||||
|
|
||||||
WriteLiteral(">\r\n <tr>\r\n <th");
|
|
||||||
|
|
||||||
WriteLiteral(" style=\"width: 40px;\"");
|
|
||||||
|
|
||||||
WriteLiteral(">Type:</th>\r\n <td>\r\n");
|
|
||||||
|
|
||||||
WriteLiteral(" ");
|
|
||||||
|
|
||||||
|
|
||||||
#line 17 "..\..\Views\Shared\Error.cshtml"
|
|
||||||
Write(ex.GetType().Name);
|
|
||||||
|
|
||||||
|
|
||||||
#line default
|
|
||||||
#line hidden
|
|
||||||
WriteLiteral("\r\n </td>\r\n </tr>\r\n <tr>\r\n <th" +
|
|
||||||
">Stack:\r\n </th>\r\n <td>\r\n <div");
|
|
||||||
|
|
||||||
WriteLiteral(" class=\"code\"");
|
|
||||||
|
|
||||||
WriteLiteral(" style=\"width: 560px; white-space: pre; overflow: auto;\"");
|
|
||||||
|
|
||||||
WriteLiteral(">");
|
|
||||||
|
|
||||||
|
|
||||||
#line 24 "..\..\Views\Shared\Error.cshtml"
|
|
||||||
Write(ex.StackTrace);
|
|
||||||
|
|
||||||
|
|
||||||
#line default
|
|
||||||
#line hidden
|
|
||||||
WriteLiteral("</div>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n");
|
|
||||||
|
|
||||||
|
|
||||||
#line 29 "..\..\Views\Shared\Error.cshtml"
|
|
||||||
|
|
||||||
ex = ex.InnerException;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
WriteLiteral(@"
|
WriteLiteral(@"
|
||||||
<script>
|
<script>
|
||||||
$(function () {
|
$(function () {
|
||||||
$('#layout_PageHeading').css({ 'background': '#C80000', 'color': '#fff' });
|
$('#layout_PageHeading').css({ 'background': '#C80000', 'color': '#fff' });
|
||||||
$('#layout_Page').css({ 'background': 'linear-gradient(to top, #F2B0B0, #C80000 200px)' }).find('h2').css({ 'color': '#fff' });
|
$('#layout_Page').css({ 'background': 'linear-gradient(to top, #F2B0B0, #C80000 200px)' });
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
");
|
</div>");
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
File renamed without changes.
+21
-21
@@ -2,14 +2,14 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// This code was generated by a tool.
|
// This code was generated by a tool.
|
||||||
// Runtime Version:4.0.30319.18051
|
// Runtime Version:4.0.30319.34003
|
||||||
//
|
//
|
||||||
// Changes to this file may cause incorrect behavior and will be lost if
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// the code is regenerated.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
namespace Disco.Web.Areas.Public.Views.Shared
|
namespace Disco.Web.Views.Shared
|
||||||
{
|
{
|
||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
@@ -34,16 +34,16 @@ namespace Disco.Web.Areas.Public.Views.Shared
|
|||||||
using Disco.Web.Extensions;
|
using Disco.Web.Extensions;
|
||||||
|
|
||||||
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
[System.CodeDom.Compiler.GeneratedCodeAttribute("RazorGenerator", "2.0.0.0")]
|
||||||
[System.Web.WebPages.PageVirtualPathAttribute("~/Areas/Public/Views/Shared/_Layout.cshtml")]
|
[System.Web.WebPages.PageVirtualPathAttribute("~/Views/Shared/_PublicLayout.cshtml")]
|
||||||
public partial class Layout : Disco.Services.Web.WebViewPage<dynamic>
|
public partial class PublicLayout : Disco.Services.Web.WebViewPage<dynamic>
|
||||||
{
|
{
|
||||||
public Layout()
|
public PublicLayout()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
public override void Execute()
|
public override void Execute()
|
||||||
{
|
{
|
||||||
|
|
||||||
#line 1 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 1 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
|
|
||||||
Html.BundleDeferred("~/Style/Site");
|
Html.BundleDeferred("~/Style/Site");
|
||||||
Html.BundleDeferred("~/ClientScripts/Core");
|
Html.BundleDeferred("~/ClientScripts/Core");
|
||||||
@@ -64,7 +64,7 @@ WriteLiteral(" content=\"IE=edge\"");
|
|||||||
WriteLiteral(" />\r\n <title>Disco - ");
|
WriteLiteral(" />\r\n <title>Disco - ");
|
||||||
|
|
||||||
|
|
||||||
#line 10 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 10 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(CommonHelpers.BreadcrumbsTitle(ViewBag.Title));
|
Write(CommonHelpers.BreadcrumbsTitle(ViewBag.Title));
|
||||||
|
|
||||||
|
|
||||||
@@ -75,7 +75,7 @@ WriteLiteral("</title>\r\n");
|
|||||||
WriteLiteral(" ");
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
#line 11 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 11 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(Html.BundleRenderDeferred());
|
Write(Html.BundleRenderDeferred());
|
||||||
|
|
||||||
|
|
||||||
@@ -86,7 +86,7 @@ WriteLiteral("\r\n");
|
|||||||
WriteLiteral(" ");
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
#line 12 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 12 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(RenderSection("head", false));
|
Write(RenderSection("head", false));
|
||||||
|
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ WriteLiteral(">\r\n <a");
|
|||||||
|
|
||||||
WriteAttribute("href", Tuple.Create(" href=\"", 535), Tuple.Create("\"", 580)
|
WriteAttribute("href", Tuple.Create(" href=\"", 535), Tuple.Create("\"", 580)
|
||||||
|
|
||||||
#line 19 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 19 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
, Tuple.Create(Tuple.Create("", 542), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Public.Public.Index())
|
, Tuple.Create(Tuple.Create("", 542), Tuple.Create<System.Object, System.Int32>(Url.Action(MVC.Public.Public.Index())
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@@ -124,7 +124,7 @@ WriteLiteral(">\r\n <img");
|
|||||||
|
|
||||||
WriteAttribute("src", Tuple.Create(" src=\"", 612), Tuple.Create("\"", 662)
|
WriteAttribute("src", Tuple.Create(" src=\"", 612), Tuple.Create("\"", 662)
|
||||||
|
|
||||||
#line 20 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 20 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
, Tuple.Create(Tuple.Create("", 618), Tuple.Create<System.Object, System.Int32>(Links.ClientSource.Style.Images.Heading_png
|
, Tuple.Create(Tuple.Create("", 618), Tuple.Create<System.Object, System.Int32>(Links.ClientSource.Style.Images.Heading_png
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
@@ -146,7 +146,7 @@ WriteLiteral(" id=\"menu\"");
|
|||||||
WriteLiteral(">\r\n <li>");
|
WriteLiteral(">\r\n <li>");
|
||||||
|
|
||||||
|
|
||||||
#line 27 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 27 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(Html.ActionLink("Public Reports", MVC.Public.Public.Index()));
|
Write(Html.ActionLink("Public Reports", MVC.Public.Public.Index()));
|
||||||
|
|
||||||
|
|
||||||
@@ -163,7 +163,7 @@ WriteLiteral(" style=\"margin-left: 10px;\"");
|
|||||||
WriteLiteral(">");
|
WriteLiteral(">");
|
||||||
|
|
||||||
|
|
||||||
#line 29 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 29 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(Html.ActionLink("Disco Administration", MVC.Job.Index(), accesskey: "1"));
|
Write(Html.ActionLink("Disco Administration", MVC.Job.Index(), accesskey: "1"));
|
||||||
|
|
||||||
|
|
||||||
@@ -177,7 +177,7 @@ WriteLiteral(" id=\"layout_PageHeading\"");
|
|||||||
WriteLiteral(">");
|
WriteLiteral(">");
|
||||||
|
|
||||||
|
|
||||||
#line 33 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 33 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(CommonHelpers.Breadcrumbs(ViewBag.Title));
|
Write(CommonHelpers.Breadcrumbs(ViewBag.Title));
|
||||||
|
|
||||||
|
|
||||||
@@ -192,7 +192,7 @@ WriteLiteral(">\r\n");
|
|||||||
WriteLiteral(" ");
|
WriteLiteral(" ");
|
||||||
|
|
||||||
|
|
||||||
#line 35 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 35 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(RenderBody());
|
Write(RenderBody());
|
||||||
|
|
||||||
|
|
||||||
@@ -201,7 +201,7 @@ WriteLiteral(" ");
|
|||||||
WriteLiteral("\r\n </section>\r\n <footer>\r\n Disco v");
|
WriteLiteral("\r\n </section>\r\n <footer>\r\n Disco v");
|
||||||
|
|
||||||
|
|
||||||
#line 38 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 38 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(Disco.Web.DiscoApplication.Version);
|
Write(Disco.Web.DiscoApplication.Version);
|
||||||
|
|
||||||
|
|
||||||
@@ -212,7 +212,7 @@ WriteLiteral(" ");
|
|||||||
WriteLiteral("@ ");
|
WriteLiteral("@ ");
|
||||||
|
|
||||||
|
|
||||||
#line 38 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 38 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(Disco.Web.DiscoApplication.OrganisationName);
|
Write(Disco.Web.DiscoApplication.OrganisationName);
|
||||||
|
|
||||||
|
|
||||||
@@ -221,7 +221,7 @@ WriteLiteral("@ ");
|
|||||||
WriteLiteral(" | ");
|
WriteLiteral(" | ");
|
||||||
|
|
||||||
|
|
||||||
#line 38 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 38 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(Html.ActionLink("Credits", MVC.Public.Public.Credits()));
|
Write(Html.ActionLink("Credits", MVC.Public.Public.Credits()));
|
||||||
|
|
||||||
|
|
||||||
@@ -230,7 +230,7 @@ WriteLiteral(" | ");
|
|||||||
WriteLiteral(" | ");
|
WriteLiteral(" | ");
|
||||||
|
|
||||||
|
|
||||||
#line 38 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 38 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Write(Html.ActionLink("Licence", MVC.Public.Public.Licence()));
|
Write(Html.ActionLink("Licence", MVC.Public.Public.Licence()));
|
||||||
|
|
||||||
|
|
||||||
@@ -239,13 +239,13 @@ WriteLiteral(" | ");
|
|||||||
WriteLiteral("\r\n </footer>\r\n </div>\r\n");
|
WriteLiteral("\r\n </footer>\r\n </div>\r\n");
|
||||||
|
|
||||||
|
|
||||||
#line 41 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 41 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
|
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
#line hidden
|
#line hidden
|
||||||
|
|
||||||
#line 41 "..\..\Areas\Public\Views\Shared\_Layout.cshtml"
|
#line 41 "..\..\Views\Shared\_PublicLayout.cshtml"
|
||||||
Disco.Services.Plugins.Features.UIExtension.UIExtensions.ExecuteExtensionResult(this);
|
Disco.Services.Plugins.Features.UIExtension.UIExtensions.ExecuteExtensionResult(this);
|
||||||
|
|
||||||
#line default
|
#line default
|
||||||
Reference in new issue
Block a user