Beispiel #1
0
 public UserEmailCreator(IRoleRepository roleReadRepo,
                         IUserAbilityRepository abilityReadRepo, IUserRepository userRepo)
 {
     _roleReadRepo    = roleReadRepo;
     _abilityReadRepo = abilityReadRepo;
     _userRepo        = userRepo;
 }
Beispiel #2
0
 public UserAbilitiesAdder(IUserRepository userReadRepo, IUserAbilityRepository abilityReadRepo)
 {
     _userReadRepo    = userReadRepo;
     _abilityReadRepo = abilityReadRepo;
 }
        public UserAccountModule(IUserAbilityRepository abilityReadRepo, ICommandDispatcher commandDispatcher,
                                 IPasswordEncryptor passwordEncryptor, IMapper mapper, IUserSessionFactory userSessionFactory)
        {
            Post["/register", true] =
                async(a, ct) =>
            {
                var req = this.Bind <NewUserRequest>();
                IEnumerable <UserAbility> abilities =
                    mapper.Map <IEnumerable <UserAbilityRequest>, IEnumerable <UserAbility> >(req.Abilities);
                await commandDispatcher.Dispatch(userSessionFactory.Create(Context.CurrentUser),
                                                 new CreateEmailLoginUser(req.Email, passwordEncryptor.Encrypt(req.Password), req.Name,
                                                                          req.PhoneNumber, abilities));

                return(null);
            };


            Post["/register/facebook", true] =
                async(a, ct) =>
            {
                var req = this.Bind <FacebookRegisterRequest>();
                await commandDispatcher.Dispatch(userSessionFactory.Create(Context.CurrentUser),
                                                 new CreateFacebookLoginUser(req.id, req.email, req.first_name, req.last_name, req.link,
                                                                             req.name,
                                                                             req.url_image));

                return(null);
            };

            Post["/register/google", true] =
                async(a, ct) =>
            {
                var req = this.Bind <GoogleRegisterRequest>();
                await commandDispatcher.Dispatch(userSessionFactory.Create(Context.CurrentUser),
                                                 new CreateGoogleLoginUser(req.id, req.email, req.name.givenName, req.name.familyName,
                                                                           req.url,
                                                                           req.displayName, req.image.url));

                return(null);
            };

            Post["/password/requestReset", true] =
                async(a, ct) =>
            {
                var req = this.Bind <ResetPasswordRequest>();
                await commandDispatcher.Dispatch(userSessionFactory.Create(Context.CurrentUser),
                                                 new StartPasswordResetProcess(req.Email));

                return(null);
            };

            Put["/password/reset/{token}", true] =
                async(a, ct) =>
            {
                var  newPasswordRequest = this.Bind <NewPasswordRequest>();
                Guid token = Guid.Parse((string)a.token);
                await commandDispatcher.Dispatch(userSessionFactory.Create(Context.CurrentUser),
                                                 new ResetPassword(token, passwordEncryptor.Encrypt(newPasswordRequest.Password)));

                return(null);
            };

            Post["/user/abilites", true] =
                async(a, ct) =>
            {
                var requestAbilites = this.Bind <UserAbilitiesRequest>();
                await commandDispatcher.Dispatch(userSessionFactory.Create(Context.CurrentUser),
                                                 new AddAbilitiesToUser(requestAbilites.UserId,
                                                                        requestAbilites.Abilities.Select(x => x.Id)));

                return(null);
            };

            Get["/abilities", true] = async(_, c) =>
            {
                IEnumerable <UserAbility> abilites =
                    await abilityReadRepo.GetAll();

                IEnumerable <UserAbilityRequest> mappedAbilites =
                    mapper
                    .Map <IEnumerable <UserAbility>, IEnumerable <UserAbilityRequest> >(
                        abilites);

                return(mappedAbilites);
            };
        }