Exemplo n.º 1
0
 public EducationService(IExerciseService exerciseService, ICourseCategoryService courseService, IJournalEntryService journalEntryService, IUnitOfWorkFactory unitOfWorkFactory)
 {
     _exerciseService = exerciseService;
     _courseService = courseService;
     _journalEntryService = journalEntryService;
     _systemUnitOfWork = unitOfWorkFactory.CreateSystem();
 }
Exemplo n.º 2
0
 public DefaultAccessPolicy(IUnitOfWorkFactory unitOfWorkFactory)
 {
     _systemUnitOfWork = unitOfWorkFactory.CreateSystem();
 }
Exemplo n.º 3
0
        private void _AttachImage(ISystemUnitOfWork unitOfWork, User user, string url)
        {
            if (!Uri.IsWellFormedUriString(url, UriKind.Absolute)) return;

            Exception error;

            var image = _fileSystemService.SaveFile(new Uri(url), out error);

            if (error == null)
            {
                user.Image = image.ToObject<FileData>();
            }
        }
Exemplo n.º 4
0
        private User RegisterUser(ISystemUnitOfWork unitOfWork, ExtAccount extAccount)
        {
            User user = _securityUserService.RegisterUser(unitOfWork, extAccount.ToUser());

            if (user == null) return null;

            extAccount.User = user;
            _AttachImage(unitOfWork, user, extAccount.ProfilePicture);
            _extAccountService.Create(unitOfWork, extAccount);

            return user;
        }
Exemplo n.º 5
0
        private User Authorize(ISystemUnitOfWork unitOfWork, ExtAccount extAccount)
        {
            User user = _extAccountService.GetAll(unitOfWork)
                     .Where(x => x.Type == extAccount.Type && x.ExternalId == extAccount.ExternalId)
                     .Select(x => x.User).FirstOrDefault();

            if (user == null)
            {
                var securityUser = _securityUserService.GetSecurityUser(extAccount.Email);

                if (securityUser != null)
                {
                    AddAccount(unitOfWork, extAccount);
                    user = new User { Login = securityUser.Login };
                }
                else
                {
                    user = RegisterUser(unitOfWork, extAccount);
                }
            }

            return user;

        }
Exemplo n.º 6
0
 public async Task<User> Authorize(ISystemUnitOfWork unitOfWork, ServiceType type, string code)
 {
     ExtAccount extAccount = await GetAccountInfo(type, code);
     return Authorize(unitOfWork, extAccount);
 }
Exemplo n.º 7
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;
        }
Exemplo n.º 8
0
 public TestController(ISystemUnitOfWork sytemRepository)
 {
     _sytemRepository = sytemRepository;
 }
Exemplo n.º 9
0
 public SystemService(string systemConnection)
 {
     this.systemUnitOfWork = new SystemUnitOfWork(systemConnection);
 }
Exemplo n.º 10
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);
        }