| @@ -15,12 +15,15 @@ import ( | |||
| // SubmitTags submit repos of org tag | |||
| func SubmitTags(ctx *context.Context, form auth.SubmitReposOfTagForm) { | |||
| org, tag := getOrgAndTagFromContext(ctx) | |||
| if !ctx.Org.IsOwner { | |||
| ctx.ServerError("UpdateTagReposByID", errors.New("no access to submit tags")) | |||
| return | |||
| } | |||
| tag := getTagFromContext(ctx) | |||
| if ctx.Written() { | |||
| return | |||
| } | |||
| err := models.UpdateTagReposByID(tag.ID, org.ID, form.RepoList) | |||
| err := models.UpdateTagReposByID(tag.ID, ctx.Org.Organization.ID, form.RepoList) | |||
| if err != nil { | |||
| ctx.ServerError("UpdateTagReposByID", err) | |||
| return | |||
| @@ -34,12 +37,16 @@ func SubmitTags(ctx *context.Context, form auth.SubmitReposOfTagForm) { | |||
| // GetTagRepos get repos under org tag | |||
| func GetTagRepos(ctx *context.Context) { | |||
| org, tag := getOrgAndTagFromContext(ctx) | |||
| if !ctx.Org.IsOwner { | |||
| ctx.ServerError("GetTagRepos", errors.New("no access to get tags")) | |||
| return | |||
| } | |||
| tag := getTagFromContext(ctx) | |||
| if ctx.Written() { | |||
| return | |||
| } | |||
| r, err := models.GetTagRepos(tag.ID, org.ID) | |||
| r, err := models.GetTagRepos(tag.ID, ctx.Org.Organization.ID) | |||
| if err != nil { | |||
| ctx.ServerError("GetTagRepos", err) | |||
| return | |||
| @@ -52,36 +59,15 @@ func GetTagRepos(ctx *context.Context) { | |||
| }) | |||
| } | |||
| // getDashboardContextUser finds out dashboard is viewing as which context user. | |||
| func getOrgAndTagFromContext(ctx *context.Context) (*models.User, *models.OfficialTag) { | |||
| var org *models.User | |||
| // getTagFromContext finds out tag info From context. | |||
| func getTagFromContext(ctx *context.Context) *models.OfficialTag { | |||
| var tag *models.OfficialTag | |||
| var err error | |||
| orgName := ctx.Params(":org") | |||
| if len(orgName) > 0 { | |||
| // Organization. | |||
| org, err = models.GetUserByName(orgName) | |||
| if err != nil { | |||
| if models.IsErrUserNotExist(err) { | |||
| ctx.NotFound("GetUserByName", err) | |||
| } else { | |||
| ctx.ServerError("GetUserByName", err) | |||
| } | |||
| return nil, nil | |||
| } | |||
| if !org.IsOrganization() { | |||
| ctx.ServerError("GetUserByName", errors.New("it is not an organization")) | |||
| return nil, nil | |||
| } | |||
| } | |||
| tagIdStr := ctx.Query("tagId") | |||
| if len(tagIdStr) == 0 { | |||
| ctx.ServerError("GetTagInfo", errors.New("tag is not exist")) | |||
| return nil, nil | |||
| return nil | |||
| } | |||
| tagId, _ := strconv.ParseInt(tagIdStr, 10, 32) | |||
| tag, err = models.GetTagByID(tagId) | |||
| @@ -91,8 +77,8 @@ func getOrgAndTagFromContext(ctx *context.Context) (*models.User, *models.Offici | |||
| } else { | |||
| ctx.ServerError("GetTagInfo", err) | |||
| } | |||
| return nil, nil | |||
| return nil | |||
| } | |||
| return org, tag | |||
| return tag | |||
| } | |||