Skip to content

Commit 618939c

Browse files
feat(users): show admins when listing users (#205)
Also added tests to cover the behavior
1 parent 3028fd8 commit 618939c

3 files changed

Lines changed: 74 additions & 2 deletions

File tree

cmd/users.go

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,12 @@ func (d DeisCmd) UsersList(results int) error {
2222
return err
2323
}
2424

25-
d.Printf("=== Users%s", limitCount(len(users), count))
25+
d.Printf("=== Users (*=admin)%s", limitCount(len(users), count))
2626

2727
for _, user := range users {
28+
if user.IsSuperuser {
29+
d.Print("*")
30+
}
2831
d.Println(user.Username)
2932
}
3033
return nil

cmd/users_test.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package cmd
2+
3+
import (
4+
"bytes"
5+
"fmt"
6+
"net/http"
7+
"testing"
8+
9+
"github.com/arschles/assert"
10+
"github.com/deis/workflow-cli/pkg/testutil"
11+
)
12+
13+
func TestUsersList(t *testing.T) {
14+
t.Parallel()
15+
cf, server, err := testutil.NewTestServerAndClient()
16+
if err != nil {
17+
t.Fatal(err)
18+
}
19+
defer server.Close()
20+
var b bytes.Buffer
21+
cmdr := DeisCmd{WOut: &b, ConfigFile: cf}
22+
23+
server.Mux.HandleFunc("/v2/users/", func(w http.ResponseWriter, r *http.Request) {
24+
testutil.SetHeaders(w)
25+
fmt.Fprintf(w, `{
26+
"count": 2,
27+
"next": null,
28+
"previous": null,
29+
"results": [
30+
{
31+
"id": 2,
32+
"last_login": "2014-10-19T22:01:00.601Z",
33+
"is_superuser": false,
34+
"username": "test",
35+
"first_name": "test",
36+
"last_name": "testerson",
37+
"email": "test@example.com",
38+
"is_staff": false,
39+
"is_active": true,
40+
"date_joined": "2014-10-19T22:01:00.601Z",
41+
"groups": [],
42+
"user_permissions": []
43+
},
44+
{
45+
"id": 1,
46+
"last_login": "2014-10-19T22:01:00.601Z",
47+
"is_superuser": true,
48+
"username": "jkirk",
49+
"first_name": "james",
50+
"last_name": "kirk",
51+
"email": "jkrik@starfleet.ufp.gov",
52+
"is_staff": true,
53+
"is_active": true,
54+
"date_joined": "2014-10-19T22:01:00.601Z",
55+
"groups": [],
56+
"user_permissions": []
57+
}
58+
]
59+
}`)
60+
})
61+
62+
err = cmdr.UsersList(-1)
63+
assert.NoErr(t, err)
64+
65+
assert.Equal(t, b.String(), `=== Users (*=admin)
66+
test
67+
*jkirk
68+
`, "output")
69+
}

parser/users.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ Use 'deis help [command]' to learn more.
3535

3636
func usersList(argv []string, cmdr cmd.Commander) error {
3737
usage := `
38-
Lists all registered users.
38+
Lists all registered users. Workflow administrators will be marked with a *.
3939
Requires admin privileges.
4040
4141
Usage: deis users:list [options]

0 commit comments

Comments
 (0)