Exemplo n.º 1
0
        public Expression <Func <Project, bool> > GetExpression()
        {
            var user = userProvider.RequireCurrentUser();
            var availableProjectsSpec = availableProjectsSpecFactory(user.GetIdentity());

            return(availableProjectsSpec.GetExpression());
        }
        public Ticket CreateTicket(CreateTicketRequest request)
        {
            var ticket = wrappedInstance.CreateTicket(request);

            ticket.User = userReader.RequireCurrentUser();
            return(ticket);
        }
Exemplo n.º 3
0
        public Comment Create(string body)
        {
            var user = currentUserReader.RequireCurrentUser();
            var now  = environment.GetCurrentUtcTimestamp();

            return(new Comment
            {
                CreationTimestamp = now,
                LastEditTimestamp = now,
                User = user,
                Body = body,
            });
        }
Exemplo n.º 4
0
        public PasswordChangeResponse ChangeOwnPassword(PasswordChangeRequest request)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            using (var tran = transactionCreator.GetTransaction())
            {
                var user = userReader.RequireCurrentUser();
                if (!IsExistingPasswordCorrect(request.ExistingPassword, user))
                {
                    return new PasswordChangeResponse {
                               ExistingPasswordIncorrect = true
                    }
                }
                ;

                if (request.ConfirmNewPassword != request.NewPassword)
                {
                    return new PasswordChangeResponse {
                               NewPasswordDoesNotMatchConfirmation = true
                    }
                }
                ;

                if (!policy.IsPasswordOk(request.NewPassword, user))
                {
                    return new PasswordChangeResponse {
                               NewPasswordDoesNotSatisfyPolicy = true
                    }
                }
                ;

                updater.ChangePassword(user, request.NewPassword);
                tran.Commit();
            }

            return(new PasswordChangeResponse());
        }

        bool IsExistingPasswordCorrect(string password, User user)
        {
            var credentials = new LoginCredentials
            {
                Password = password,
                Username = user.Username,
            };

            return(authService.Authenticate(credentials).Success);
        }
Exemplo n.º 5
0
        public Project GetCurrentProject()
        {
            var user = userReader.RequireCurrentUser();

            return((from project in data.Query <Project>()
                    let priority = project.Administrators.Contains(user)
                                   ? 0
                                   : project.Contributors.Contains(user)
                                   ? 1
                                   : 2
                                   orderby priority, project.Name
                    select project)
                   .FirstOrDefault());
        }
Exemplo n.º 6
0
        public ActionResult AddWorklog(AddTicketWorkLogModel model)
        {
            TempData.Clear();

            var request = mapper.Map <AddWorkLogRequest>(model);

            request.User = userProvider.RequireCurrentUser();

            var result = logger.AddWorkLog(request);

            if (result.Success)
            {
                return(RedirectToAction(nameof(TicketController.Index),
                                        typeof(TicketController).AsControllerName(),
                                        new { id = model.TicketReference }));
            }

            model.InvalidTicket = result.InvalidTicket;
            model.InvalidTime   = result.InvalidTime;
            TempData.Add(ModelKey, model);

            return(RedirectToAction(nameof(AddTicketWorkLogController.Index),
                                    new { id = model.TicketReference }));
        }