@@ -59,12 +59,12 @@ func (t *Team) GetMembers() (err error) {
59
59
// AddMember adds new membership of the team to the organization,
60
60
// the user will have membership to the organization automatically when needed.
61
61
func (t * Team ) AddMember (userID int64 ) error {
62
- return AddTeamMember (t . OrgID , t . ID , userID )
62
+ return AddTeamMember (t , userID )
63
63
}
64
64
65
65
// RemoveMember removes member from team of organization.
66
66
func (t * Team ) RemoveMember (userID int64 ) error {
67
- return RemoveTeamMember (t . OrgID , t . ID , userID )
67
+ return RemoveTeamMember (t , userID )
68
68
}
69
69
70
70
func (t * Team ) hasRepository (e Engine , repoID int64 ) bool {
@@ -443,113 +443,101 @@ func GetUserTeams(orgID, userID int64) ([]*Team, error) {
443
443
444
444
// AddTeamMember adds new membership of given team to given organization,
445
445
// the user will have membership to given organization automatically when needed.
446
- func AddTeamMember (orgID , teamID , userID int64 ) error {
447
- if IsTeamMember (orgID , teamID , userID ) {
446
+ func AddTeamMember (team * Team , userID int64 ) error {
447
+ if IsTeamMember (team . OrgID , team . ID , userID ) {
448
448
return nil
449
449
}
450
450
451
- if err := AddOrgUser (orgID , userID ); err != nil {
451
+ if err := AddOrgUser (team . OrgID , userID ); err != nil {
452
452
return err
453
453
}
454
454
455
455
// Get team and its repositories.
456
- t , err := GetTeamByID (teamID )
457
- if err != nil {
458
- return err
459
- }
460
- t .NumMembers ++
456
+ team .NumMembers ++
461
457
462
- if err = t .GetRepositories (); err != nil {
458
+ if err := team .GetRepositories (); err != nil {
463
459
return err
464
460
}
465
461
466
462
sess := x .NewSession ()
467
463
defer sessionRelease (sess )
468
- if err = sess .Begin (); err != nil {
464
+ if err : = sess .Begin (); err != nil {
469
465
return err
470
466
}
471
467
472
- tu := & TeamUser {
468
+ if _ , err := sess . Insert ( & TeamUser {
473
469
UID : userID ,
474
- OrgID : orgID ,
475
- TeamID : teamID ,
476
- }
477
- if _ , err = sess .Insert (tu ); err != nil {
470
+ OrgID : team .OrgID ,
471
+ TeamID : team .ID ,
472
+ }); err != nil {
478
473
return err
479
- } else if _ , err = sess .Id (t .ID ).Update (t ); err != nil {
474
+ } else if _ , err : = sess .Id (team .ID ).Update (team ); err != nil {
480
475
return err
481
476
}
482
477
483
478
// Give access to team repositories.
484
- for _ , repo := range t .Repos {
485
- if err = repo .recalculateTeamAccesses (sess , 0 ); err != nil {
479
+ for _ , repo := range team .Repos {
480
+ if err : = repo .recalculateTeamAccesses (sess , 0 ); err != nil {
486
481
return err
487
482
}
488
483
}
489
484
490
485
// We make sure it exists before.
491
486
ou := new (OrgUser )
492
- if _ , err = sess .
487
+ if _ , err : = sess .
493
488
Where ("uid = ?" , userID ).
494
- And ("org_id = ?" , orgID ).
489
+ And ("org_id = ?" , team . OrgID ).
495
490
Get (ou ); err != nil {
496
491
return err
497
492
}
498
493
ou .NumTeams ++
499
- if t .IsOwnerTeam () {
494
+ if team .IsOwnerTeam () {
500
495
ou .IsOwner = true
501
496
}
502
- if _ , err = sess .Id (ou .ID ).AllCols ().Update (ou ); err != nil {
497
+ if _ , err : = sess .Id (ou .ID ).AllCols ().Update (ou ); err != nil {
503
498
return err
504
499
}
505
500
506
501
return sess .Commit ()
507
502
}
508
503
509
- func removeTeamMember (e Engine , orgID , teamID , userID int64 ) error {
510
- if ! isTeamMember (e , orgID , teamID , userID ) {
504
+ func removeTeamMember (e Engine , team * Team , userID int64 ) error {
505
+ if ! isTeamMember (e , team . OrgID , team . ID , userID ) {
511
506
return nil
512
507
}
513
508
514
- // Get team and its repositories.
515
- t , err := getTeamByID (e , teamID )
516
- if err != nil {
517
- return err
518
- }
519
-
520
509
// Check if the user to delete is the last member in owner team.
521
- if t .IsOwnerTeam () && t .NumMembers == 1 {
510
+ if team .IsOwnerTeam () && team .NumMembers == 1 {
522
511
return ErrLastOrgOwner {UID : userID }
523
512
}
524
513
525
- t .NumMembers --
514
+ team .NumMembers --
526
515
527
- if err = t .getRepositories (e ); err != nil {
516
+ if err := team .getRepositories (e ); err != nil {
528
517
return err
529
518
}
530
519
531
520
// Get organization.
532
- org , err := getUserByID (e , orgID )
521
+ org , err := getUserByID (e , team . OrgID )
533
522
if err != nil {
534
523
return err
535
524
}
536
525
537
- tu := & TeamUser {
526
+ if _ , err := e . Delete ( & TeamUser {
538
527
UID : userID ,
539
- OrgID : orgID ,
540
- TeamID : teamID ,
541
- }
542
- if _ , err := e .Delete (tu ); err != nil {
528
+ OrgID : team .OrgID ,
529
+ TeamID : team .ID ,
530
+ }); err != nil {
543
531
return err
544
532
} else if _ , err = e .
545
- Id (t .ID ).
533
+ Id (team .ID ).
546
534
AllCols ().
547
- Update (t ); err != nil {
535
+ Update (team ); err != nil {
548
536
return err
549
537
}
550
538
551
539
// Delete access to team repositories.
552
- for _ , repo := range t .Repos {
540
+ for _ , repo := range team .Repos {
553
541
if err = repo .recalculateTeamAccesses (e , 0 ); err != nil {
554
542
return err
555
543
}
@@ -565,7 +553,7 @@ func removeTeamMember(e Engine, orgID, teamID, userID int64) error {
565
553
return err
566
554
}
567
555
ou .NumTeams --
568
- if t .IsOwnerTeam () {
556
+ if team .IsOwnerTeam () {
569
557
ou .IsOwner = false
570
558
}
571
559
if _ , err = e .
@@ -578,13 +566,13 @@ func removeTeamMember(e Engine, orgID, teamID, userID int64) error {
578
566
}
579
567
580
568
// RemoveTeamMember removes member from given team of given organization.
581
- func RemoveTeamMember (orgID , teamID , userID int64 ) error {
569
+ func RemoveTeamMember (team * Team , userID int64 ) error {
582
570
sess := x .NewSession ()
583
571
defer sessionRelease (sess )
584
572
if err := sess .Begin (); err != nil {
585
573
return err
586
574
}
587
- if err := removeTeamMember (sess , orgID , teamID , userID ); err != nil {
575
+ if err := removeTeamMember (sess , team , userID ); err != nil {
588
576
return err
589
577
}
590
578
return sess .Commit ()
0 commit comments