fix(team): keep the access of read and write teams when editing --unit

Signed-off-by: bircni <bircni@icloud.com>
This commit is contained in:
bircni committed 2026-10-18 17:14:46 +02:00
1 parent 45e015e7dc
commit 7437f45d9a
2 files changed
+7

No files matched your search

+3
View File
@@ -415,6 +415,9 @@ $ tea team edit acme/developers --name devs --description "Core developers"`,
if err != nil {
return err
}
if opts.Units != nil && !opts.ReplaceUnits && (team.Permission == "admin" || team.Permission == "owner") {
return clierr.Wrap(clierr.Usage, fmt.Errorf("--unit cannot restrict the %s access of team %s; pass --permission read or write, or --unit-replace", team.Permission, team.Slug()))
}
edited, err := service.Edit(cmd.Context(), team.ID, opts)
if err != nil {
return err
+4
View File
@@ -250,6 +250,10 @@ func (s Teams) Edit(ctx context.Context, id int64, opts TeamOptions) (Team, erro
opts.Units = current.Units
case !opts.ReplaceUnits:
units := maps.Clone(current.Units)
if len(units) == 0 && (current.Permission == "read" || current.Permission == "write") {
// The team grants its permission to every unit and has no unit policy yet.
units = UnitPolicy(current.Permission)
}
maps.Copy(units, opts.Units)
opts.Units = units
}