Browse Source

协作者权限控制问题

Signed-off-by: zouap <zouap@pcl.ac.cn>
tags/v1.22.12.1^2
zouap 3 years ago
parent
commit
29e9483fe5
1 changed files with 24 additions and 17 deletions
  1. +24
    -17
      routers/repo/ai_model_manage.go

+ 24
- 17
routers/repo/ai_model_manage.go View File

@@ -1045,18 +1045,36 @@ func isCanDelete(ctx *context.Context, modelUserId int64) bool {
if ctx.User == nil {
return false
}
if ctx.User.IsAdmin || ctx.User.ID == modelUserId {
if ctx.User.ID == modelUserId {
return true
}
return isAdminRight(ctx)
}

func isAdminRight(ctx *context.Context) bool {
if ctx.User.IsAdmin {
return true
}
if ctx.Repo.IsOwner() {
return true
}
isRepoOwnerCollaborator, err := ctx.Repo.Repository.IsOwnerMemberCollaborator(ctx.User.ID)
if ctx.Repo.Owner.IsOrganization() {
isOwner, err := ctx.Repo.Owner.IsOwnedBy(ctx.User.ID)
if err != nil {
return false
} else if isOwner {
return true
}
}
isCollaborator, err := ctx.Repo.Repository.IsCollaborator(ctx.User.ID)
if err != nil {
log.Info("query isRepoOwnerCollaborator error." + err.Error())
log.Info("query IsCollaborator error." + err.Error())
}
if isRepoOwnerCollaborator {
return true
if isCollaborator {
mode := ctx.Repo.Repository.GetCollaboratorMode(ctx.User.ID)
if mode >= 3 {
return true
}
}
return false
}
@@ -1068,18 +1086,7 @@ func isOperModifyOrDelete(ctx *context.Context, modelUserId int64) bool {
if ctx.User.IsAdmin || ctx.User.ID == modelUserId {
return true
}

if ctx.Repo.IsOwner() {
return true
}
isRepoOwnerCollaborator, err := ctx.Repo.Repository.IsOwnerMemberCollaborator(ctx.User.ID)
if err != nil {
log.Info("query isRepoOwnerCollaborator error." + err.Error())
}
if isRepoOwnerCollaborator {
return true
}
return false
return isAdminRight(ctx)
}

func ShowModelPageInfo(ctx *context.Context) {


Loading…
Cancel
Save