Exemplo n.º 1
0
        /// <summary>
        /// Create a view.
        /// </summary>
        /// <param name="context">Context to render</param>
        public void Render(IControllerContext context, IViewData viewData, TextWriter writer)
        {
            string layoutName;
            if (context.LayoutName != null)
                layoutName = context.LayoutName;
            else
            {
                var controllerName = context.ControllerUri.TrimEnd('/');
                int pos = controllerName.LastIndexOf('/');
                layoutName = context.ControllerUri;
                layoutName += pos == -1
                                  ? controllerName + ".haml"
                                  : controllerName.Substring(pos + 1) + ".haml";

                if (!MvcServer.CurrentMvc.ViewProvider.Exists(layoutName))
                    layoutName = "Shared/Application.haml";
            }

            string viewPath = context.ViewPath + ".haml";


            CompiledTemplate template = _templateEngine.Compile(new List<string> {layoutName, viewPath},
                                                                typeof (NHamlView));

            var instance = (NHamlView)template.CreateInstance();
            instance.ViewData = viewData;
            instance.Render(writer);
        }
Exemplo n.º 2
0
 protected override void OnAfterRendering(IEngineContext context, IController controller,
                                          IControllerContext controllerContext){
     var mvc = MvcContext.Create((Controller) controller);
     var logname = acl.token(mvc).Replace("/", ".").Substring(1);
     var log = logger.get(logname);
     log.info(() => myapp.usrName + "\t\tAFTER_RENDER:\t" + acl.token(mvc));
 }
Exemplo n.º 3
0
 protected override void OnAfterRendering(IEngineContext context, IController controller,
                                          IControllerContext controllerContext){
     if (writeAfterAction){
         return;
     }
     doLog(context);
 }
Exemplo n.º 4
0
        public bool AuthorizeContext(IControllerContext controllerContext, IController controller) {
            //ОБЩАЯ ПОЛИТИКА - ОТКРЫТОСТЬ ДЕЙСТВИЯ

            // сперва проверим не админ ли сам пользователь
            var usr = myapp.usr;
            if(myapp.roles.IsAdmin(usr)) return true; //админам можно
            
            // потом проверим не назначены ли пользователю спец-права на данное действие или контроллер
            var denyspecialrole = string.Format("DENY_{0}_{1}", controllerContext.Name, controllerContext.Action).ToUpper();
            if (myapp.roles.IsInRole(usr, denyspecialrole)) return false;
            var allowspecialrole = string.Format("ALLOW_{0}_{1}", controllerContext.Name, controllerContext.Action).ToUpper();
            if (myapp.roles.IsInRole(usr, allowspecialrole)) return true;
            var denycontrollerrolename = string.Format("DENY_{0}", controllerContext.Name).ToUpper();
            if (myapp.roles.IsInRole(usr, denycontrollerrolename)) return false;
            var allowcontrollerrolename = string.Format("ALLOW_{0}", controllerContext.Name).ToUpper();
            if (myapp.roles.IsInRole(usr, allowcontrollerrolename)) return true;

            //потом проверяем по атрибутам ролей
            IEnumerable<string> roles = getroles(controller, controllerContext);
            if (roles.Count() != 0) {
                if (roles.All(x => !myapp.roles.IsInRole(usr, x))) return false;
            }

            //если доехали до сюда, значит ошибок авторизации не было, значит дозволим выполнение
            return true;
        }
Exemplo n.º 5
0
 /// <summary>
 ///             Calculates the param points. Implementers should return value equals or greater than
 ///             zero indicating whether the parameter can be bound successfully. The greater the value (points)
 ///             the more successful the implementation indicates to the framework
 /// </summary>
 /// <param name="context">The context.</param>
 /// <param name="controller">The controller.</param>
 /// <param name="controllerContext">The controller context.</param>
 /// <param name="parameterInfo">The parameter info.</param>
 /// <returns>
 /// </returns>
 public int CalculateParamPoints(IEngineContext context, IController controller, IControllerContext controllerContext, ParameterInfo parameterInfo)
 {
     var token = context.Request[parameterName];
     if (CanConvert(parameterInfo.ParameterType, token))
         return 10;
     return 0;
 }
		public void Init()
		{
			mocks = new MockRepository();

			MockServices services = new MockServices();
			services.ViewSourceLoader = new FileAssemblyViewSourceLoader("Views");
			services.AddService(typeof(IViewSourceLoader), services.ViewSourceLoader);

			viewComponentFactory = new DefaultViewComponentFactory();
			viewComponentFactory.Initialize();
			services.AddService(typeof(IViewComponentFactory), viewComponentFactory);
			services.AddService(typeof(IViewComponentRegistry), viewComponentFactory.Registry);

			controller = mocks.DynamicMock<IController>();
			engineContext = new MockEngineContext(new UrlInfo("", "Home", "Index", "/", "castle"));
			controllerContext = new ControllerContext();

			factory = new SparkViewFactory();
			factory.Service(services);

			engineContext.AddService(typeof(IViewComponentFactory), viewComponentFactory);
			engineContext.AddService(typeof(IViewComponentRegistry), viewComponentFactory.Registry);

			manager = new DefaultViewEngineManager();
			manager.RegisterEngineForExtesionLookup(factory);
			manager.RegisterEngineForView(factory);

		}
