@@ -45,6 +45,78 @@ func TestRenameUsername(t *testing.T) {
4545 unittest .AssertNotExistsBean (t , & user_model.User {Name : "user2" })
4646}
4747
48+ func TestViewLimitedAndPrivateUserAndRename (t * testing.T ) {
49+ defer tests .PrepareTestEnv (t )()
50+
51+ // user 22 is a limited visibility org
52+ org22 := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 22 })
53+ req := NewRequest (t , "GET" , "/" + org22 .Name )
54+ MakeRequest (t , req , http .StatusNotFound )
55+
56+ session := loginUser (t , "user1" )
57+ oldName := org22 .Name
58+ newName := "org22_renamed"
59+ req = NewRequestWithValues (t , "POST" , "/org/" + oldName + "/settings/rename" , map [string ]string {
60+ "_csrf" : GetUserCSRFToken (t , session ),
61+ "org_name" : oldName ,
62+ "new_org_name" : newName ,
63+ })
64+ session .MakeRequest (t , req , http .StatusOK )
65+
66+ unittest .AssertExistsAndLoadBean (t , & user_model.User {Name : newName })
67+ unittest .AssertNotExistsBean (t , & user_model.User {Name : oldName })
68+
69+ req = NewRequest (t , "GET" , "/" + oldName )
70+ MakeRequest (t , req , http .StatusNotFound ) // anonymous user cannot visit limited visibility org via old name
71+ req = NewRequest (t , "GET" , "/" + oldName )
72+ session .MakeRequest (t , req , http .StatusTemporaryRedirect ) // login user can visit limited visibility org via old name
73+
74+ // org 23 is a private visibility org
75+ org23 := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 23 })
76+ req = NewRequest (t , "GET" , "/" + org23 .Name )
77+ MakeRequest (t , req , http .StatusNotFound )
78+
79+ oldName = org23 .Name
80+ newName = "org23_renamed"
81+ req = NewRequestWithValues (t , "POST" , "/org/" + oldName + "/settings/rename" , map [string ]string {
82+ "_csrf" : GetUserCSRFToken (t , session ),
83+ "org_name" : oldName ,
84+ "new_org_name" : newName ,
85+ })
86+ session .MakeRequest (t , req , http .StatusOK )
87+
88+ unittest .AssertExistsAndLoadBean (t , & user_model.User {Name : newName })
89+ unittest .AssertNotExistsBean (t , & user_model.User {Name : oldName })
90+
91+ req = NewRequest (t , "GET" , "/" + oldName )
92+ MakeRequest (t , req , http .StatusNotFound ) // anonymous user cannot visit limited visibility org via old name
93+ req = NewRequest (t , "GET" , "/" + oldName )
94+ session .MakeRequest (t , req , http .StatusTemporaryRedirect ) // login user can visit limited visibility org via old name
95+
96+ // user 31 is a private visibility user
97+ user31 := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 31 })
98+ req = NewRequest (t , "GET" , "/" + user31 .Name )
99+ MakeRequest (t , req , http .StatusNotFound )
100+
101+ oldName = user31 .Name
102+ newName = "user31_renamed"
103+ session2 := loginUser (t , oldName )
104+ req = NewRequestWithValues (t , "POST" , "/user/settings" , map [string ]string {
105+ "_csrf" : GetUserCSRFToken (t , session2 ),
106+ "name" : newName ,
107+ "visibility" : "2" , // private
108+ })
109+ session2 .MakeRequest (t , req , http .StatusSeeOther )
110+
111+ unittest .AssertExistsAndLoadBean (t , & user_model.User {Name : newName })
112+ unittest .AssertNotExistsBean (t , & user_model.User {Name : oldName })
113+
114+ req = NewRequest (t , "GET" , "/" + oldName )
115+ MakeRequest (t , req , http .StatusNotFound ) // anonymous user cannot visit private visibility user via old name
116+ req = NewRequest (t , "GET" , "/" + oldName )
117+ session .MakeRequest (t , req , http .StatusTemporaryRedirect ) // login user2 can visit private visibility user via old name
118+ }
119+
48120func TestRenameInvalidUsername (t * testing.T ) {
49121 defer tests .PrepareTestEnv (t )()
50122
0 commit comments