fix: update collaborator access mode and httpsign (#38894, #38862) (#38895)

backport #38894, partially #38862
This commit is contained in:
wxiaoguang
2026-08-13 09:59:07 +00:00
committed by GitHub
parent 88b56d408d
commit 0acbcc58a7
8 changed files with 38 additions and 79 deletions
+12 -6
View File
@@ -118,13 +118,19 @@ func CollaborationPost(ctx *context.Context) {
// ChangeCollaborationAccessMode response for changing access of a collaboration
func ChangeCollaborationAccessMode(ctx *context.Context) {
if err := repo_model.ChangeCollaborationAccessMode(
ctx,
ctx.Repo.Repository,
ctx.FormInt64("uid"),
perm.AccessMode(ctx.FormInt("mode"))); err != nil {
log.Error("ChangeCollaborationAccessMode: %v", err)
// the frontend initRepoSettingsCollaboration logic: it only checks "resp.ok"
u, err := user_model.GetUserByID(ctx, ctx.FormInt64("uid"))
if err != nil {
ctx.Status(http.StatusBadRequest)
return
}
mode := perm.AccessMode(ctx.FormInt("mode"))
if err := repo_service.AddOrUpdateCollaborator(ctx, ctx.Repo.Repository, u, mode); err != nil {
ctx.Status(http.StatusBadRequest)
log.Error("AddOrUpdateCollaborator: %v", err)
return
}
ctx.JSONOK()
}
// DeleteCollaboration delete a collaboration for a repository