Exemplo n.º 7
0
		/// <summary>
		/// Sets the context for the controller
		/// </summary>
		/// <param name="engineContext">The engine context.</param>
		/// <param name="context">The controller context.</param>
		public virtual void Contextualize(IEngineContext engineContext, IControllerContext context)
		{
			this.context = context;
			SetEngineContext(engineContext);
			renderingSupport = new RenderingSupport(context, engineContext);
			isContextualized = true;
		}
Exemplo n.º 8
0
        public bool Perform(ExecuteWhen exec, IEngineContext context, IController controller, IControllerContext controllerContext)
        {
            /*
            ArrayList admins = new ArrayList();
            admins.Add("jpino");
            admins.Add("logas");
            admins.Add("lmolina");

            if (admins.Contains (context.CurrentUser.Identity.Name.ToLower()))
                return true;
            else {
                context.Flash["TypeMsg"] = "alert alert-error";
                context.Flash["Msg"] = "Error : No eres admin";

                context.Response.RedirectToUrl ("/");
                return false;
            }
            */
            if (context.CurrentUser.IsInRole ("admin"))
                return true;
            else {
                context.Flash["TypeMsg"] = "alert alert-error";
                context.Flash["Msg"] = "Error : No eres admin";

                context.Response.RedirectToUrl ("/");
                return false;
            }
        }
        /// <summary>
        /// Creates the JS code generator info. Temporarily on IViewEngineManager
        /// </summary>
        /// <param name="engineContext">The engine context.</param>
        /// <param name="controller">The controller.</param>
        /// <param name="controllerContext">The controller context.</param>
        /// <returns></returns>
        public JSCodeGeneratorInfo CreateJSCodeGeneratorInfo(IEngineContext engineContext, IController controller,
            IControllerContext controllerContext)
        {
            var codeGen = new JSCodeGenerator();

            return new JSCodeGeneratorInfo(codeGen, new PrototypeGenerator(codeGen), new object[0], new object[0]);
        }
Exemplo n.º 10
0
        public void Init()
        {
            mocks = new MockRepository();
            serviceProvider = new StubMonoRailServices();

            var viewSourceLoader = new FileAssemblyViewSourceLoader("MonoRail.Tests.Views");
            viewSourceLoader.Service(this.serviceProvider);
            serviceProvider.ViewSourceLoader = viewSourceLoader;
            serviceProvider.AddService(typeof(IViewSourceLoader), viewSourceLoader);

            Configure();

            controllerContext = new ControllerContext();
            propertyBag = controllerContext.PropertyBag;

            controllerContext.LayoutNames = new []{"default"};
            output = new StringWriter();

            server = new StubServerUtility();
            routingEngine = MockRepository.GenerateMock<IRoutingEngine>();
            var urlBuilder = new DefaultUrlBuilder(server, routingEngine);
            serviceProvider.UrlBuilder = urlBuilder;
            serviceProvider.AddService(typeof(IUrlBuilder), urlBuilder);

            InitUrlInfo("", "home", "index");

            response = engineContext.Response;
        }
Exemplo n.º 11
0
        public void Init()
        {
            mocks = new MockRepository();
            factory = new SparkViewFactory();
            engineContext = mocks.CreateMock<IEngineContext>();
            server = new MockServerUtility();
            request = mocks.CreateMock<IRequest>();
            response = mocks.CreateMock<IResponse>();

            controller = mocks.CreateMock<IController>();
            controllerContext = mocks.CreateMock<IControllerContext>();
            routingEngine = mocks.CreateMock<IRoutingEngine>();
            output = new StringWriter();
            helpers = new HelperDictionary();

            propertyBag = new Dictionary<string, object>();
            flash = new Flash();
            session = new Dictionary<string, object>();
            requestParams = new NameValueCollection();
            contextItems = new Dictionary<string, object>();


            SetupResult.For(engineContext.Server).Return(server);
            SetupResult.For(engineContext.Request).Return(request);
            SetupResult.For(engineContext.Response).Return(response);
            SetupResult.For(engineContext.CurrentController).Return(controller);
            SetupResult.For(engineContext.CurrentControllerContext).Return(controllerContext);
            SetupResult.For(engineContext.Flash).Return(flash);
            SetupResult.For(engineContext.Session).Return(session);
            SetupResult.For(engineContext.Items).Return(contextItems);

            SetupResult.For(request.Params).Return(requestParams);

            SetupResult.For(controllerContext.LayoutNames).Return(new[] { "default" });
            SetupResult.For(controllerContext.Helpers).Return(helpers);
            SetupResult.For(controllerContext.PropertyBag).Return(propertyBag);

            SetupResult.For(routingEngine.IsEmpty).Return(true);

            var urlBuilder = new DefaultUrlBuilder(server, routingEngine);

            var serviceProvider = mocks.CreateMock<IServiceProvider>();
            var viewSourceLoader = new FileAssemblyViewSourceLoader("Views");
            SetupResult.For(serviceProvider.GetService(typeof(IViewSourceLoader))).Return(viewSourceLoader);
            SetupResult.For(serviceProvider.GetService(typeof(ILoggerFactory))).Return(new NullLogFactory());
            SetupResult.For(serviceProvider.GetService(typeof(ISparkViewEngine))).Return(null);
            SetupResult.For(serviceProvider.GetService(typeof(IUrlBuilder))).Return(urlBuilder);
            SetupResult.For(serviceProvider.GetService(typeof(IViewComponentFactory))).Return(null);
            mocks.Replay(serviceProvider);

            SetupResult.For(engineContext.GetService(null)).IgnoreArguments().Do(
                new Func<Type, object>(serviceProvider.GetService));

            factory.Service(serviceProvider);


            manager = new DefaultViewEngineManager();
            manager.RegisterEngineForExtesionLookup(factory);
            manager.RegisterEngineForView(factory);
        }
