Skip to content

Commit 67e3079

Browse files
committed
fix(settings): supersede global policy revisions when global policy is deleted
1 parent 7e51dd5 commit 67e3079

File tree

1 file changed

+18
-1
lines changed

1 file changed

+18
-1
lines changed

crates/openshell-server/src/grpc.rs

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1238,7 +1238,24 @@ impl OpenShell for OpenShellService {
12381238

12391239
let mut global_settings = load_global_settings(self.state.store.as_ref()).await?;
12401240
let changed = if req.delete_setting {
1241-
global_settings.settings.remove(key).is_some()
1241+
let removed = global_settings.settings.remove(key).is_some();
1242+
// When deleting the global policy key, supersede all global
1243+
// policy revisions so they no longer appear as "Loaded".
1244+
if removed && key == POLICY_SETTING_KEY {
1245+
if let Ok(Some(latest)) = self
1246+
.state
1247+
.store
1248+
.get_latest_policy(GLOBAL_POLICY_SANDBOX_ID)
1249+
.await
1250+
{
1251+
let _ = self
1252+
.state
1253+
.store
1254+
.supersede_older_policies(GLOBAL_POLICY_SANDBOX_ID, latest.version + 1)
1255+
.await;
1256+
}
1257+
}
1258+
removed
12421259
} else {
12431260
let setting = req
12441261
.setting_value

0 commit comments

Comments
 (0)