@@ -32,7 +32,7 @@ use ulid::Ulid;
3232use url:: Url ;
3333
3434use crate :: {
35- handlers:: { COOKIE_AGE_DAYS , OIDC_SCOPE , SESSION_COOKIE_NAME , USER_COOKIE_NAME } ,
35+ handlers:: { COOKIE_AGE_DAYS , SESSION_COOKIE_NAME , USER_COOKIE_NAME } ,
3636 oidc:: { Claims , DiscoveredClient } ,
3737 parseable:: PARSEABLE ,
3838 rbac:: {
@@ -77,7 +77,7 @@ pub async fn login(
7777 let session_key = extract_session_key_from_req ( & req) . ok ( ) ;
7878 let ( session_key, oidc_client) = match ( session_key, oidc_client) {
7979 ( None , None ) => return Ok ( redirect_no_oauth_setup ( query. redirect . clone ( ) ) ) ,
80- ( None , Some ( client) ) => return Ok ( redirect_to_oidc ( query, client) ) ,
80+ ( None , Some ( client) ) => return Ok ( redirect_to_oidc ( query, client, PARSEABLE . options . scope . to_string ( ) . as_str ( ) ) ) ,
8181 ( Some ( session_key) , client) => ( session_key, client) ,
8282 } ;
8383 // try authorize
@@ -113,7 +113,7 @@ pub async fn login(
113113 } else {
114114 Users . remove_session ( & key) ;
115115 if let Some ( oidc_client) = oidc_client {
116- redirect_to_oidc ( query, oidc_client)
116+ redirect_to_oidc ( query, oidc_client, PARSEABLE . options . scope . to_string ( ) . as_str ( ) )
117117 } else {
118118 redirect_to_client ( query. redirect . as_str ( ) , None )
119119 }
@@ -226,10 +226,11 @@ fn exchange_basic_for_cookie(user: &User, key: SessionKey) -> Cookie<'static> {
226226fn redirect_to_oidc (
227227 query : web:: Query < RedirectAfterLogin > ,
228228 oidc_client : & DiscoveredClient ,
229+ scope : & str ,
229230) -> HttpResponse {
230231 let redirect = query. into_inner ( ) . redirect . to_string ( ) ;
231232 let auth_url = oidc_client. auth_url ( & Options {
232- scope : Some ( OIDC_SCOPE . into ( ) ) ,
233+ scope : Some ( scope . to_string ( ) ) ,
233234 state : Some ( redirect) ,
234235 ..Default :: default ( )
235236 } ) ;
0 commit comments