Exemplo n.º 12
0
 public object Bind(IEngineContext context, IController controller, IControllerContext controllerContext, ParameterInfo parameterInfo)
 {
     string token = context.Request[parameterInfo.Name];
     Type type = parameterInfo.ParameterType;
     if (CanConvert(type, token))
         return Convert.ChangeType(token, type);
     return value;
 }
Exemplo n.º 13
0
        protected override bool OnBeforeAction(IEngineContext context, IController controller,
                                               IControllerContext controllerContext){
          //  ioc.get<IRequestConversationHandler>().PrepareConversationOnBegin();
            ((Controller) controller).PropertyBag["conversation"] = myapp.conversation.Current;
            ((Controller) controller).PropertyBag["conversationKey"] = myapp.conversation.Current.Code;

            return true;
        }
Exemplo n.º 14
0
        public void Init(IControllerContext controllerContext, IEngineContext engineContext)
        {
            Invariant.ArgumentNotNull(controllerContext, "controllerContext");

            ViewContext = engineContext;

            PropertyBag = controllerContext.PropertyBag;
        }
 protected override void OnAfterAction(IEngineContext context, IController controller,
                                       IControllerContext controllerContext){
     var partitions = Container.get<IPartitionsSource>().GetPartitions(controller);
     ((Controller) controller).PropertyBag["partitions"] = partitions;
     foreach (var partition in partitions){
         partition.Execute(controller);
     }
 }
Exemplo n.º 16
0
 protected override bool OnBeforeAction(IEngineContext context, IController controller,
                                        IControllerContext controllerContext){
     var mvc = MvcContext.Create((Controller) controller);
     var logname = acl.token(mvc).Replace("/", ".").Substring(1);
     var log = logger.get(logname);
     log.info(() => myapp.usrName + "\t\tBEFORE_ACTION:\t" + acl.token(mvc));
     return true;
 }
Exemplo n.º 17
0
		/// <summary>
		/// Initializes a new instance of the <see cref="BaseHttpHandler"/> class.
		/// </summary>
		/// <param name="engineContext">The engine context.</param>
		/// <param name="controller">The controller.</param>
		/// <param name="controllerContext">The controller context.</param>
		/// <param name="sessionless">if set to <c>true</c> then we wont have a session to work.</param>
		protected BaseHttpHandler(IEngineContext engineContext,
								  IController controller, IControllerContext controllerContext, bool sessionless)
		{
			this.controller = controller;
			this.controllerContext = controllerContext;
			this.engineContext = engineContext;
			this.sessionless = sessionless;
		}
Exemplo n.º 18
0
        /// <summary>
        /// Binds the specified parameters for the action.
        /// </summary>
        /// <param name="context">The context.</param>
        /// <param name="controller">The controller.</param>
        /// <param name="controllerContext">The controller context.</param>
        /// <param name="parameterInfo">The parameter info.</param>
        /// <returns>
        /// </returns>
        public object Bind(IEngineContext context, IController controller, IControllerContext controllerContext, ParameterInfo parameterInfo)
        {
            var token = context.Request[parameterName];
            if (CanConvert(parameterInfo.ParameterType, token) == false)
                return null;

            return Convert.ChangeType(token, parameterInfo.ParameterType);
        }
Exemplo n.º 19
0
 /// <summary>
 /// Execute the response result.
 /// </summary>
 /// <param name="context">HTTP controller context</param>
 /// <remarks>Invoked by <see cref="ControllerFactory"/> to process the response.</remarks>
 public override void ExecuteResult(IControllerContext context)
 {
     if (string.IsNullOrEmpty(_url))
     {
         string body = @"<!DOCTYPE html><html><head><META http-equiv='refresh' content='0;URL=" + _url + @"'</head><body></body></html>";
         context.HttpContext.Response.Content = new HttpStringContent(body, UnicodeEncoding.Utf8);
     }
 }
