From 663c28beb61d5c1319665f195b7e2f4f370c3ea9 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Tue, 14 Jul 2015 22:56:02 +0800 Subject: #1279: Removing user from collaboration removes repositiory --- models/access.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'models/access.go') diff --git a/models/access.go b/models/access.go index dd856afb..51b60c99 100644 --- a/models/access.go +++ b/models/access.go @@ -145,6 +145,25 @@ func (repo *Repository) refreshCollaboratorAccesses(e Engine, accessMap map[int6 for _, c := range collaborators { accessMap[c.Id] = ACCESS_MODE_WRITE } + + // Adds team members access. + if repo.Owner.IsOrganization() { + if err = repo.Owner.GetTeams(); err != nil { + return fmt.Errorf("GetTeams: %v", err) + } + for _, t := range repo.Owner.Teams { + if err = t.GetMembers(); err != nil { + return fmt.Errorf("GetMembers: %v", err) + } + for _, m := range t.Members { + if t.IsOwnerTeam() { + accessMap[m.Id] = ACCESS_MODE_OWNER + } else { + accessMap[m.Id] = maxAccessMode(accessMap[m.Id], t.Authorize) + } + } + } + } return nil } -- cgit v1.2.3 From 04e596f984ae53cf9b933920a2a7f9b0e8c7a881 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Fri, 24 Jul 2015 16:52:01 +0800 Subject: #1369: nil pointer when add repo to team --- models/access.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'models/access.go') diff --git a/models/access.go b/models/access.go index 51b60c99..54d0f099 100644 --- a/models/access.go +++ b/models/access.go @@ -173,13 +173,12 @@ func (repo *Repository) refreshCollaboratorAccesses(e Engine, accessMap map[int6 func (repo *Repository) recalculateTeamAccesses(e Engine, ignTeamID int64) (err error) { accessMap := make(map[int64]AccessMode, 20) - if err = repo.refreshCollaboratorAccesses(e, accessMap); err != nil { - return fmt.Errorf("refreshCollaboratorAccesses: %v", err) - } - if err = repo.getOwner(e); err != nil { return err } + if err = repo.refreshCollaboratorAccesses(e, accessMap); err != nil { + return fmt.Errorf("refreshCollaboratorAccesses: %v", err) + } if repo.Owner.IsOrganization() { if err = repo.Owner.getTeams(e); err != nil { return err -- cgit v1.2.3