示例#1
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            foreach (var attr in GetType().GetCustomAttributes(typeof(PageAttribute), true))
            {
                _dosValidation = ((PageAttribute)attr).DoSValidation;
                _createUser    = ((PageAttribute)attr).CreateUser;
            }

            if (_dosValidation && !ActionValidator.ValidateRequest(IsPostBack))
            {
                Response.End();
            }

            if (!_createUser)
            {
                return;
            }

            CurrentUser = WebUser.CreateUser();
            if (!CurrentUser.bLoggedIn)
            {
                CurrentUser.LoginFromCookie();
            }
        }
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        // Check if revisit is valid or not
        if (!base.IsPostBack)
        {
            ANO_User cooike = ANOProfile.GetCookieValues(HttpContext.Current.Request.UserHostAddress);

            if (cooike != null)
            {
                if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.ReVisit))
                {
                    Response.End();
                }
            }
            else
            {
                if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.FirstVisit))
                {
                    Response.End();
                }
            }
        }
        else
        {
            // Limit number of postbacks
            if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.Postback))
            {
                Response.End();
            }
        }
    }
示例#3
0
    void WidgetDataList_ItemCommand(object source, DataListCommandEventArgs e)
    {
        if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.AddNewWidget))
        {
            return;
        }

        int widgetId = int.Parse(e.CommandArgument.ToString());

        //DashboardFacade facade = new DashboardFacade(HttpContext.Current.Profile.UserName);

        //User added a new widget. The new widget is loaded for the first time. So, it's not
        //a postback experience for the widget. But for rest of the widgets, it is a postback experience.
        WidgetInstance widgetInstance;
        var            facade = Services.Get <Facade>();

        {
            widgetInstance = facade.AddWidgetInstance(widgetId, 0, 0, 0);
        }

        // -- Workflow way. Obselete.
        //var response = WorkflowHelper.Run<AddWidgetWorkflow,AddWidgetRequest,AddWidgetResponse>(
        //                   new AddWidgetRequest { WidgetId = widgetId, RowNo = 0, ColumnNo = 0, ZoneId = 0, UserName = Profile.UserName }
        //               );

        //widgetRefreshCallback(response.WidgetInstanceAffected);
        widgetRefreshCallback(widgetInstance);
    }
        public ValidationResult isValid()
        {
            var validator            = new ActionValidator();
            ValidationResult results = validator.Validate(this);

            return(results);
        }
        public async Task AttachmentWithFilenameExistsAsync_KnownFile_ShouldReturnTrue()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut    = new ActionValidator(context);
                var result = await dut.AttachmentWithFilenameExistsAsync(_actionId, _filename, default);

                Assert.IsTrue(result);
            }
        }
        public async Task IsClosedAsync_UnknownActionId_ShouldReturnFalse()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut    = new ActionValidator(context);
                var result = await dut.IsClosedAsync(123456, default);

                Assert.IsFalse(result);
            }
        }
示例#7
0
            public void WhenValidateActionGetsCalled()
            {
                Setup();

                var action = new Models.Action()
                {
                    ActionType = ActionType.None,
                    Completed  = true,
                    ExpiresAt  = DateTime.UtcNow.AddMinutes(-1)
                };

                _errors = ActionValidator.ValidateAction(action, ActionType.ResetPassword);
            }
示例#8
0
        protected override void OnInit(EventArgs e)
        {
            base.OnInit(e);

            if (!ActionValidator.ValidateRequest(IsPostBack))
            {
                Response.End();
            }

            CurrentUser = WebUser.CreateUser();
            if (!CurrentUser.bLoggedIn)
            {
                CurrentUser.LoginFromCookie();
            }
        }
