Nested same set_user should keep the original context user

- set_context of Transaction.set_user is restricted to root

issue3523
review1961002