I want to do some work on the blocking system. Essentially, the idea
is to make blocking very flexible, whilst cleaning up some of the
flags that are used now.
Therefore, I want to replace the current ipb_address field with a
number of nullable fields, including address (username or IP address,
as it is now), namespace, page, exempted groups, and permission. If
all of the non-null fields match, the block will apply.
This will make blocking more flexible (resolves bugs 874, 1394, and
possibly others) - you will be able to place blocks as wide as the
current namespace protection, and as narrow as forbidding a certain
user from moving a certain page.
Additionally, some of the current fields can be cleaned up - blocking
account creation can be implemented by blocking the 'createaccount'
permission, and anonymous-only blocks can be implemented by adding
'users' as an exempted group.
Currently, I intend to modify the current table, and allow data of the
current schema to behave as normal, thus preventing any nasty
batch-conversion scripts for the many tens of thousands of blocks on
existing wikis.
This is a fairly major change, so I haven't started work on it.
Therefore, questions, comments, suggestions and ridicule are most
welcome.
--
Andrew Garrett