diff --git a/core/app.cpp b/core/app.cpp index 5db4ca1..0384356 100644 --- a/core/app.cpp +++ b/core/app.cpp @@ -310,9 +310,11 @@ void App::CheckIfNeedSSLredirect() { if( config.use_ssl_only_for_logged_users ) { + bool function_need_ssl = (cur.request->function && cur.request->function->need_ssl); + if( cur.request->using_ssl ) { - if( !cur.session->puser ) + if( !cur.session->puser && !function_need_ssl ) { log << log3 << "App: this operation should NOT be used through SSL" << logend; BaseUrlRedirect(config.use_ssl_redirect_code, true); @@ -320,7 +322,7 @@ void App::CheckIfNeedSSLredirect() } else { - if( cur.session->puser ) + if( cur.session->puser || function_need_ssl ) { log << log3 << "App: this operation should be used through SSL" << logend; BaseUrlRedirect(config.use_ssl_redirect_code, true);