aboutsummaryrefslogtreecommitdiffstats
path: root/models/repo_collaboration.go
diff options
context:
space:
mode:
Diffstat (limited to 'models/repo_collaboration.go')
-rw-r--r--models/repo_collaboration.go19
1 files changed, 13 insertions, 6 deletions
diff --git a/models/repo_collaboration.go b/models/repo_collaboration.go
index 40ddf6a28c..3d6447c196 100644
--- a/models/repo_collaboration.go
+++ b/models/repo_collaboration.go
@@ -41,12 +41,7 @@ func (repo *Repository) AddCollaborator(u *User) error {
return err
}
- if repo.Owner.IsOrganization() {
- err = repo.recalculateTeamAccesses(sess, 0)
- } else {
- err = repo.recalculateAccesses(sess)
- }
- if err != nil {
+ if err = repo.recalculateUserAccess(sess, u.ID); err != nil {
return fmt.Errorf("recalculateAccesses 'team=%v': %v", repo.Owner.IsOrganization(), err)
}
@@ -89,6 +84,18 @@ func (repo *Repository) GetCollaborators() ([]*Collaborator, error) {
return repo.getCollaborators(x)
}
+func (repo *Repository) getCollaboration(e Engine, uid int64) (*Collaboration, error) {
+ collaboration := &Collaboration{
+ RepoID: repo.ID,
+ UserID: uid,
+ }
+ has, err := e.Get(collaboration)
+ if !has {
+ collaboration = nil
+ }
+ return collaboration, err
+}
+
func (repo *Repository) isCollaborator(e Engine, userID int64) (bool, error) {
return e.Get(&Collaboration{RepoID: repo.ID, UserID: userID})
}