Currently Manaserv knows 8 permission classes (player, tester, gm, developer, administrator and 3 reserved for future use). The permissions of every class are hardcoded.
To allow server administrators to decide their server management policy it should be possible to freely name the 8 available classes and define the extent of their permissions. The limitation of 8 classes should stay because it allows the economic and performant method of storing it in an 8 bit bitfield.
<permissions> <class level="1"> <alias>Player</alias> <allow>!login</allow> <allow>!chat</allow> <allow>!fight</allow> <allow>!level</allow> <allow>!createcharacter</allow> <allow>@where</allow> </class> <class level="2"> <alias>GM</alias> <alias>Game Master</alias> <allow>@ban</allow> <allow>@kick</allow> <allow>@kill</allow> <allow>@warp</allow> <deny>!createcharacter</deny> </class> <class level="3"> <alias>Dev</alias> <alias>Developer</alias> <allow>@spawn</allow> <allow>@item</allow> <allow>@warp</allow> </class> [...] <class level="8"> <alias>Admin</alias> <allow>@giverightclass</allow> <allow>@takerightclass</allow> </class> </permissions>
User with this class may perform this action. Action names starting with ”@” are the corresponding @commands, those starting with ”!” are other actions which are not performed with a command.
A user with this class may 'not' perform this action, even when it has other classes which allow it.
Alternative name for a class which can be used in the @giverightclass or @takerightclass
I agree with the principle. Could you add some details about the implementation status? Also, is the xml file named rights.xml or permissions.xml?
I'd say at.xml.
at -> access table? Why not also a more common one? acl.xml?
"at" as in @. acl.xml would acceptable too, IMO.
Ok for renaming to acl.xml, then, Crush?