GAM icon indicating copy to clipboard operation
GAM copied to clipboard

Bulk remove users from group via CSV file

Open elorrtu5746 opened this issue 2 years ago • 1 comments

Is your feature request related to a problem? Please describe. For educational institutions especially, there are a lot of movements between Google groups as students move between classes. However, Google Workspace currently only supports bulk addition of users to a group (which is group agnostic - that is, you can upload multiple users to multiple groups in a single file). GAM expands this feature since they allow bulk update or remove users from a group via a file, but this is not group agnostic; So there's no way to remove multiple users from multiple groups via a single file.

Describe the solution you'd like I would like GAM to allow users removal from multiple groups in bulk, via a single command and a single file. So for example, gam update groups remove file <file name> would take a CSV file that for each line has the user email and the group email, and would remove the specified user from the specified group.

Ideally, I would love to see an option to move users from one group to another, so that GAM could take a file with user email, origin group, and destination group and transfer the users from one group to the other (for example gam update groups move file <file name> ) - but that may be an overly specific feature, although it would be amazing to have.

Describe alternatives you've considered This issue could be solved by manually dividing the single file into multiple files, one for each group (or just doing it manually); but this is a cumbersome solution. Another solution would be writing a specialized code to do this, but this is also not an ideal solution.

elorrtu5746 avatar Aug 26 '23 15:08 elorrtu5746

This is simple with Advanced GAM

Make a CSV file RemoveGroups.csv with two columns: email,group

gam redirect stdout ./RemoveGroups.txt multiprocess redirect stderr stdout csv RemoveGroups.csv gam user "~email" delete group "~group"

Make a CSV file ChangeGroups.csv with three columns: email,origin,destination

gam redirect stdout ./ChangeGroupsRemove.txt multiprocess redirect stderr stdout csv ChangeGroups.csv gam user "~email" delete group "~origin" gam redirect stdout ./ChangeGroupsAdd.txt multiprocess redirect stderr stdout csv ChangeGroups.csv gam user "~email" add group "~destination"

See: https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Group-Membership https://github.com/taers232c/GAMADV-XTD3/wiki/Users-Group-Membership

Ross

Ross Scroggs @.***

On Aug 26, 2023, at 8:22 AM, elorrtu5746 @.***> wrote:

Is your feature request related to a problem? Please describe. For educational institutions especially, there are a lot of movements between Google groups as students move between classes. However, Google Workspace currently only supports bulk addition of users to a group (which is group agnostic - that is, you can upload multiple users to multiple groups in a single file). GAM expands this feature since they allow bulk update or remove users from a group via a file, but this is not group agnostic; So there's no way to remove multiple users from multiple groups via a single file.

Describe the solution you'd like I would like GAM to allow users removal from multiple groups in bulk, via a single command and a single file. So for example, gam update groups remove file would take a CSV file that for each line has the user email and the group email, and would remove the specified user from the specified group.

Ideally, I would love to see an option to move users from one group to another, so that GAM could take a file with user email, origin group, and destination group and transfer the users from one group to the other (for example gam update groups move file ) - but that may be an overly specific feature, although it would be amazing to have.

Describe alternatives you've considered This issue could be solved by manually dividing the single file into multiple files, one for each group (or just doing it manually); but this is a cumbersome solution. Another solution would be writing a specialized code to do this, but this is also not an ideal solution.

— Reply to this email directly, view it on GitHub https://github.com/GAM-team/GAM/issues/1657, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACCTYL3KR7GFBQYUQSQT25TXXIIERANCNFSM6AAAAAA37VEMFU. You are receiving this because you are subscribed to this thread.

taers232c avatar Aug 26 '23 16:08 taers232c