Example #1
0
        public void Init(IUnitOfWork uofw)
        {
            if (!_userService.GetAll(uofw).Any(x => x.Login == "Administrator"))
            {
                var passwordCryptographer = new PasswordCryptographer();

                var adminCategory = _userCategoryService.Create(uofw, new UserCategory
                {
                    Name = "Администраторы"
                });

                var categories = Enum.GetValues(typeof(UserType)).Cast<UserType>()
                    .Select(x => new UserCategory() { Name = x.GetDescription(), SystemName = x.ToString() });

                _userCategoryService.CreateCollection(uofw, categories);

                var roles = Enum.GetValues(typeof(SystemRole)).Cast<SystemRole>()
                    .Select(x => new Role() { Name = x.GetDescription(), SystemRole = x });

                roles = _roleService.CreateCollection(uofw, roles);

                var user = new User
                {
                    CategoryID = adminCategory.ID,
                    Login = "******",
                    Email = "*****@*****.**",
                    LastName = "Администратор",
                    Password = passwordCryptographer.GenerateSaltedPassword("!QAZ2wsx"),
                    Roles = new List<Role>()
                };

                user.Roles.Add(roles.FirstOrDefault(x => x.SystemRole == SystemRole.Admin));

                _userService.Create(uofw, user);
            }

            if (!(_settingItemService).GetAll(uofw, hidden: null).Any(x => x.Key == Consts.KEY_CONFIG))
            {
                _settingItemService.Create(uofw, new SettingItem()
                {
                    CategoryID = _settingCategoryService.GetAll(uofw).Where(x => x.SysName == "main").Select(x => x.ID).FirstOrDefault(),
                    Key = Consts.KEY_CONFIG,
                    Text = "Безопасность",
                    Value = new Setting(new Config()
                    {
                        MinLenLogin = 6,
                        MinLenPassword = 6,
                        PasswordCheckKeyboard = false,
                        AllowRegistration = true
                    })
                });
            }
        }
            public FinancialTransactionContext(ClaimHeader claimHeader, ClaimDetail claimDetail, ClaimTransactionHeader claimTransactionHeader, ClaimTransactionGroup claimTransactionGroup, User user)
            {
                this.ClaimHeader = claimHeader;
                this.ClaimDetail = claimDetail;
                this.ClaimTransactionHeader = claimTransactionHeader;
                this.ClaimTransactionGroup = claimTransactionGroup;
                this.CurrentUser = user;
                this.TransactionSource = (StaticValues.ClaimTransactionSource)this.ClaimTransactionHeader.ClaimTransactionSource;

                this.Product = claimHeader.GetProduct();
                this.ProductClaimDefinition = this.Product.ProductClaimDefinition;
                this.ProductClaimDetails = this.Product.ClaimDetails;
            }
Example #3
0
        public User RegisterUser(ISystemUnitOfWork unitOfWork, User user)
        {
            var config = _settingsService.GetValue(Base.Security.Consts.KEY_CONFIG, null) as Config;
#if !DEBUG
            if (config != null && config.AllowRegistration == false)
                throw new InvalidOperationException(String.Format(
                        "Регистрация новых пользователей запрещена администратором системы", user.Login));
#endif

            var oldUser = this.GetUser(unitOfWork, user.Login);

            if (oldUser != null && !oldUser.IsUnregistered)
                throw new InvalidOperationException(String.Format(
                    "Пользователь с логином {0} уже имеется в системе", user.Login));

            user.Password = new PasswordCryptographer().GenerateSaltedPassword(user.Password);


            if (user.Roles == null || !user.Roles.Any())
            {
                var roleRep = unitOfWork.GetRepository<Role>();

                var externalRole = roleRep.Find(x => x.SystemRole == SystemRole.Base);
                if (externalRole == null)
                    throw new InvalidOperationException("В системе отсутствует базовая роль");

                user.Roles = new Collection<Role> { externalRole };
            }


            var catRep = unitOfWork.GetRepository<UserCategory>();

            string systemName = UserType.Base.ToString();
            string name = UserType.Base.GetDescription();

            var userCategory = catRep.Find(x => x.SystemName == systemName);

            if (userCategory != null)
                user.CategoryID = userCategory.ID;
            else
                user.UserCategory = new UserCategory { Name = name, SystemName = systemName };


            if (user.ID == 0)
                unitOfWork.GetRepository<User>().Create(user);
            else
                unitOfWork.GetRepository<User>().Update(user);

            unitOfWork.SaveChanges();

            return user;
        }
Example #4
0
        public void ValidateLogin(IUnitOfWork unitOfWork, User objsrc, User objdest)
        {
            var config = _settingsService.GetValue(Base.Security.Consts.KEY_CONFIG, null) as Config;

            int LOGIN_MIN_LEN = config != null ? config.MinLenLogin : 6;

            if (objsrc.Login.Length < LOGIN_MIN_LEN)
            {
                throw new Exception(String.Format("Введите корректный логин (минимальная длина логина равна {0})", LOGIN_MIN_LEN));
            }

            var user = GetUser(unitOfWork, objsrc.Login);

            if (user != null && user.ID != objsrc.ID)
            {
                throw new Exception("Пользователь с таким логином уже существует");
            }
        }
Example #5
0
        public void Register(ISystemUnitOfWork unitOfWork, Uri systemUrl, string email, string password, string firstName, string lastName)
        {
            User user = _securityUserService.GetUser(unitOfWork, email, includeAwaitConfirm: true);
            if (user != null && user.Hidden)
            {
                throw new Exception("Вы уже регистрировались ранее. На указанный вами почтовый адрес было отправлено письмо. " +
                                    "Для завершения регистрации перейдите по содержащейся в нем ссылке.");
            }

            UserConfirmRequest request = new UserConfirmRequest()
            {
                Type = ConfirmType.NewUser,
                RequestTime = DateTime.Now,
                ValidUntil = DateTime.Now.Add(RegisterRequestLifeTime),
                Code = Guid.NewGuid().ToString("N")
            };

            if (user == null)
            {
                user = new User
                {
                    Login = email,
                    Email = email,
                    Password = password,
                    FirstName = firstName,
                    LastName = lastName,
                    Hidden = true,
                    ConfirmRequests = new List<UserConfirmRequest> { request }
                };
            }
            else
            {
                if (user.IsUnregistered) // registered by someone else
                {
                    user.Email = email;
                    user.Password = password;
                    user.FirstName = firstName;
                    user.LastName = lastName;
                    user.MiddleName = "";

                    if (user.ConfirmRequests == null)
                        user.ConfirmRequests = new List<UserConfirmRequest>();
                    user.ConfirmRequests.Add(request);
                }
            }



            _securityUserService.RegisterUser(unitOfWork, user);

            _SendMail(systemUrl, request, email);
        }
Example #6
0
        private User _RegisterVerify(User user)
        {
            user.Hidden = false;
            user.IsUnregistered = false;

            return user;
        }
Example #7
0
 private User _ResetPasswordVerify(User user)
 {
     user.ChangePasswordOnFirstLogon = true;
     return user;
 }