diff options
Diffstat (limited to 'routers/repo/setting.go')
-rw-r--r-- | routers/repo/setting.go | 39 |
1 files changed, 21 insertions, 18 deletions
diff --git a/routers/repo/setting.go b/routers/repo/setting.go index d72b3fa118..e6b3580a1c 100644 --- a/routers/repo/setting.go +++ b/routers/repo/setting.go @@ -257,30 +257,13 @@ func Collaboration(ctx *middleware.Context) { ctx.Data["Title"] = ctx.Tr("repo.settings") ctx.Data["PageIsSettingsCollaboration"] = true - // Delete collaborator. - remove := strings.ToLower(ctx.Query("remove")) - if len(remove) > 0 && remove != ctx.Repo.Owner.LowerName { - u, err := models.GetUserByName(remove) - if err != nil { - ctx.Handle(500, "GetUserByName", err) - return - } - if err := ctx.Repo.Repository.DeleteCollaborator(u); err != nil { - ctx.Handle(500, "DeleteCollaborator", err) - return - } - ctx.Flash.Success(ctx.Tr("repo.settings.remove_collaborator_success")) - ctx.Redirect(ctx.Repo.RepoLink + "/settings/collaboration") - return - } - users, err := ctx.Repo.Repository.GetCollaborators() if err != nil { ctx.Handle(500, "GetCollaborators", err) return } - ctx.Data["Collaborators"] = users + ctx.HTML(200, COLLABORATION) } @@ -332,6 +315,26 @@ func CollaborationPost(ctx *middleware.Context) { ctx.Redirect(setting.AppSubUrl + ctx.Req.URL.Path) } +func ChangeCollaborationAccessMode(ctx *middleware.Context) { + if err := ctx.Repo.Repository.ChangeCollaborationAccessMode( + ctx.QueryInt64("uid"), + models.AccessMode(ctx.QueryInt("mode"))); err != nil { + log.Error(4, "ChangeCollaborationAccessMode: %v", err) + } +} + +func DeleteCollaboration(ctx *middleware.Context) { + if err := ctx.Repo.Repository.DeleteCollaboration(ctx.QueryInt64("id")); err != nil { + ctx.Flash.Error("DeleteCollaboration: " + err.Error()) + } else { + ctx.Flash.Success(ctx.Tr("repo.settings.remove_collaborator_success")) + } + + ctx.JSON(200, map[string]interface{}{ + "redirect": ctx.Repo.RepoLink + "/settings/collaboration", + }) +} + func parseOwnerAndRepo(ctx *middleware.Context) (*models.User, *models.Repository) { owner, err := models.GetUserByName(ctx.Params(":username")) if err != nil { |