Exemplo n.º 20
0
        public void Rescue(Exception exception, IController controller, IControllerContext controllerContext)
        {
            var statusCode = GetStatusCode(exception);
            PropertyBag.Add("statusCode", statusCode);
            PropertyBag.Add("message", exception.Message);

            Response.StatusCode = statusCode;
        }
Exemplo n.º 21
0
 /// <summary>
 /// Errors the specified controller.
 /// </summary>
 /// <param name="controller">The controller.</param>
 /// <param name="controllerContext">The controller context.</param>
 /// <param name="usr">The usr.</param>
 /// <remarks></remarks>
 private void error(IController controller, IControllerContext controllerContext, IPrincipal usr) {
     ((Controller)controller).Redirect("notauthorized","show",new Dictionary<string,string>
     {
          {"name" , controllerContext.Name},
          {"action" , controllerContext.Action},
          {"user", usr.Identity.Name},
     });
    
 }
Exemplo n.º 22
0
     public bool Perform(ExecuteWhen exec, IEngineContext context, IController controller, IControllerContext controllerContext)
 	{
         if (context.Request.Headers["mybadheader"] != null)
         {
             context.Response.Write("Denied!");
             return false;
         }
         return true;
     }
Exemplo n.º 23
0
		protected override void PerformActionProcess(IEngineContext engineContext, IController controller, IControllerContext controllerContext)
		{
			base.PerformActionProcess(engineContext, controller, controllerContext);

			controllerContext.PropertyBag.Add("items",
				PaginationHelper.CreatePagination(engineContext, PerformFindAll(), 10));

			controllerContext.PropertyBag["properties"] = ObtainListableProperties(Model);
		}
Exemplo n.º 24
0
        public void Init()
        {
            mocks = new MockRepository();

            view = mocks.PartialMock<SparkView>();

            engineContext = new StubEngineContext(new UrlInfo("", "Home", "Index", "/", "castle"));
            controllerContext = new ControllerContext();
        }
Exemplo n.º 25
0
 protected override bool OnBeforeAction(IEngineContext context, IController controller,
                                        IControllerContext controllerContext){
     if (waserror){
         return true;
     }
     var conversation = myapp.conversation.Current;
     conversation.Data[_stopwatch] = new DateRange(DateTime.Now, DateExtensions.Begin);
     return true;
 }
Exemplo n.º 26
0
 /// <summary>
 /// Execute the response result.
 /// </summary>
 /// <param name="context">HTTP controller context</param>
 /// <remarks>Invoked by <see cref="ControllerFactory"/> to process the response.</remarks>
 public override void ExecuteResult(IControllerContext context)
 {
     if (!StringUtility.IsNullOrEmpty(_url))
     {
         byte[] body = Encoding.UTF8.GetBytes(
                 @"<!DOCTYPE html><html><head><META http-equiv='refresh' content='0;URL=" + _url + @"'</head><body></body></html>");
         context.HttpContext.Response.Body = new MemoryStream(body);
     }
 }
Exemplo n.º 27
0
        /// <summary>
        /// Execute the response result.
        /// </summary>
        /// <param name="context">HTTP controller context</param>
        /// <remarks>Invoked by <see cref="ControllerFactory"/> to process the response.</remarks>
        public override void ExecuteResult(IControllerContext context)
        {
            //Logger.WriteDebug(this, "Pipeline => ExecuteResult");

            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            // only handle GET and HEAD
            if (!context.HttpContext.Request.HttpMethod.ToUpper().Equals("GET")
                && !context.HttpContext.Request.HttpMethod.ToUpper().Equals("HEAD"))
                return;

            var header = context.HttpContext.Request.Headers["If-Modified-Since"];

            // TODO: Build reliable date parser
            var time = DateTime.MinValue;
            //var time = header != null
            //               ? ParseUtility.TryParseDateTime(header)
            //               : DateTime.MinValue;

            var fileContext = new FileContext(context.HttpContext.Request, time);
            _fileService.GetFile(fileContext,_fullFilePath);
            if (!fileContext.IsFound)
                return;

            if (!fileContext.IsModified)
            {
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.NotModified;
                context.HttpContext.Response.StatusDescription = "Was last modified " + fileContext.LastModifiedAtUtc.ToString("R");
                return;
            }

            var mimeType = MimeTypeProvider.Instance.Get(fileContext.Filename);
            if (mimeType == null)
            {
                context.HttpContext.Response.StatusCode = (int)HttpStatusCode.UnsupportedMediaType;
                context.HttpContext.Response.StatusDescription = string.Concat("File type '", Path.GetExtension(fileContext.Filename), "' is not supported.");
                return;
            }

            context.HttpContext.Response.AddHeader("Last-Modified", fileContext.LastModifiedAtUtc.ToString("R"));
            context.HttpContext.Response.AddHeader("Accept-Ranges", "bytes");
            context.HttpContext.Response.AddHeader("Content-Disposition", "inline;filename=\"" + Path.GetFileName(fileContext.Filename) + "\"");
            context.HttpContext.Response.ContentType = mimeType;
            context.HttpContext.Response.ContentLength = (int)fileContext.FileStream.Length;
            context.HttpContext.Response.Body = fileContext.FileStream;

            // Do not include a body when the client only want's to get content information.
            if (context.HttpContext.Request.HttpMethod.ToUpper().Equals("HEAD") && context.HttpContext.Response.Body != null)
            {
                context.HttpContext.Response.Body.Dispose();
                context.HttpContext.Response.Body = null;
            }
        }