示例#9
0
            public async Task WhenCompletePasswordResetGetsCalled()
            {
                Setup();

                var fixture = new Fixture();

                _action = fixture.Create <Action>();
                _resetPasswordRequest          = fixture.Create <ResetPasswordRequest>();
                _resetPasswordRequest.ActionId = _action.Id;

                ActionsRepository.Setup(repository => repository.GetActionById(It.IsAny <Guid>())).ReturnsAsync(_action);
                ActionValidator.Setup(validator => validator.ValidateAction(It.IsAny <Action>(), It.IsAny <ActionType>()))
                .Returns(new List <Error>());

                _result = await AccountsController.ResetPassword(_resetPasswordRequest);
            }
        public async Task IsClosedAsync_KnownId_ShouldReturnTrue_WhenClosed()
        {
            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var action = context.Actions.Single(a => a.Id == _actionId);
                action.Close(DateTime.UtcNow, context.Persons.Single(p => p.Oid == _currentUserOid));
                context.SaveChangesAsync().Wait();
            }

            using (var context = new PreservationContext(_dbContextOptions, _plantProvider, _eventDispatcher, _currentUserProvider))
            {
                var dut    = new ActionValidator(context);
                var result = await dut.IsClosedAsync(_actionId, default);

                Assert.IsTrue(result);
            }
        }
示例#11
0
            public async Task WhenCompletePasswordResetGetsCalled()
            {
                Setup();

                var fixture = new Fixture();

                _action = fixture.Create <Action>();
                _resetPasswordRequest = fixture.Create <ResetPasswordRequest>();
                _resetPasswordRequest.ConfirmNewPassword = _resetPasswordRequest.NewPassword;
                _resetPasswordRequest.ActionId           = _action.Id;

                ActionsRepository.Setup(repository => repository.GetActionById(It.IsAny <Guid>())).ReturnsAsync(_action);
                ActionValidator.Setup(validator => validator.ValidateAction(It.IsAny <Action>(), It.IsAny <ActionType>()))
                .Returns(new List <Error>());
                CryptographyService.Setup(service => service.HashAndSaltPassword(It.IsAny <string>()))
                .Returns("HashedAndSalted");

                _result = await AccountsController.ResetPassword(_resetPasswordRequest);
            }
示例#12
0
        public void AddWidgetInstanceByObjectType(string objectId, string objectType, string pageId, int column, int row)
        {
            if (ActionValidator.IsValid(ActionValidator.ActionTypeEnum.AddNewWidget))
            {
                Guid communityId = DataAccess.Business.Utils.GetCommunityIdFromPage(pageId.ToGuid());
                if ((DataObject.GetUserAccess(UserDataContext.GetUserDataContext(), communityId, communityId, Common.Helper.GetObjectTypeNumericID("Community")) & ObjectAccessRight.Update) == ObjectAccessRight.Update)
                {
                    Guid          widgetId = Common.Helper.GetObjectType(objectType).DetailWidgetId;
                    WidgetElement widget   = WidgetSection.CachedInstance.Widgets.Cast <WidgetElement>().Where(w => w.Id == widgetId).Single();

                    HitblWidgetInstanceIn widgetInstance = new HitblWidgetInstanceIn();
                    widgetInstance.InsId              = Guid.NewGuid();
                    widgetInstance.InsColumnNo        = column;
                    widgetInstance.InsCreatedDate     = widgetInstance.InsLastUpdate = DateTime.Now;
                    widgetInstance.InsShowAfterInsert = 0;
                    widgetInstance.InsOrderNo         = row;
                    widgetInstance.InsPagId           = new Guid(pageId);
                    widgetInstance.InsXmlStateData    = string.Format("<root><ObjectType>{0}</ObjectType><ByUrl>False</ByUrl><Source>-1</Source><ObjectID>{1}</ObjectID></root>", Common.Helper.GetObjectType(objectType).Id, objectId);
                    widgetInstance.WdgId              = widgetId;
                    widgetInstance.WtpId              = Constants.DEFAULT_LAYOUTID.ToGuid();
                    widgetInstance.InsHideIfNoContent = true;
                    if (!string.IsNullOrEmpty(widget.OutputTemplates))
                    {
                        string[] outputTemplates = widget.OutputTemplates.Split(';');
                        widgetInstance.InsOutputTemplate = outputTemplates[0].ToGuid();
                    }
                    widgetInstance.Save();

                    HitblWidgetInstanceTextWit widgetInstanceText = new HitblWidgetInstanceTextWit();
                    widgetInstanceText.InsId       = widgetInstance.InsId;
                    widgetInstanceText.WitLangCode = "de-CH";
                    widgetInstanceText.WitTitle    = "##OBJ_TITLE##";
                    widgetInstanceText.Save();

                    SPs.HispWidgetInstanceReorderByPageColumn(new Guid(pageId), widgetInstance.InsColumnNo).Execute();
                }
            }
        }
