1
1
mirror of https://github.com/go-gitea/gitea synced 2025-07-22 18:28:37 +00:00

Use a standalone struct name for Organization (#17632)

* Use a standalone struct name for Organization

* recover unnecessary change

* make the code readable

* Fix template failure

* Fix template failure

* Move HasMemberWithUserID to org

* Fix test

* Remove unnecessary user type check

* Fix test

Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
This commit is contained in:
Lunny Xiao
2021-11-19 19:41:40 +08:00
committed by GitHub
parent a09b40de8d
commit 7a03473159
43 changed files with 335 additions and 259 deletions

View File

@@ -10,6 +10,6 @@ import (
// APIOrganization contains organization and team
type APIOrganization struct {
Organization *models.User
Organization *models.Organization
Team *models.Team
}

View File

@@ -18,11 +18,12 @@ type Organization struct {
IsMember bool
IsTeamMember bool // Is member of team.
IsTeamAdmin bool // In owner team or team that has admin permission level.
Organization *models.User
Organization *models.Organization
OrgLink string
CanCreateOrgRepo bool
Team *models.Team
Team *models.Team
Teams []*models.Team
}
// HandleOrgAssignment handles organization assignment
@@ -49,7 +50,7 @@ func HandleOrgAssignment(ctx *Context, args ...bool) {
orgName := ctx.Params(":org")
var err error
ctx.Org.Organization, err = models.GetUserByName(orgName)
ctx.Org.Organization, err = models.GetOrgByName(orgName)
if err != nil {
if models.IsErrUserNotExist(err) {
redirectUserID, err := user_model.LookupUserRedirect(orgName)
@@ -68,12 +69,6 @@ func HandleOrgAssignment(ctx *Context, args ...bool) {
org := ctx.Org.Organization
ctx.Data["Org"] = org
// Force redirection when username is actually a user.
if !org.IsOrganization() {
ctx.Redirect(org.HomeLink())
return
}
// Admin has super access.
if ctx.IsSigned && ctx.User.IsAdmin {
ctx.Org.IsOwner = true
@@ -118,18 +113,19 @@ func HandleOrgAssignment(ctx *Context, args ...bool) {
ctx.Data["IsOrganizationMember"] = ctx.Org.IsMember
ctx.Data["CanCreateOrgRepo"] = ctx.Org.CanCreateOrgRepo
ctx.Org.OrgLink = org.OrganisationLink()
ctx.Org.OrgLink = org.AsUser().OrganisationLink()
ctx.Data["OrgLink"] = ctx.Org.OrgLink
// Team.
if ctx.Org.IsMember {
if ctx.Org.IsOwner {
if err := org.LoadTeams(); err != nil {
ctx.Org.Teams, err = org.LoadTeams()
if err != nil {
ctx.ServerError("LoadTeams", err)
return
}
} else {
org.Teams, err = org.GetUserTeams(ctx.User.ID)
ctx.Org.Teams, err = org.GetUserTeams(ctx.User.ID)
if err != nil {
ctx.ServerError("GetUserTeams", err)
return
@@ -140,7 +136,7 @@ func HandleOrgAssignment(ctx *Context, args ...bool) {
teamName := ctx.Params(":team")
if len(teamName) > 0 {
teamExists := false
for _, team := range org.Teams {
for _, team := range ctx.Org.Teams {
if team.LowerName == strings.ToLower(teamName) {
teamExists = true
ctx.Org.Team = team