diff options
author | crohr <cyril.rohr@gmail.com> | 2015-07-14 15:09:08 +0000 |
---|---|---|
committer | crohr <cyril.rohr@gmail.com> | 2015-07-14 15:09:08 +0000 |
commit | cbce2ec9cf74a96b15bbd1a5463957921465a980 (patch) | |
tree | 48f08facd06aa9910c98cdcada1a73d8d308775c /models/access.go | |
parent | b8e9c600409683b0f5eb10b637de003ce23b7796 (diff) | |
parent | ec774d48c58f83b599ac210d6def718187806ecd (diff) |
Merge remote-tracking branch 'origin/master' into pkgr
Diffstat (limited to 'models/access.go')
-rw-r--r-- | models/access.go | 19 |
1 files changed, 19 insertions, 0 deletions
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 } |