@@ -19,15 +19,12 @@ func TestUserOrgs(t *testing.T) {
19
19
defer prepareTestEnv (t )()
20
20
adminUsername := "user1"
21
21
normalUsername := "user2"
22
- session := loginUser (t , adminUsername )
23
- token := getTokenForLoggedInUser (t , session )
24
- urlStr := fmt .Sprintf ("/api/v1/users/%s/orgs?token=%s" , normalUsername , token )
25
- req := NewRequest (t , "GET" , urlStr )
26
- resp := session .MakeRequest (t , req , http .StatusOK )
27
- var orgs []* api.Organization
28
- user3 := models .AssertExistsAndLoadBean (t , & models.User {Name : "user3" }).(* models.User )
22
+ privateMemberUsername := "user4"
23
+ unrelatedUsername := "user5"
29
24
30
- DecodeJSON (t , resp , & orgs )
25
+ orgs := getUserOrgs (t , adminUsername , normalUsername )
26
+
27
+ user3 := models .AssertExistsAndLoadBean (t , & models.User {Name : "user3" }).(* models.User )
31
28
32
29
assert .Equal (t , []* api.Organization {
33
30
{
@@ -41,16 +38,46 @@ func TestUserOrgs(t *testing.T) {
41
38
Visibility : "public" ,
42
39
},
43
40
}, orgs )
41
+
42
+ // user itself should get it's org's he is a member of
43
+ orgs = getUserOrgs (t , privateMemberUsername , privateMemberUsername )
44
+ assert .Len (t , orgs , 1 )
45
+
46
+ // unrelated user should not get private org membership of privateMemberUsername
47
+ orgs = getUserOrgs (t , unrelatedUsername , privateMemberUsername )
48
+ assert .Len (t , orgs , 0 )
49
+
50
+ // not authenticated call also should hide org membership
51
+ orgs = getUserOrgs (t , "" , privateMemberUsername )
52
+ assert .Len (t , orgs , 0 )
53
+ }
54
+
55
+ func getUserOrgs (t * testing.T , userDoer , userCheck string ) (orgs []* api.Organization ) {
56
+ var token = ""
57
+ session := emptyTestSession (t )
58
+ if len (userDoer ) != 0 {
59
+ session = loginUser (t , userDoer )
60
+ token = getTokenForLoggedInUser (t , session )
61
+ }
62
+ urlStr := fmt .Sprintf ("/api/v1/users/%s/orgs?token=%s" , userCheck , token )
63
+ req := NewRequest (t , "GET" , urlStr )
64
+ resp := session .MakeRequest (t , req , http .StatusOK )
65
+ DecodeJSON (t , resp , & orgs )
66
+ return orgs
44
67
}
45
68
46
69
func TestMyOrgs (t * testing.T ) {
47
70
defer prepareTestEnv (t )()
48
71
72
+ session := emptyTestSession (t )
73
+ req := NewRequest (t , "GET" , "/api/v1/user/orgs" )
74
+ resp := session .MakeRequest (t , req , http .StatusUnauthorized )
75
+
49
76
normalUsername := "user2"
50
- session : = loginUser (t , normalUsername )
77
+ session = loginUser (t , normalUsername )
51
78
token := getTokenForLoggedInUser (t , session )
52
- req : = NewRequest (t , "GET" , "/api/v1/user/orgs?token=" + token )
53
- resp : = session .MakeRequest (t , req , http .StatusOK )
79
+ req = NewRequest (t , "GET" , "/api/v1/user/orgs?token=" + token )
80
+ resp = session .MakeRequest (t , req , http .StatusOK )
54
81
var orgs []* api.Organization
55
82
DecodeJSON (t , resp , & orgs )
56
83
user3 := models .AssertExistsAndLoadBean (t , & models.User {Name : "user3" }).(* models.User )
0 commit comments