@@ -518,50 +518,58 @@ func DeleteProtectedBranch(ctx context.Context, repo *repo_model.Repository, id
518518 return nil
519519}
520520
521- // RemoveUserIDFromProtectedBranch remove all user ids from protected branch options
522- func RemoveUserIDFromProtectedBranch (ctx context.Context , p * ProtectedBranch , userID int64 ) error {
523- lenIDs , lenForcePushIDs , lenApprovalIDs , lenMergeIDs := len (p .WhitelistUserIDs ), len (p .ForcePushWhitelistUserIDs ), len (p .ApprovalsWhitelistUserIDs ), len (p .MergeWhitelistUserIDs )
524- p .WhitelistUserIDs = util .SliceRemoveAll (p .WhitelistUserIDs , userID )
525- p .ForcePushWhitelistUserIDs = util .SliceRemoveAll (p .ForcePushWhitelistUserIDs , userID )
526- p .ApprovalsWhitelistUserIDs = util .SliceRemoveAll (p .ApprovalsWhitelistUserIDs , userID )
527- p .MergeWhitelistUserIDs = util .SliceRemoveAll (p .MergeWhitelistUserIDs , userID )
521+ // removeIDsFromProtectedBranch is a helper function to remove IDs from protected branch options
522+ func removeIDsFromProtectedBranch (ctx context.Context , p * ProtectedBranch , userID , teamID int64 , columnNames []string ) error {
523+ lenUserIDs , lenForcePushIDs , lenApprovalIDs , lenMergeIDs := len (p .WhitelistUserIDs ), len (p .ForcePushWhitelistUserIDs ), len (p .ApprovalsWhitelistUserIDs ), len (p .MergeWhitelistUserIDs )
524+ lenTeamIDs , lenForcePushTeamIDs , lenApprovalTeamIDs , lenMergeTeamIDs := len (p .WhitelistTeamIDs ), len (p .ForcePushWhitelistTeamIDs ), len (p .ApprovalsWhitelistTeamIDs ), len (p .MergeWhitelistTeamIDs )
525+
526+ if userID > 0 {
527+ p .WhitelistUserIDs = util .SliceRemoveAll (p .WhitelistUserIDs , userID )
528+ p .ForcePushWhitelistUserIDs = util .SliceRemoveAll (p .ForcePushWhitelistUserIDs , userID )
529+ p .ApprovalsWhitelistUserIDs = util .SliceRemoveAll (p .ApprovalsWhitelistUserIDs , userID )
530+ p .MergeWhitelistUserIDs = util .SliceRemoveAll (p .MergeWhitelistUserIDs , userID )
531+ }
528532
529- if lenIDs != len (p .WhitelistUserIDs ) ||
533+ if teamID > 0 {
534+ p .WhitelistTeamIDs = util .SliceRemoveAll (p .WhitelistTeamIDs , teamID )
535+ p .ForcePushWhitelistTeamIDs = util .SliceRemoveAll (p .ForcePushWhitelistTeamIDs , teamID )
536+ p .ApprovalsWhitelistTeamIDs = util .SliceRemoveAll (p .ApprovalsWhitelistTeamIDs , teamID )
537+ p .MergeWhitelistTeamIDs = util .SliceRemoveAll (p .MergeWhitelistTeamIDs , teamID )
538+ }
539+
540+ if (lenUserIDs != len (p .WhitelistUserIDs ) ||
530541 lenForcePushIDs != len (p .ForcePushWhitelistUserIDs ) ||
531542 lenApprovalIDs != len (p .ApprovalsWhitelistUserIDs ) ||
532- lenMergeIDs != len (p .MergeWhitelistUserIDs ) {
533- if _ , err := db .GetEngine (ctx ).ID (p .ID ).Cols (
534- "whitelist_user_i_ds" ,
535- "force_push_whitelist_user_i_ds" ,
536- "merge_whitelist_user_i_ds" ,
537- "approvals_whitelist_user_i_ds" ,
538- ).Update (p ); err != nil {
543+ lenMergeIDs != len (p .MergeWhitelistUserIDs )) ||
544+ (lenTeamIDs != len (p .WhitelistTeamIDs ) ||
545+ lenForcePushTeamIDs != len (p .ForcePushWhitelistTeamIDs ) ||
546+ lenApprovalTeamIDs != len (p .ApprovalsWhitelistTeamIDs ) ||
547+ lenMergeTeamIDs != len (p .MergeWhitelistTeamIDs )) {
548+ if _ , err := db .GetEngine (ctx ).ID (p .ID ).Cols (columnNames ... ).Update (p ); err != nil {
539549 return fmt .Errorf ("updateProtectedBranches: %v" , err )
540550 }
541551 }
542552 return nil
543553}
544554
545- // RemoveTeamIDFromProtectedBranch remove all team ids from protected branch options
555+ // RemoveUserIDFromProtectedBranch removes all user ids from protected branch options
556+ func RemoveUserIDFromProtectedBranch (ctx context.Context , p * ProtectedBranch , userID int64 ) error {
557+ columnNames := []string {
558+ "whitelist_user_i_ds" ,
559+ "force_push_whitelist_user_i_ds" ,
560+ "merge_whitelist_user_i_ds" ,
561+ "approvals_whitelist_user_i_ds" ,
562+ }
563+ return removeIDsFromProtectedBranch (ctx , p , userID , 0 , columnNames )
564+ }
565+
566+ // RemoveTeamIDFromProtectedBranch removes all team ids from protected branch options
546567func RemoveTeamIDFromProtectedBranch (ctx context.Context , p * ProtectedBranch , teamID int64 ) error {
547- lenIDs , lenForcePushIDs , lenApprovalIDs , lenMergeIDs := len (p .WhitelistTeamIDs ), len (p .ForcePushWhitelistTeamIDs ), len (p .ApprovalsWhitelistTeamIDs ), len (p .MergeWhitelistTeamIDs )
548- p .WhitelistTeamIDs = util .SliceRemoveAll (p .WhitelistTeamIDs , teamID )
549- p .ForcePushWhitelistTeamIDs = util .SliceRemoveAll (p .ForcePushWhitelistTeamIDs , teamID )
550- p .ApprovalsWhitelistTeamIDs = util .SliceRemoveAll (p .ApprovalsWhitelistTeamIDs , teamID )
551- p .MergeWhitelistTeamIDs = util .SliceRemoveAll (p .MergeWhitelistTeamIDs , teamID )
552-
553- if lenIDs != len (p .WhitelistTeamIDs ) ||
554- lenForcePushIDs != len (p .ForcePushWhitelistTeamIDs ) ||
555- lenApprovalIDs != len (p .ApprovalsWhitelistTeamIDs ) ||
556- lenMergeIDs != len (p .MergeWhitelistTeamIDs ) {
557- if _ , err := db .GetEngine (ctx ).ID (p .ID ).Cols (
558- "whitelist_team_i_ds" ,
559- "force_push_whitelist_team_i_ds" ,
560- "merge_whitelist_team_i_ds" ,
561- "approvals_whitelist_team_i_ds" ,
562- ).Update (p ); err != nil {
563- return fmt .Errorf ("updateProtectedBranches: %v" , err )
564- }
568+ columnNames := []string {
569+ "whitelist_team_i_ds" ,
570+ "force_push_whitelist_team_i_ds" ,
571+ "merge_whitelist_team_i_ds" ,
572+ "approvals_whitelist_team_i_ds" ,
565573 }
566- return nil
574+ return removeIDsFromProtectedBranch ( ctx , p , 0 , teamID , columnNames )
567575}
0 commit comments