Fixes #7023 - API Org Visibility (#7028)

This commit is contained in:
Richard Mahn 2019-05-30 13:57:55 -04:00 committed by techknowlogick
parent d95caf50ec
commit 43cf2f3b55
11 changed files with 258 additions and 40 deletions

View file

@ -45,6 +45,11 @@ func CreateOrg(ctx *context.APIContext, form api.CreateOrgOption) {
return
}
visibility := api.VisibleTypePublic
if form.Visibility != "" {
visibility = api.VisibilityModes[form.Visibility]
}
org := &models.User{
Name: form.UserName,
FullName: form.FullName,
@ -53,7 +58,9 @@ func CreateOrg(ctx *context.APIContext, form api.CreateOrgOption) {
Location: form.Location,
IsActive: true,
Type: models.UserTypeOrganization,
Visibility: visibility,
}
if err := models.CreateOrganization(org, u); err != nil {
if models.IsErrUserAlreadyExist(err) ||
models.IsErrNameReserved(err) ||

View file

@ -213,6 +213,7 @@ func ToOrganization(org *models.User) *api.Organization {
Description: org.Description,
Website: org.Website,
Location: org.Location,
Visibility: org.Visibility.String(),
}
}

View file

@ -90,6 +90,11 @@ func Create(ctx *context.APIContext, form api.CreateOrgOption) {
return
}
visibility := api.VisibleTypePublic
if form.Visibility != "" {
visibility = api.VisibilityModes[form.Visibility]
}
org := &models.User{
Name: form.UserName,
FullName: form.FullName,
@ -98,6 +103,7 @@ func Create(ctx *context.APIContext, form api.CreateOrgOption) {
Location: form.Location,
IsActive: true,
Type: models.UserTypeOrganization,
Visibility: visibility,
}
if err := models.CreateOrganization(org, ctx.User); err != nil {
if models.IsErrUserAlreadyExist(err) ||
@ -153,6 +159,7 @@ func Edit(ctx *context.APIContext, form api.EditOrgOption) {
// required: true
// - name: body
// in: body
// required: true
// schema:
// "$ref": "#/definitions/EditOrgOption"
// responses:
@ -163,8 +170,11 @@ func Edit(ctx *context.APIContext, form api.EditOrgOption) {
org.Description = form.Description
org.Website = form.Website
org.Location = form.Location
if err := models.UpdateUserCols(org, "full_name", "description", "website", "location"); err != nil {
ctx.Error(500, "UpdateUser", err)
if form.Visibility != "" {
org.Visibility = api.VisibilityModes[form.Visibility]
}
if err := models.UpdateUserCols(org, "full_name", "description", "website", "location", "visibility"); err != nil {
ctx.Error(500, "EditOrganization", err)
return
}

View file

@ -181,7 +181,7 @@ func CreateFile(ctx *context.APIContext, apiOpts api.CreateFileOptions) {
// required: true
// - name: body
// in: body
// description: "'content' must be base64 encoded\n\n 'author' and 'committer' are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)\n\n If 'branch' is not given, default branch will be used\n\n 'sha' is the SHA for the file that already exists\n\n 'new_branch' (optional) will make a new branch from 'branch' before creating the file"
// required: true
// schema:
// "$ref": "#/definitions/CreateFileOptions"
// responses:
@ -238,7 +238,7 @@ func UpdateFile(ctx *context.APIContext, apiOpts api.UpdateFileOptions) {
// required: true
// - name: body
// in: body
// description: "'content' must be base64 encoded\n\n 'sha' is the SHA for the file that already exists\n\n 'author' and 'committer' are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)\n\n If 'branch' is not given, default branch will be used\n\n 'new_branch' (optional) will make a new branch from 'branch' before updating the file"
// required: true
// schema:
// "$ref": "#/definitions/UpdateFileOptions"
// responses:
@ -316,7 +316,7 @@ func DeleteFile(ctx *context.APIContext, apiOpts api.DeleteFileOptions) {
// required: true
// - name: body
// in: body
// description: "'sha' is the SHA for the file to be deleted\n\n 'author' and 'committer' are optional (if only one is given, it will be used for the other, otherwise the authenticated user will be used)\n\n If 'branch' is not given, default branch will be used\n\n 'new_branch' (optional) will make a new branch from 'branch' before deleting the file"
// required: true
// schema:
// "$ref": "#/definitions/DeleteFileOptions"
// responses: