Skip to content

Commit 817d78e

Browse files
committed
ensure clean doesnt clean the user issuing the command
1 parent 010ff3b commit 817d78e

1 file changed

Lines changed: 28 additions & 4 deletions

File tree

cmd/src/users_clean.go

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,26 @@ Examples:
5050
ctx := context.Background()
5151
client := cfg.apiClient(apiFlags, flagSet.Output())
5252

53-
query := `
53+
currentUserQuery := `
54+
query {
55+
currentUser {
56+
username
57+
}
58+
}
59+
`
60+
var currentUserResult struct {
61+
Data struct {
62+
CurrentUser struct {
63+
Username string
64+
}
65+
}
66+
}
67+
if ok, err := cfg.apiClient(apiFlags, flagSet.Output()).NewRequest(currentUserQuery, nil).DoRaw(context.Background(), &currentUserResult); err != nil || !ok {
68+
return err
69+
}
70+
fmt.Println(currentUserResult)
71+
72+
usersQuery := `
5473
query Users() {
5574
users() {
5675
nodes {
@@ -61,21 +80,26 @@ query Users() {
6180
` + userFragment
6281

6382
// get users to delete
64-
var result struct {
83+
var usersResult struct {
6584
Users struct {
6685
Nodes []User
6786
}
6887
}
69-
if ok, err := client.NewRequest(query, nil).Do(ctx, &result); err != nil || !ok {
88+
if ok, err := client.NewRequest(usersQuery, nil).Do(ctx, &usersResult); err != nil || !ok {
7089
return err
7190
}
91+
fmt.Println(usersResult)
7292

7393
usersToDelete := make([]UserToDelete, 0)
74-
for _, user := range result.Users.Nodes {
94+
for _, user := range usersResult.Users.Nodes {
7595
daysSinceLastUse, wasLastActive, err := computeDaysSinceLastUse(user)
7696
if err != nil {
7797
return err
7898
}
99+
// never remove user issuing command
100+
if user.Username == currentUserResult.Data.CurrentUser.Username {
101+
continue
102+
}
79103
if !wasLastActive && !*removeNoLastActive {
80104
continue
81105
}

0 commit comments

Comments
 (0)