{"record":{"id":"879788ef1af0abf0","repo":"goharbor/harbor","slug":"forbidden","errorCode":"FORBIDDEN","errorMessage":"only admins(system and project) can access permissions","messagePattern":"only admins\\(system and project\\) can access permissions","errorType":"error_code","errorClass":"*errors.Error","httpStatus":403,"severity":"error","filePath":"src/server/v2.0/handler/permissions.go","lineNumber":71,"sourceCode":"\t}\n\n\tvar isSystemAdmin bool\n\tvar isProjectAdmin bool\n\n\tif secCtx.IsSysAdmin() {\n\t\tisSystemAdmin = true\n\t} else {\n\t\tif sc, ok := secCtx.(*local.SecurityContext); ok {\n\t\t\tuser := sc.User()\n\t\t\tvar err error\n\t\t\tisProjectAdmin, err = p.mc.IsProjectAdmin(ctx, *user)\n\t\t\tif err != nil {\n\t\t\t\treturn p.SendError(ctx, err)\n\t\t\t}\n\t\t}\n\t}\n\tif !isSystemAdmin && !isProjectAdmin {\n\t\treturn p.SendError(ctx, errors.ForbiddenError(errors.New(\"only admins(system and project) can access permissions\")))\n\t}\n\n\tprovider := rbac.GetPermissionProvider()\n\tsysPermissions := make([]*types.Policy, 0)\n\tproPermissions := provider.GetPermissions(rbac.ScopeProject)\n\tif isSystemAdmin {\n\t\t// project admin cannot see the system level permissions\n\t\tsysPermissions = provider.GetPermissions(rbac.ScopeSystem)\n\t}\n\n\treturn permissions.NewGetPermissionsOK().WithPayload(p.convertPermissions(sysPermissions, proPermissions))\n}\n\nfunc (p *permissionsAPI) convertPermissions(system, project []*types.Policy) *models.Permissions {\n\tres := &models.Permissions{}\n\tif len(system) > 0 {\n\t\tvar sysPermission []*models.Permission\n\t\tfor _, item := range system {","sourceCodeStart":53,"sourceCodeEnd":89,"githubUrl":"https://github.com/goharbor/harbor/blob/7b2fd08cc568955cca339afeefab27372840d936/src/server/v2.0/handler/permissions.go#L53-L89","documentation":"Error \"only admins(system and project) can access permissions\" thrown in goharbor/harbor.","triggerScenarios":"Thrown at src/server/v2.0/handler/permissions.go:71 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"7b2fd08cc568955cca339afeefab27372840d936","analyzedAt":"2026-08-16T00:00:10.961Z","schemaVersion":2},"datasetVersion":"2026-08-16T03:17:38.424Z"}