mirror of
https://github.com/Start9Labs/start-os.git
synced 2026-03-30 04:01:58 +00:00
fix: header color in zoom (#3128)
* fix: merge version ranges when adding existing package signer (#3125) * fix: merge version ranges when adding existing package signer Previously, add_package_signer unconditionally inserted the new version range, overwriting any existing authorization for that signer. Now it OR-merges the new range with the existing one, so running signer add multiple times accumulates permissions rather than replacing them. * add --merge flag to registry package signer add Default behavior remains overwrite. When --merge is passed, the new version range is OR-merged with the existing one, allowing admins to accumulate permissions incrementally. * add missing attribute to TS type * make merge optional * upsert instead of insert * VersionRange::None on upsert * fix: header color in zoom --------- Co-authored-by: Dominion5254 <musashidisciple@proton.me>
This commit is contained in:
@@ -58,6 +58,9 @@ pub struct AddPackageSignerParams {
|
|||||||
#[arg(long, help = "help.arg.version-range")]
|
#[arg(long, help = "help.arg.version-range")]
|
||||||
#[ts(type = "string | null")]
|
#[ts(type = "string | null")]
|
||||||
pub versions: Option<VersionRange>,
|
pub versions: Option<VersionRange>,
|
||||||
|
#[arg(long, help = "help.arg.merge")]
|
||||||
|
#[ts(optional)]
|
||||||
|
pub merge: Option<bool>,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn add_package_signer(
|
pub async fn add_package_signer(
|
||||||
@@ -66,6 +69,7 @@ pub async fn add_package_signer(
|
|||||||
id,
|
id,
|
||||||
signer,
|
signer,
|
||||||
versions,
|
versions,
|
||||||
|
merge,
|
||||||
}: AddPackageSignerParams,
|
}: AddPackageSignerParams,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
ctx.db
|
ctx.db
|
||||||
@@ -76,13 +80,22 @@ pub async fn add_package_signer(
|
|||||||
"unknown signer {signer}"
|
"unknown signer {signer}"
|
||||||
);
|
);
|
||||||
|
|
||||||
|
let versions = versions.unwrap_or_default();
|
||||||
db.as_index_mut()
|
db.as_index_mut()
|
||||||
.as_package_mut()
|
.as_package_mut()
|
||||||
.as_packages_mut()
|
.as_packages_mut()
|
||||||
.as_idx_mut(&id)
|
.as_idx_mut(&id)
|
||||||
.or_not_found(&id)?
|
.or_not_found(&id)?
|
||||||
.as_authorized_mut()
|
.as_authorized_mut()
|
||||||
.insert(&signer, &versions.unwrap_or_default())?;
|
.upsert(&signer, || Ok(VersionRange::None))?
|
||||||
|
.mutate(|existing| {
|
||||||
|
*existing = if merge.unwrap_or(false) {
|
||||||
|
VersionRange::or(existing.clone(), versions)
|
||||||
|
} else {
|
||||||
|
versions
|
||||||
|
};
|
||||||
|
Ok(())
|
||||||
|
})?;
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -6,4 +6,5 @@ export type AddPackageSignerParams = {
|
|||||||
id: PackageId
|
id: PackageId
|
||||||
signer: Guid
|
signer: Guid
|
||||||
versions: string | null
|
versions: string | null
|
||||||
|
merge?: boolean
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -100,9 +100,10 @@ import { getManifest } from 'src/app/utils/get-package-data'
|
|||||||
.title::before {
|
.title::before {
|
||||||
content: '';
|
content: '';
|
||||||
position: absolute;
|
position: absolute;
|
||||||
inset: 0;
|
inset: -0.5rem -1rem 0;
|
||||||
background: var(--background);
|
background: var(--background);
|
||||||
background-size: 1px;
|
background-size: 1px;
|
||||||
|
filter: blur(0.5rem);
|
||||||
mask: linear-gradient(to bottom, black, transparent);
|
mask: linear-gradient(to bottom, black, transparent);
|
||||||
opacity: 0.2;
|
opacity: 0.2;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user