Implement more granular permissions system
Would help with things like #62
What permissions are we talking about here, and how would they be configured? Would plugins request specific permissions to be accepted on load / enable, to be approved at runtime or startup?
e.g. at the moment we have !!admin. This does all sorts of things, from allowing you to !!tweet to letting you enable and disable plugins/commands as well as adding other admins and controlling the ban list.
A permissions system would allow you to assign permission to do all of those things individually. The !!tweet permission would be defined at the plugin level. It would also allow you to assign specific permissions (or lack thereof) to groups of users, e.g. all users with explicit write access to rooms, as well as custom groups.
A lot of this requires a web interface to be able to sanely configure it, and a manifest to be able to sanely define it.
AH, see I was looking for permissions at the boundary between a plugin and the core ("What should this plugin be allowed to do?"), rather than between a plugin and a user ("What users can use this plugin / endpoint?")
To be implemented as part of https://github.com/Room-11/Jeeves/issues/102