Fix misnamed argument pass; rework how set_permission() and rmv_permission() modify permissions