Exemplo n.º 28
0
		/// <summary>
		/// Initializes a new instance of the <see cref="BrailBase"/> class.
		/// </summary>
		/// <param name="viewEngine">The view engine.</param>
		/// <param name="output">The output.</param>
		/// <param name="context">The context.</param>
		/// <param name="__controller">The controller.</param>
		/// <param name="__controllerContext">The __controller context.</param>
		public BrailBase(BooViewEngine viewEngine, TextWriter output,
		                 IEngineContext context, IController __controller, IControllerContext __controllerContext)
		{
			this.viewEngine = viewEngine;
			outputStream = output;
			this.context = context;
			this.__controller = __controller;
			this.__controllerContext = __controllerContext;
			InitProperties(context, __controller, __controllerContext);
		}
Exemplo n.º 29
0
 public bool Perform(ExecuteWhen exec, IEngineContext context, IController controller, IControllerContext controllerContext)
 {
     if (context.CurrentUser == null || context.CurrentUser.Identity.IsAuthenticated == false)
     {
         context.Flash["error"] = "Du musst eingeloggt sein um den Mitglieder Bereich zu sehen";
         context.Response.Redirect("", "home", "index");
         return false;
     }
     return true;
 }
Exemplo n.º 30
0
		/// <summary>
		/// Registers the actions on the controller.
		/// </summary>
		/// <param name="engineContext">The engine context.</param>
		/// <param name="controller">The controller.</param>
		/// <param name="context">The context.</param>
		public static void RegisterActions(IEngineContext engineContext, IController controller, IControllerContext context)
		{
		//TODO: DynamicActionProvider strategy has made this obsolete
		//	foreach(Type providerType in context.ControllerDescriptor.ActionProviders)
		//	{
		//		IDynamicActionProvider provider = (IDynamicActionProvider) Activator.CreateInstance(providerType);

		//		provider.IncludeActions(engineContext, controller, context);
		//	}
		}
 public BenchmarkFacade(
     IControllerContext controllerContext,
     JsonApiOptions options) : base(controllerContext, options)
 {
 }
Exemplo n.º 32
0
        public virtual AspViewBase GetView(string fileName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext)
        {
            fileName = NormalizeFileName(fileName);
            string className = GetClassName(fileName);

            if (needsRecompiling)
            {
                CompileViewsInMemory();
                needsRecompiling = false;
            }

            Type viewType = compilations[className] as Type;

            if (viewType == null)
            {
                throw new AspViewException("Cannot find view type for {0}.",
                                           fileName);
            }
            // create a view instance
            AspViewBase theView;

            try
            {
                theView = CreateView(viewType, output, context, controller, controllerContext);
            }
            catch (Exception ex)
            {
                throw new AspViewException(string.Format(
                                               "Cannot create view instance from '{0}'.",
                                               fileName), ex);
            }
            if (theView == null)
            {
                throw new AspViewException(string.Format(
                                               "Cannot find view '{0}'", fileName));
            }
            return(theView);
        }
Exemplo n.º 33
0
 public override void RenderStaticWithinLayout(string contents, IEngineContext context, IController controller, IControllerContext controllerContext)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 34
