DI\factory( function ( ContainerInterface $c ) { $builder = new Middleware_Builder(); $builder ->add_middleware( $c->get( Multisite_Check::class ) ) ->add_middleware( $c->get( Second_Factor_Status_Check::class ) ) ->add_middleware( $c->get( Blocked_Account_Check::class ) ) ->add_middleware( $c->get( Step_Token_Manager::class ) ) ->add_middleware( $c->get( SSL::class ) ) ->add_middleware( $c->get( External_Login::class ) ) ->add_middleware( $c->get( Trusted_Devices_Enabled_Check::class)) ->add_middleware( $c->get( Trusted_Device_Login::class ) ) ->add_middleware( $c->get( Login_Stop::class ) ); return $builder->build(); } ), 'AfterMiddleware' => DI\factory( function ( ContainerInterface $c ) { $builder = new Middleware_Builder(); $builder ->add_middleware( $c->get( Authentication_Opener::class ) ) ->add_middleware( $c->get( Login_Template::class ) ) ->add_middleware( $c->get( New_Trusted_Device::class ) ); return $builder->build(); } ), Login_Handler::class => DI\factory(function (ContainerInterface $c) { $builder = new Handler_Builder(); $builder ->add_handler( $c->get(Login_Configuration::class) ) ->add_handler( $c->get(Configuration_Reset::class) ) ->add_handler( $c->get(Configuration_Confirmation::class) ) ->add_handler( $c->get(Standard_Login::class) ); return $builder->build(); }), Login_Process::class => DI\object() ->constructor( DI\get('BeforeMiddleware'), DI\get('AfterMiddleware'), DI\get(Login_Handler::class), DI\get(Error_Handler_Interface::class) ) ];