chore: checkpoint turso and ai runtime work
This commit is contained in:
@@ -134,10 +134,10 @@ pub async fn auth_api(
|
||||
.with_header(HEADER_MNOTE_WEB_OWNER, "mnote-web"));
|
||||
}
|
||||
if action == "auth:signOut" {
|
||||
return Ok(build_sqlite_sign_out_response(&state, &context));
|
||||
return Ok(build_control_plane_sign_out_response(&state, &context));
|
||||
}
|
||||
|
||||
handle_sqlite_auth_action(&state, &context, &payload).await
|
||||
handle_control_plane_auth_action(&state, &context, &payload).await
|
||||
}
|
||||
|
||||
pub async fn auth_entry(
|
||||
@@ -2070,7 +2070,7 @@ fn has_real_auth_context(state: &AppState, context: &RequestContext) -> bool {
|
||||
|| extract_cookie_value(context, COOKIE_MNOTE_WEB_CONVEX_TOKEN).is_some()
|
||||
}
|
||||
|
||||
async fn handle_sqlite_auth_action(
|
||||
async fn handle_control_plane_auth_action(
|
||||
state: &AppState,
|
||||
context: &RequestContext,
|
||||
payload: &serde_json::Value,
|
||||
@@ -2131,7 +2131,7 @@ async fn handle_sqlite_auth_action(
|
||||
role: None,
|
||||
password_hash: None,
|
||||
})
|
||||
.map_err(|error| sqlite_auth_error(context, error))?;
|
||||
.map_err(|error| control_plane_auth_error(context, error))?;
|
||||
state
|
||||
.control_plane()
|
||||
.create_password_identity(CreatePasswordIdentityInput {
|
||||
@@ -2140,11 +2140,11 @@ async fn handle_sqlite_auth_action(
|
||||
username: user.username.clone(),
|
||||
password: password.clone(),
|
||||
})
|
||||
.map_err(|error| sqlite_auth_error(context, error))?;
|
||||
.map_err(|error| control_plane_auth_error(context, error))?;
|
||||
state
|
||||
.control_plane()
|
||||
.ensure_default_workspace(&user.id)
|
||||
.map_err(|error| sqlite_auth_error(context, error))?;
|
||||
.map_err(|error| control_plane_auth_error(context, error))?;
|
||||
state
|
||||
.control_plane()
|
||||
.authenticate_password(AuthenticatePasswordInput {
|
||||
@@ -2156,7 +2156,7 @@ async fn handle_sqlite_auth_action(
|
||||
ip_hash: None,
|
||||
expires_at: None,
|
||||
})
|
||||
.map_err(|error| sqlite_auth_error(context, error))?
|
||||
.map_err(|error| control_plane_auth_error(context, error))?
|
||||
} else {
|
||||
let account = params
|
||||
.get("account")
|
||||
@@ -2181,7 +2181,7 @@ async fn handle_sqlite_auth_action(
|
||||
ip_hash: None,
|
||||
expires_at: None,
|
||||
})
|
||||
.map_err(|error| sqlite_auth_error(context, error))?
|
||||
.map_err(|error| control_plane_auth_error(context, error))?
|
||||
};
|
||||
|
||||
let audit_action = if flow == "signUp" {
|
||||
@@ -2202,7 +2202,7 @@ async fn handle_sqlite_auth_action(
|
||||
.unwrap_or_else(|_| "{}".to_string()),
|
||||
});
|
||||
|
||||
let provider_sync_results = if flow == "signUp" {
|
||||
let provider_sync_results = if matches!(flow, "signUp" | "signIn") {
|
||||
let directory_grants = state
|
||||
.control_plane()
|
||||
.list_directory_grants_for_actor(&resolved.user.id)
|
||||
@@ -2233,13 +2233,13 @@ async fn handle_sqlite_auth_action(
|
||||
None
|
||||
};
|
||||
|
||||
let mut response = build_sqlite_auth_response(
|
||||
let mut response = build_control_plane_auth_response(
|
||||
context,
|
||||
&session_token,
|
||||
&resolved.user.id,
|
||||
resolved.user.email.as_deref().unwrap_or_default(),
|
||||
&resolved.user.display_name,
|
||||
&effective_sqlite_auth_actor_type(&resolved.user.id, &resolved.user.role),
|
||||
&effective_control_plane_auth_actor_type(&resolved.user.id, &resolved.user.role),
|
||||
);
|
||||
if let Some(results) = provider_sync_results {
|
||||
let all_ok = results.iter().all(|item| item.ok);
|
||||
@@ -2253,7 +2253,7 @@ async fn handle_sqlite_auth_action(
|
||||
Ok(response)
|
||||
}
|
||||
|
||||
fn sqlite_auth_error(
|
||||
fn control_plane_auth_error(
|
||||
context: &RequestContext,
|
||||
error: control_plane::ControlPlaneError,
|
||||
) -> WebError {
|
||||
@@ -2273,7 +2273,7 @@ fn sqlite_auth_error(
|
||||
.with_header(HEADER_MNOTE_WEB_OWNER, "mnote-web")
|
||||
}
|
||||
|
||||
fn build_sqlite_auth_response(
|
||||
fn build_control_plane_auth_response(
|
||||
context: &RequestContext,
|
||||
session_token: &str,
|
||||
user_id: &str,
|
||||
@@ -2286,7 +2286,7 @@ fn build_sqlite_auth_response(
|
||||
"userId": user_id,
|
||||
"email": email,
|
||||
"name": name,
|
||||
"authMode": "sqliteSession",
|
||||
"authMode": "controlPlaneSession",
|
||||
"actorType": actor_type
|
||||
}))
|
||||
.into_response();
|
||||
@@ -2307,7 +2307,7 @@ fn build_sqlite_auth_response(
|
||||
response
|
||||
}
|
||||
|
||||
fn effective_sqlite_auth_actor_type(user_id: &str, stored_role: &str) -> String {
|
||||
fn effective_control_plane_auth_actor_type(user_id: &str, stored_role: &str) -> String {
|
||||
let role = stored_role.trim();
|
||||
let fallback_role = if role.is_empty() { "user" } else { role };
|
||||
if crate::routes::local_folder_source::is_local_access_policy_admin_actor(
|
||||
@@ -2320,7 +2320,7 @@ fn effective_sqlite_auth_actor_type(user_id: &str, stored_role: &str) -> String
|
||||
}
|
||||
}
|
||||
|
||||
fn build_sqlite_sign_out_response(state: &AppState, context: &RequestContext) -> Response {
|
||||
fn build_control_plane_sign_out_response(state: &AppState, context: &RequestContext) -> Response {
|
||||
if let Some(raw_token) = extract_cookie_value(context, COOKIE_MNOTE_SESSION) {
|
||||
let token_hash = session_token_hash(&raw_token);
|
||||
if let Ok(Some(resolved)) = state.control_plane().get_session_by_token_hash(&token_hash) {
|
||||
@@ -3062,7 +3062,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn root_entry_uses_sqlite_session_display_name_for_workspace_label() {
|
||||
async fn root_entry_uses_control_plane_session_display_name_for_workspace_label() {
|
||||
use control_plane::{session_token_hash, CreateSessionInput, UpsertUserInput};
|
||||
|
||||
let app_state = AppState::new(AppConfig {
|
||||
@@ -3095,7 +3095,7 @@ mod tests {
|
||||
role: None,
|
||||
password_hash: None,
|
||||
})
|
||||
.expect("upsert sqlite user");
|
||||
.expect("upsert control-plane user");
|
||||
app_state
|
||||
.control_plane()
|
||||
.create_session(CreateSessionInput {
|
||||
@@ -3106,7 +3106,7 @@ mod tests {
|
||||
ip_hash: None,
|
||||
expires_at: None,
|
||||
})
|
||||
.expect("create sqlite session");
|
||||
.expect("create control-plane session");
|
||||
|
||||
let response = build_app(app_state)
|
||||
.oneshot(
|
||||
@@ -3745,7 +3745,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn auth_api_signup_sets_sqlite_session_cookie_when_compat_disabled() {
|
||||
async fn auth_api_signup_sets_control_plane_session_cookie_when_compat_disabled() {
|
||||
let response = app_with_config("http://127.0.0.1:3100".into(), false)
|
||||
.oneshot(
|
||||
Request::builder()
|
||||
@@ -3786,11 +3786,11 @@ mod tests {
|
||||
let payload: serde_json::Value = serde_json::from_slice(&body).expect("json");
|
||||
assert_eq!(payload["userId"], "new-user");
|
||||
assert_eq!(payload["email"], "new-user@example.com");
|
||||
assert_eq!(payload["authMode"], "sqliteSession");
|
||||
assert_eq!(payload["authMode"], "controlPlaneSession");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn auth_api_signin_accepts_sqlite_username_after_signup() {
|
||||
async fn auth_api_signin_accepts_control_plane_username_after_signup() {
|
||||
let app = app_with_config("http://127.0.0.1:3100".into(), false);
|
||||
let signup = app
|
||||
.clone()
|
||||
@@ -3829,7 +3829,7 @@ mod tests {
|
||||
let payload: serde_json::Value = serde_json::from_slice(&body).expect("json");
|
||||
assert_eq!(payload["userId"], "mnote-e2e");
|
||||
assert_eq!(payload["email"], "mnote.e2e@example.com");
|
||||
assert_eq!(payload["authMode"], "sqliteSession");
|
||||
assert_eq!(payload["authMode"], "controlPlaneSession");
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
@@ -3865,7 +3865,7 @@ mod tests {
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn auth_api_signout_clears_sqlite_session_cookie() {
|
||||
async fn auth_api_signout_clears_control_plane_session_cookie() {
|
||||
let response = app_with_config("http://127.0.0.1:3100".into(), false)
|
||||
.oneshot(
|
||||
Request::builder()
|
||||
|
||||
Reference in New Issue
Block a user