Because the other answer seems not to be an acceptable solution for the problem - here another one:
The above case works if you do it like the following:
void multiauth(name user) {
if (user == name("walletxxxxxx") || user == name("walletzzzzzz"))
{
require_auth(user);
}
else
{
require_auth(_self);
}
}
But that's definitely not state of the art to grant permissions for execution of actions to specific accounts on eosio.
The name 'multiauth' itself says permissions should be granted to multiple users, a feature typicalother blockchains lackslack of. And eosio's solution is the inbuild permission system.