Beispiel #1
0
        public void BlockUser(User user, string reason)
        {
            if (user.IsBlocked)
                return;

            var usersRepository = _repositoryFactory.GetUsersRepository();
            using (new UnitOfWork(EntitiesContext.Current))
            {
                user.IsBlocked = true;
                user.Details.BlockDate = DateTime.UtcNow;
                user.Details.BlockReason = reason;

                usersRepository.Update(user);
            }
        }
Beispiel #2
0
 public static ProfileViewModel FromUser(User user)
 {
     return new ProfileViewModel()
     {
         Id = user.Id,
         TimeEdit = user.TimeEdit,
         Name = user.Name,
         Email = user.Email,
         RoleId = user.RoleId,
         RoleName = user.Role.Key,
         IsBlocked = user.IsBlocked,
         IsEmailVerified = user.IsEmailVerified,
         RegisteredAt = user.RegisteredAt,
         BlockReason = user.Details.BlockReason,
         BlockDate = user.Details.BlockDate
     };
 }
Beispiel #3
0
        public User CreateUser(string username, string password, string email, UserRole role = UserRole.User)
        {
            var now = DateTime.UtcNow;

            var user = new User()
            {
                Name = username,
                PasswordHash = password.Sha256(),
                IsBlocked = false,
                TimeEdit = now,
                RegisteredAt = now,
                RoleId = (int)role,
                Email = email,
                Details = new UserDetails() { TimeEdit = now }
            };
            RegisterUser(user);

            return user;
        }
Beispiel #4
0
        private void InitAccounts()
        {
            var usersRepository = _repositoryFactory.GetUsersRepository();
            if (!usersRepository.GetAll().Any())
            {
                //create default user
                var defaultAdmin = new User()
                {
                    Name = "admin",
                    PasswordHash = "SCMSadmin".Sha256(),
                    RegisteredAt = DateTime.UtcNow,
                    RoleId = (int) UserRole.Administrator,
                    TimeEdit = DateTime.UtcNow,
                    IsEmailVerified = true,
                    Details = new UserDetails() { TimeEdit = DateTime.UtcNow}
                };

                usersRepository.Add(defaultAdmin);
            }
        }
Beispiel #5
0
        public Email CreateVerificationEmail(User user, VerificationToken token)
        {
            var urlHelper = new UrlHelper();
            var validateActionUrl = urlHelper.Action("Verify", "Account", new { userId = user.Id, token = token.Value });
            var email = new Email()
            {
                To = user.Email,
                Subject = _applicationSettings.ApplicationName + ": " + Resources.Resources.EmailVerificationSubject,
                Body = ConfigureVerificationEmailBody(user.Name, validateActionUrl),

            };

            using (new UnitOfWork(EntitiesContext.Current))
            {
                var emailsRepository = _repositoryFactory.GetEmailsRepository();
                emailsRepository.Add(email);
            }

            return email;
        }
Beispiel #6
0
 public bool IsValidForControlPanel(User user)
 {
     return ((UserRole) user.RoleId).HasFlag(UserRole.Editor);
 }
Beispiel #7
0
 public void LogIn(User user, bool remember)
 {
     FormsAuthentication.SetAuthCookie(user.Name, remember);
 }
Beispiel #8
0
        /// <summary>
        /// Checks that entered user credentials are valid for authorization
        /// </summary>
        public bool IsValidUserForLogIn(User user, string password)
        {
            var result = true;

            if (user == null)
                result = false;
            else if (user.PasswordHash != password.Sha256(Const.DefaultSha256Salt))
                result = false;

            return result;
        }
Beispiel #9
0
 private void UpdateUserInfo(User user, ProfileViewModel profile)
 {
     user.Name = profile.Name;
     user.Email = profile.Email;
     user.IsBlocked = profile.IsBlocked;
     if (profile.RoleId.HasValue)
         user.RoleId = profile.RoleId.Value;
     user.Details.BlockDate = profile.BlockDate;
     user.Details.BlockReason = profile.BlockReason;
 }
Beispiel #10
0
        public void StartEmailVerification(User user)
        {
            if (user == null)
                throw new ArgumentNullException("user");

            if (user.IsEmailVerified)
                return;

            if (String.IsNullOrWhiteSpace(user.Email))
                return;

            var now = DateTime.UtcNow;

            var tokensRepository = _repositoryFactory.GetVerificationTokensRepository();
            var token = tokensRepository.FirstOrDefault(t => t.UserId == user.Id && !t.IsRedeemed);
            if (token == null)
            {
                token = new VerificationToken()
                {
                    CreateDate = now,
                    TimeEdit = now,
                    IsRedeemed = false,
                    Value = (user.Email + user.Name + now.Ticks.ToString()).Sha256(Const.VerificationTokenSalt),
                    UserId = user.Id
                };

                using (new UnitOfWork(EntitiesContext.Current))
                {
                    tokensRepository.Add(token);
                }
            }

            var email = _emailService.CreateVerificationEmail(user, token);
            _emailService.QueryEmailSending(email);
        }
Beispiel #11
0
        /// <summary>
        /// Creates new account for user
        /// </summary>
        /// <param name="user"></param>
        public void RegisterUser(User user)
        {
            if (user == null)
                throw new ArgumentNullException("user");

            if (user.Id > 0)
                return;

            var usersRepository = _repositoryFactory.GetUsersRepository();
            using (new UnitOfWork(EntitiesContext.Current))
            {
                var defaultDate = new DateTime();
                var now = DateTime.UtcNow;
                if (user.RegisteredAt == defaultDate)
                    user.RegisteredAt = now;

                if (user.TimeEdit == defaultDate)
                    user.TimeEdit = now;

                if (user.RoleId == 0)
                    user.RoleId = (int)UserRole.User;

                if (user.Details == null)
                    user.Details = new UserDetails() { TimeEdit = now };
                else
                {
                    if (user.Details.TimeEdit == defaultDate)
                        user.Details.TimeEdit = now;
                }

                usersRepository.Add(user);
            }
        }