@@ -100,24 +100,34 @@ func TestCreateUser(t *testing.T) {
100100func TestRenameUser (t * testing.T ) {
101101 assert .NoError (t , unittest .PrepareTestDatabase ())
102102 user := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 21 })
103-
104- t .Run ("Non-Local" , func (t * testing.T ) {
105- u := & user_model.User {
106- Type : user_model .UserTypeIndividual ,
107- LoginType : auth .OAuth2 ,
108- }
109- assert .ErrorIs (t , RenameUser (t .Context (), u , "user_rename" ), user_model.ErrUserIsNotLocal {})
103+ adminUser := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 1 , IsAdmin : true })
104+ nonLocalAdminUser := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 43 , IsAdmin : true }) //, LoginType: auth.OAuth2}) ???
105+ nonLocalAdminUser .LoginType = auth .OAuth2
106+ nonLocalUser := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 44 , IsAdmin : false }) // , LoginType: auth.OAuth2}) ???
107+ nonLocalUser .LoginType = auth .OAuth2
108+
109+ t .Run ("Non-Local, Self, Non-admin" , func (t * testing.T ) {
110+ assert .ErrorIs (t , RenameUser (t .Context (), nonLocalUser , "nonlocal_user_rename" , nonLocalUser ), user_model.ErrUserIsNotLocal {UID : nonLocalUser .ID , Name : nonLocalUser .Name })
111+ })
112+ t .Run ("Non-Local, Self, Admin" , func (t * testing.T ) {
113+ assert .NoError (t , RenameUser (t .Context (), nonLocalAdminUser , "nonlocal_user_user_rename" , nonLocalAdminUser ))
114+ })
115+ t .Run ("Non-Local, Other, Non-admin" , func (t * testing.T ) {
116+ assert .ErrorIs (t , RenameUser (t .Context (), nonLocalUser , "user_rename" , user ), user_model.ErrUserIsNotLocal {UID : nonLocalUser .ID , Name : nonLocalUser .Name })
117+ })
118+ t .Run ("Non-Local, Other, Admin" , func (t * testing.T ) {
119+ assert .NoError (t , RenameUser (t .Context (), nonLocalAdminUser , "nonlocal_user_rename_2" , adminUser ))
110120 })
111121
112122 t .Run ("Same username" , func (t * testing.T ) {
113- assert .NoError (t , RenameUser (t .Context (), user , user .Name ))
123+ assert .NoError (t , RenameUser (t .Context (), user , user .Name , user ))
114124 })
115125
116126 t .Run ("Non usable username" , func (t * testing.T ) {
117127 usernames := []string {"--diff" , ".well-known" , "gitea-actions" , "aaa.atom" , "aa.png" }
118128 for _ , username := range usernames {
119129 assert .Error (t , user_model .IsUsableUsername (username ), "non-usable username: %s" , username )
120- assert .Error (t , RenameUser (t .Context (), user , username ), "non-usable username: %s" , username )
130+ assert .Error (t , RenameUser (t .Context (), user , username , user ), "non-usable username: %s" , username )
121131 }
122132 })
123133
@@ -126,7 +136,7 @@ func TestRenameUser(t *testing.T) {
126136 unittest .AssertNotExistsBean (t , & user_model.User {ID : user .ID , Name : caps })
127137 unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {OwnerID : user .ID , OwnerName : user .Name })
128138
129- assert .NoError (t , RenameUser (t .Context (), user , caps ))
139+ assert .NoError (t , RenameUser (t .Context (), user , caps , user ))
130140
131141 unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : user .ID , Name : caps })
132142 unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {OwnerID : user .ID , OwnerName : caps })
@@ -135,17 +145,17 @@ func TestRenameUser(t *testing.T) {
135145 t .Run ("Already exists" , func (t * testing.T ) {
136146 existUser := unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : 1 })
137147
138- assert .ErrorIs (t , RenameUser (t .Context (), user , existUser .Name ), user_model.ErrUserAlreadyExist {Name : existUser .Name })
139- assert .ErrorIs (t , RenameUser (t .Context (), user , existUser .LowerName ), user_model.ErrUserAlreadyExist {Name : existUser .LowerName })
148+ assert .ErrorIs (t , RenameUser (t .Context (), user , existUser .Name , user ), user_model.ErrUserAlreadyExist {Name : existUser .Name })
149+ assert .ErrorIs (t , RenameUser (t .Context (), user , existUser .LowerName , user ), user_model.ErrUserAlreadyExist {Name : existUser .LowerName })
140150 newUsername := fmt .Sprintf ("uSEr%d" , existUser .ID )
141- assert .ErrorIs (t , RenameUser (t .Context (), user , newUsername ), user_model.ErrUserAlreadyExist {Name : newUsername })
151+ assert .ErrorIs (t , RenameUser (t .Context (), user , newUsername , user ), user_model.ErrUserAlreadyExist {Name : newUsername })
142152 })
143153
144154 t .Run ("Normal" , func (t * testing.T ) {
145155 oldUsername := user .Name
146156 newUsername := "User_Rename"
147157
148- assert .NoError (t , RenameUser (t .Context (), user , newUsername ))
158+ assert .NoError (t , RenameUser (t .Context (), user , newUsername , user ))
149159 unittest .AssertExistsAndLoadBean (t , & user_model.User {ID : user .ID , Name : newUsername , LowerName : strings .ToLower (newUsername )})
150160
151161 redirectUID , err := user_model .LookupUserRedirect (t .Context (), oldUsername )
0 commit comments