0
 public override void ProcessPartial(string partialName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext)
 {
     throw new NotImplementedException();
 }
        public bool Perform(ExecuteWhen exec, IEngineContext context, IController controller, IControllerContext controllerContext)
        {
            controllerContext.PropertyBag["categories"] = ActiveRecordBase <categories> .FindAll();

            controllerContext.PropertyBag["campuses"] = ActiveRecordBase <campus> .FindAll();

            controllerContext.PropertyBag["colleges"] = ActiveRecordBase <colleges> .FindAll();

            controllerContext.PropertyBag["departments"] = ActiveRecordBase <departments> .FindAll();

            controllerContext.PropertyBag["admindepartments"] = ActiveRecordBase <admindepartments> .FindAll();

            controllerContext.PropertyBag["programs"] = ActiveRecordBase <programs> .FindAll();

            controllerContext.PropertyBag["schools"] = ActiveRecordBase <schools> .FindAll();

            controllerContext.PropertyBag["userService"]   = userService;
            controllerContext.PropertyBag["helperService"] = helperService;
            controllerContext.PropertyBag["helper"]        = helperService;

            if (context.Request.IsLocal)
            {
                users currentUser = userService.getUserFull();
                if (currentUser != null)
                {
                    users you = ActiveRecordBase <users> .Find(currentUser.id);

                    you.loggedin   = true;
                    you.LastActive = DateTime.Now;
                    ActiveRecordMediator <users> .Update(you);

                    ActiveRecordMediator <users> .Save(you);
                }

                //return true;
            }
            else
            {
                // Read previous authenticated principal from session
                // (could be from cookie although with more work)
                User user = (User)context.Session["user"];
                // Sets the principal as the current user
                context.CurrentUser = user;

                String  username = Authentication.authenticate();
                users[] authors  = ActiveRecordBase <users> .FindAllByProperty("nid", username);

                if (authors.Length == 0)
                {
                    context.Response.RedirectToUrl("~/?username="******"manager"]  = true;
                context.Session["username"] = username;
                user = new User(username, new String[0]);
                context.CurrentUser = user;
                System.Threading.Thread.CurrentPrincipal = user;

                if (userService.isLoggedIn())
                {
                    users currentUser = userService.getUserFull();
                    if (currentUser != null)
                    {
                        users you = ActiveRecordBase <users> .Find(currentUser.id);

                        you.loggedin   = true;
                        you.LastActive = DateTime.Now;
                        ActiveRecordMediator <users> .Update(you);

                        ActiveRecordMediator <users> .Save(you);
                    }
                }
            }

            controllerContext.PropertyBag["campus"] = userService.getUserCoreCampus();
            // Everything is ok
            return(true);
        }
Exemplo n.º 36
0
 public Repository_Person(SCRUDContext db, IControllerContext controllerContext)
 {
     _db = db;
     _controllerContext = controllerContext;
 }
Exemplo n.º 37
0
            private static IProject getProject(IControllerContext context)
            {
                string prjCode = context.State.GetString("prjCurrent");

                return(getProject(prjCode));
            }
Exemplo n.º 38
0
 /// <summary>
 /// Implementors should return a generator instance if
 /// the view engine supports JS generation.
 /// </summary>
 /// <param name="generatorInfo">The generator info.</param>
 /// <param name="context">The request context.</param>
 /// <param name="controller">The controller.</param>
 /// <param name="controllerContext">The controller context.</param>
 /// <returns>A JS generator instance</returns>
 public abstract object CreateJSGenerator(JSCodeGeneratorInfo generatorInfo, IEngineContext context, IController controller,
                                          IControllerContext controllerContext);
Exemplo n.º 39
0
 /// <summary>
 /// Processes the js generation view template - using the templateName
 /// to obtain the correct template, and using the specified <see cref="TextWriter"/>
 /// to output the result.
 /// </summary>
 /// <param name="templateName">Name of the template.</param>
 /// <param name="output">The output.</param>
 /// <param name="generatorInfo">The generator info.</param>
 /// <param name="context">The request context.</param>
 /// <param name="controller">The controller.</param>
 /// <param name="controllerContext">The controller context.</param>
 public abstract void GenerateJS(string templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo,
                                 IEngineContext context, IController controller, IControllerContext controllerContext);
Exemplo n.º 40
0
 ///<summary>
 /// Processes the view - using the templateName
 /// to obtain the correct template
 /// and writes the results to the System.IO.TextWriter.
 /// </summary>
 public abstract void Process(String templateName, TextWriter output, IEngineContext context, IController controller,
                              IControllerContext controllerContext);
Exemplo n.º 41
0
 /// <summary>
 /// Should process the specified partial. The partial name must contains
 /// the path relative to the views folder.
 /// </summary>
 /// <param name="output">The output.</param>
 /// <param name="context">The request context.</param>
 /// <param name="controller">The controller.</param>
 /// <param name="controllerContext">The controller context.</param>
 /// <param name="partialName">The partial name.</param>
 public abstract void ProcessPartial(string partialName, TextWriter output, IEngineContext context,
                                     IController controller, IControllerContext controllerContext);
Exemplo n.º 42
0
 /// <summary>
 /// Wraps the specified content in the layout using the
 /// context to output the result.
 /// </summary>
 public abstract void RenderStaticWithinLayout(String contents, IEngineContext context, IController controller,
                                               IControllerContext controllerContext);
Exemplo n.º 43
0
        /// <summary>
        /// Create view
        /// </summary>
        /// <param name="context">Context used creating view</param>
        /// <param name="viewUri">Path to view being created.</param>
        /// <param name="data">Data used.</param>
        /// <returns>Created view.</returns>
        /// <exception cref="ViewNotFoundException">Failed to find spark view.</exception>
        private SparkView GenerateView(IControllerContext context, string viewUri, IViewData data)
        {
            var descriptor = new SparkViewDescriptor();

            descriptor.AddTemplate(viewUri);

            // Let's not include layouts for ajax requests.
            if (!context.RequestContext.Request.IsAjax)
            {
                string layoutUri = SelectLayoutName(context.LayoutName);
                descriptor.Templates.Add(layoutUri);
            }

            if (!MvcServer.CurrentMvc.ViewProvider.Exists(viewUri))
            {
                _logger.Info("Failed to find " + viewUri);
                throw new ViewNotFoundException(viewUri, "Failed to find spark view '" + viewUri + "'.");
            }


            /* Disabled since types can be null.
             *
             * // since we use strongly typed accessors, we need to loop through view data.
             * // and add direct accessors.
             * foreach (var viewData in data)
             * {
             *  string typeName = GetTypeName(viewData.Value.GetType(), true);
             *  descriptor.AddAccessor(typeName + " " + viewData.Key,
             *                         "(" + typeName + ")ViewData[\"" + viewData.Key + "\"]");
             * }
             */

            ISparkViewEntry entry;

            try
            {
                entry = _engine.CreateEntry(descriptor);
            }
            catch (Exception err)
            {
                _logger.Warning("Failed to compile view.", err);
                throw new InternalServerException("Failed to compile view '" + viewUri + "'.", err);
            }

            // only lock when adding, to avoid duplicates.
            if (context.RequestContext.Request.IsAjax)
            {
                lock (_ajaxMappings)
                {
                    Mapping mapping;
                    if (!_ajaxMappings.TryGetValue(viewUri, out mapping))
                    {
                        mapping = new Mapping(data.GetHashCode(), entry);
                        _ajaxMappings.Add(viewUri, mapping);
                    }
                    else
                    {
                        mapping.Add(data.GetHashCode(), entry);
                    }
                }
            }
            else
            {
                lock (_mappings)
                {
                    Mapping mapping;
                    if (!_mappings.TryGetValue(viewUri, out mapping))
                    {
                        mapping = new Mapping(data.GetHashCode(), entry);
                        _mappings.Add(viewUri, mapping);
                    }
                    else
                    {
                        mapping.Add(data.GetHashCode(), entry);
                    }
                }
            }

            return((SparkView)entry.CreateInstance());
        }
Exemplo n.º 44
0
 ///<summary>
 ///
 ///            Processes the js generation view template - using the templateName
 ///            to obtain the correct template, and using the specified <see cref="T:System.IO.TextWriter" />
 ///            to output the result.
 ///
 ///</summary>
 ///
 ///<param name="templateName">Name of the template.</param>
 ///<param name="output">The output.</param>
 ///<param name="generatorInfo">The generator info.</param>
 ///<param name="context">The request context.</param>
 ///<param name="controller">The controller.</param>
 ///<param name="controllerContext">The controller context.</param>
 public override void GenerateJS(string templateName, TextWriter output, JSCodeGeneratorInfo generatorInfo,
                                 IEngineContext context, IController controller, IControllerContext controllerContext)
 {
     throw new NotImplementedException();
 }
Exemplo n.º 45
0
        public AspViewBase CreateView(Type type, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext)
        {
            AspViewBase view = (AspViewBase)FormatterServices.GetUninitializedObject(type);

            view.Initialize(this, output, context, controller, controllerContext);
            return(view);
        }
Exemplo n.º 46
0
 public void Process(IEngineContext engineContext, IControllerContext context)
 {
     throw new Exception("The method or operation is not implemented.");
 }
Exemplo n.º 47
0
 public override void ProcessPartial(string partialName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext)
 {
     throw new Exception("The method or operation is not implemented.");
 }
Exemplo n.º 48
0
 /// <summary>
 /// Instantiates RenderingSupport for the attached contexts.
 /// </summary>
 /// <param name="context">The controller context</param>
 /// <param name="engineContext">The engine context</param>
 public RenderingSupport(IControllerContext context, IEngineContext engineContext)
 {
     this.context       = context;
     this.engineContext = engineContext;
 }
Exemplo n.º 49
0
        public override void Process(string templateName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext)
        {
            string            fileName = GetFileName(templateName);
            IViewBaseInternal view;

            view = GetView(fileName, output, context, controller, controllerContext);
            if (controllerContext.LayoutNames != null)
            {
                string[] layoutNames = controllerContext.LayoutNames;
                for (int i = layoutNames.Length - 1; i >= 0; --i)
                {
                    string            layoutName = layoutNames[i].Trim();
                    IViewBaseInternal layout     = GetLayout(layoutName, output, context, controller, controllerContext);
                    layout.ContentView = view;
                    view = layout;
                }
            }
            if (controller != null)
            {
                controller.PreSendView(view);
            }
            view.Process();
            if (controller != null)
            {
                controller.PostSendView(view);
            }
        }
Exemplo n.º 50
0
 public BaseController(IControllerContext context)
 {
     Context = context;
 }
Exemplo n.º 51
0
 public bool Perform(ExecuteWhen exec, IEngineContext context, IController controller,
                     IControllerContext controllerContext)
 {
     return(context.Session["Admin"] != null);
 }
Exemplo n.º 52
0
 public BaseController(UserControl control)
 {
     Context = new ControllerContext(control);
 }
Exemplo n.º 53
0
 protected override void RenderStandardHtml(IEngineContext engineContext, IController controller, IControllerContext controllerContext)
 {
     SetUpHelpers(engineContext, controller, controllerContext);
     RenderFromTemplate("remove.vm", engineContext, controller, controllerContext);
 }
Exemplo n.º 54
0
 public BaseController(Page page)
 {
     Context = new ControllerContext(page);
 }
Exemplo n.º 55
0
        protected virtual AspViewBase GetLayout(string layoutName, TextWriter output, IEngineContext context, IController controller, IControllerContext controllerContext)
        {
            string layoutTemplate = "layouts\\" + layoutName;

            if (layoutName.StartsWith("\\"))
            {
                layoutTemplate = layoutName;
            }
            string layoutFileName = GetFileName(layoutTemplate);

            return(GetView(layoutFileName, output, context, controller, controllerContext));
        }
Exemplo n.º 56
0
        /// <summary>
        /// Execute the response result.
        /// </summary>
        /// <param name="context">HTTP controller context</param>
        /// <remarks>Invoked by <see cref="ControllerFactory"/> to process the response.</remarks>
        public override void ExecuteResult(IControllerContext context)
        {
            //Logger.WriteDebug(this, "Pipeline => ExecuteResult");

            if (context == null)
            {
                throw new ArgumentNullException("context");
            }

            // only handle GET and HEAD
            if (!context.HttpContext.Request.HttpMethod.ToUpper().Equals("GET") &&
                !context.HttpContext.Request.HttpMethod.ToUpper().Equals("HEAD"))
            {
                return;
            }

            var header = context.HttpContext.Request.Headers["If-Modified-Since"];

            // TODO: Build reliable date parser
            var time = DateTime.MinValue;
            //var time = header != null
            //               ? ParseUtility.TryParseDateTime(header)
            //               : DateTime.MinValue;

            var fileContext = new FileContext(context.HttpContext.Request, time);

            _fileService.GetFile(fileContext, _fullFilePath);
            if (!fileContext.IsFound)
            {
                return;
            }

            if (!fileContext.IsModified)
            {
                context.HttpContext.Response.StatusCode        = (int)HttpStatusCode.NotModified;
                context.HttpContext.Response.StatusDescription = "Was last modified " + fileContext.LastModifiedAtUtc.ToString("R");
                return;
            }

            var mimeType = MimeTypeProvider.Instance.Get(fileContext.Filename);

            if (mimeType == null)
            {
                context.HttpContext.Response.StatusCode        = (int)HttpStatusCode.UnsupportedMediaType;
                context.HttpContext.Response.StatusDescription = string.Concat("File type '", Path.GetExtension(fileContext.Filename), "' is not supported.");
                return;
            }

            context.HttpContext.Response.AddHeader("Last-Modified", fileContext.LastModifiedAtUtc.ToString("R"));
            context.HttpContext.Response.AddHeader("Accept-Ranges", "bytes");
            context.HttpContext.Response.AddHeader("Content-Disposition", "inline;filename=\"" + Path.GetFileName(fileContext.Filename) + "\"");
            context.HttpContext.Response.ContentType   = mimeType;
            context.HttpContext.Response.ContentLength = (int)fileContext.FileStream.Length;
            context.HttpContext.Response.Body          = fileContext.FileStream;

            // Do not include a body when the client only want's to get content information.
            if (context.HttpContext.Request.HttpMethod.ToUpper().Equals("HEAD") && context.HttpContext.Response.Body != null)
            {
                context.HttpContext.Response.Body.Dispose();
                context.HttpContext.Response.Body = null;
            }
        }
Exemplo n.º 57
0
        protected override void PerformActionProcess(IEngineContext engineContext, IController controller, IControllerContext controllerContext)
        {
            base.PerformActionProcess(engineContext, controller, controllerContext);

            var idVal = CommonOperationUtils.ReadPkFromParams(controllerContext.CustomActionParameters, engineContext.Request, ObtainPKProperty());

            controllerContext.PropertyBag["id"] = idVal;

            try
            {
                AssertIsPost(engineContext.Request.HttpMethod);

                var instance = ActiveRecordMediator.FindByPrimaryKey(Model.Type, idVal, true);

                controllerContext.PropertyBag["instance"] = instance;

                ActiveRecordMediator.DeleteAndFlush(instance);
            }
            catch (Exception ex)
            {
                controllerContext.PropertyBag["exception"] = ex;
            }
        }
Exemplo n.º 58
0
 /// <summary>
 /// Sets controller context
 /// </summary>
 /// <remarks>
 /// Context contains information about the current request.
 /// </remarks>
 internal void SetContext(IControllerContext context)
 {
     _context = context;
 }
 public ActionExecutingContext(IControllerContext context)
 {
     HttpContext = context.HttpContext;
 }
Exemplo n.º 60
0
 ///<summary>
 ///
 ///            Implementors should return a generator instance if
 ///            the view engine supports JS generation.
 ///
 ///</summary>
 ///
 ///<param name="generatorInfo">The generator info.</param>
 ///<param name="context">The request context.</param>
 ///<param name="controller">The controller.</param>
 ///<param name="controllerContext">The controller context.</param>
 ///<returns>
 ///A JS generator instance
 ///</returns>
 ///
 public override object CreateJSGenerator(JSCodeGeneratorInfo generatorInfo, IEngineContext context,
                                          IController controller, IControllerContext controllerContext)
 {
     throw new NotImplementedException();
 }