Carrotware.CMS.Mvc.UI.Admin.Controllers.CmsAdminController.OnAuthorization C# (CSharp) Метод

OnAuthorization() защищенный Метод

protected OnAuthorization ( System.Web.Mvc.AuthorizationContext filterContext ) : void
filterContext System.Web.Mvc.AuthorizationContext
Результат void
		protected override void OnAuthorization(AuthorizationContext filterContext) {
			base.OnAuthorization(filterContext);

			RouteValueDictionary vals = filterContext.RouteData.Values;
			string action = vals["action"].ToString().ToLowerInvariant();
			string controller = vals["controller"].ToString().ToLowerInvariant();

			if (this.User.Identity.IsAuthenticated) {
				List<string> lstOKNoSiteActions = new List<string>();
				lstOKNoSiteActions.Add("siteinfo");
				lstOKNoSiteActions.Add("filebrowser");
				lstOKNoSiteActions.Add("about");
				lstOKNoSiteActions.Add("userindex");
				lstOKNoSiteActions.Add("roleindex");
				lstOKNoSiteActions.Add("userprofile");
				lstOKNoSiteActions.Add("changepassword");
				lstOKNoSiteActions.Add("login");
				lstOKNoSiteActions.Add("logoff");

				List<string> lstInitSiteActions = new List<string>();
				lstInitSiteActions.Add("login");
				lstInitSiteActions.Add("forgotpassword");
				lstInitSiteActions.Add("createfirstadmin");
				lstInitSiteActions.Add("databasesetup");

				try {
					if (!lstInitSiteActions.Contains(action)) {
						if (!lstOKNoSiteActions.Contains(action) && !SiteData.CurretSiteExists) {
							filterContext.Result = new RedirectResult(SiteFilename.SiteInfoURL);
							return;
						}

						if (DatabaseUpdate.TablesIncomplete) {
							filterContext.Result = new RedirectResult(SiteFilename.DatabaseSetupURL);
							return;
						}
					}
				} catch (Exception ex) {
					//assumption is database is probably empty / needs updating, so trigger the under construction view
					if (DatabaseUpdate.SystemNeedsChecking(ex) || DatabaseUpdate.AreCMSTablesIncomplete()) {
						filterContext.Result = new RedirectResult(SiteFilename.DatabaseSetupURL);
						return;
					} else {
						//something bad has gone down, toss back the error
						throw;
					}
				}
			}
		}