@@ -19,15 +19,12 @@ func TestUserOrgs(t *testing.T) {
1919 defer prepareTestEnv (t )()
2020 adminUsername := "user1"
2121 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"
2924
30- DecodeJSON (t , resp , & orgs )
25+ orgs := getUserOrgs (t , adminUsername , normalUsername )
26+
27+ user3 := models .AssertExistsAndLoadBean (t , & models.User {Name : "user3" }).(* models.User )
3128
3229 assert .Equal (t , []* api.Organization {
3330 {
@@ -41,16 +38,46 @@ func TestUserOrgs(t *testing.T) {
4138 Visibility : "public" ,
4239 },
4340 }, 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
4467}
4568
4669func TestMyOrgs (t * testing.T ) {
4770 defer prepareTestEnv (t )()
4871
72+ session := emptyTestSession (t )
73+ req := NewRequest (t , "GET" , "/api/v1/user/orgs" )
74+ resp := session .MakeRequest (t , req , http .StatusUnauthorized )
75+
4976 normalUsername := "user2"
50- session : = loginUser (t , normalUsername )
77+ session = loginUser (t , normalUsername )
5178 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 )
5481 var orgs []* api.Organization
5582 DecodeJSON (t , resp , & orgs )
5683 user3 := models .AssertExistsAndLoadBean (t , & models.User {Name : "user3" }).(* models.User )
0 commit comments