Permissions UI

Among other things, fixes #482 and #450.
Why not using `fetchOne` here?