示例#13
0
    /// <summary>
    /// Override the OnInit behavior to load the current user's pages and widgets. This
    /// needs to be done in OnInit, not on Page_Load because the ASP.NET control tree
    /// is prepared after this and we need to create the widgets as dynamic controls.
    /// So, we need to load the widgets and pages before the control tree creation starts.
    /// </summary>
    /// <param name="e"></param>
    protected override void OnInit(EventArgs e)
    {
        base.OnInit(e);

        //AspectF.Define
        //    .Log(Services.Get<ILogger>(), "OnInit: " + Profile.UserName)
        //    .Retry(errors => errors.ToArray().Each(x => ErrorOnPage.InnerText += x.ToString()), Services.Get<ILogger>())
        //    .Do(() =>
        //    {
        // Check if revisit is valid or not
        if (!base.IsPostBack)
        {
            // Block cookie less visit attempts
            if (Profile.IsFirstVisit)
            {
                if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.FirstVisit))
                {
                    Stop();
                }
            }
            else
            {
                if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.Revisit))
                {
                    Stop();
                }
            }
        }
        else
        {
            // Limit number of postbacks
            if (!ActionValidator.IsValid(ActionValidator.ActionTypeEnum.Postback))
            {
                Stop();
            }
        }
        //});
    }
示例#14
0
        public void AddWidgetInstance(string widgetId, string pageId, int column, int row)
        {
            if (ActionValidator.IsValid(ActionValidator.ActionTypeEnum.AddNewWidget))
            {
                Guid communityId = DataAccess.Business.Utils.GetCommunityIdFromPage(pageId.ToGuid());
                if ((DataObject.GetUserAccess(UserDataContext.GetUserDataContext(), communityId, communityId, Common.Helper.GetObjectTypeNumericID("Community")) & ObjectAccessRight.Update) == ObjectAccessRight.Update)
                {
                    WidgetElement widget = WidgetSection.CachedInstance.Widgets.Cast <WidgetElement>().Where(w => w.Id == widgetId.ToGuid()).Single();

                    HitblWidgetInstanceIn widgetInstance = new HitblWidgetInstanceIn();
                    widgetInstance.InsId              = Guid.NewGuid();
                    widgetInstance.InsColumnNo        = column;
                    widgetInstance.InsCreatedDate     = widgetInstance.InsLastUpdate = DateTime.Now;
                    widgetInstance.InsShowAfterInsert = (int)widget.ShowAfterInsert;
                    widgetInstance.InsOrderNo         = row;
                    widgetInstance.InsPagId           = new Guid(pageId);
                    widgetInstance.InsXmlStateData    = widget.Settings.Value;
                    widgetInstance.WdgId              = widgetId.ToGuid();
                    widgetInstance.WtpId              = Constants.DEFAULT_LAYOUTID.ToGuid();
                    widgetInstance.InsHideIfNoContent = true;
                    if (!string.IsNullOrEmpty(widget.OutputTemplates))
                    {
                        string[] outputTemplates = widget.OutputTemplates.Split(';');
                        widgetInstance.InsOutputTemplate = outputTemplates[0].ToGuid();
                    }
                    widgetInstance.Save();

                    HitblWidgetInstanceTextWit widgetInstanceText = new HitblWidgetInstanceTextWit();
                    widgetInstanceText.InsId       = widgetInstance.InsId;
                    widgetInstanceText.WitLangCode = "de-CH";
                    widgetInstanceText.WitTitle    = GuiLanguage.GetGuiLanguage(widget.LocalizationBaseFileName).GetString(widget.TitleKey);
                    widgetInstanceText.Save();

                    SPs.HispWidgetInstanceReorderByPageColumn(new Guid(pageId), widgetInstance.InsColumnNo).Execute();
                }
            }
        }
示例#15
0
            public void WhenValidateActionGetsCalled()
            {
                Setup();

                _errors = ActionValidator.ValidateAction(null, ActionType.ResetPassword);
            }
示例#16
0
 public void ActionValidatorValidateActionShouldHaveBeenCalled()
 => ActionValidator.Verify(validator => validator.ValidateAction(_action, ActionType.ResetPassword), Times.Once);
示例#17
0
 public ActivityRepository(IUnitOfWork uow)
     : base(uow)
 {
     _curValidator = new ActionValidator();
 }