@@ -32,7 +32,7 @@ use ulid::Ulid;
32
32
use url:: Url ;
33
33
34
34
use 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 } ,
36
36
oidc:: { Claims , DiscoveredClient } ,
37
37
parseable:: PARSEABLE ,
38
38
rbac:: {
@@ -77,7 +77,7 @@ pub async fn login(
77
77
let session_key = extract_session_key_from_req ( & req) . ok ( ) ;
78
78
let ( session_key, oidc_client) = match ( session_key, oidc_client) {
79
79
( 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 ( ) ) ) ,
81
81
( Some ( session_key) , client) => ( session_key, client) ,
82
82
} ;
83
83
// try authorize
@@ -113,7 +113,7 @@ pub async fn login(
113
113
} else {
114
114
Users . remove_session ( & key) ;
115
115
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 ( ) )
117
117
} else {
118
118
redirect_to_client ( query. redirect . as_str ( ) , None )
119
119
}
@@ -226,10 +226,11 @@ fn exchange_basic_for_cookie(user: &User, key: SessionKey) -> Cookie<'static> {
226
226
fn redirect_to_oidc (
227
227
query : web:: Query < RedirectAfterLogin > ,
228
228
oidc_client : & DiscoveredClient ,
229
+ scope : & str ,
229
230
) -> HttpResponse {
230
231
let redirect = query. into_inner ( ) . redirect . to_string ( ) ;
231
232
let auth_url = oidc_client. auth_url ( & Options {
232
- scope : Some ( OIDC_SCOPE . into ( ) ) ,
233
+ scope : Some ( scope . to_string ( ) ) ,
233
234
state : Some ( redirect) ,
234
235
..Default :: default ( )
235
236
} ) ;
0 commit comments