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; }
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; }
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("Пользователь с таким логином уже существует"); } }
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); }
private User _RegisterVerify(User user) { user.Hidden = false; user.IsUnregistered = false; return user; }
private User _ResetPasswordVerify(User user) { user.ChangePasswordOnFirstLogon = true; return user; }