PRIMARY KEY (ul_key)
) /*$wgDBTableOptions*/;
+-- Allows admins to block user from editing certain namespaces or pages
+CREATE TABLE /*$wgDBprefix*/user_restrictions (
+ -- ID of the restriction
+ ur_id int NOT NULL auto_increment,
+
+ -- Restriction type. Block from either editing namespace or page
+ ur_type varbinary(255) NOT NULL,
+ -- Namespace to restrict if ur_type = namespace
+ ur_namespace int default NULL,
+ -- Page to restrict if ur_type = page
+ ur_page_namespace int default NULL,
+ ur_page_title varchar(255) binary default '',
+
+ -- User that is restricted
+ ur_user int unsigned NOT NULL,
+ ur_user_text tinyblob NOT NULL,
+
+ -- User who has done this restriction
+ ur_by int unsigned NOT NULL,
+ ur_by_text varchar(255) binary NOT NULL default '',
+ -- Reason for this restriction
+ ur_reason tinyblob NOT NULL,
+
+ -- Time when this restriction was made
+ ur_timestamp varbinary(14) NOT NULL default '',
+ -- Expiry or "infinity"
+ ur_expiry varbinary(14) NOT NULL default '',
+
+ PRIMARY KEY ur_id (ur_id),
+ -- For looking up restrictions for user
+ INDEX ur_user (ur_user,ur_user_text(255)),
+ -- For Special:ListUserRestrictions
+ INDEX ur_type (ur_type(255),ur_timestamp),
+ INDEX ur_namespace (ur_namespace,ur_timestamp),
+ INDEX ur_page (ur_page_namespace,ur_page_title,ur_timestamp),
+ INDEX ur_timestamp (ur_timestamp),
+ -- For quick removal of expired restrictions
+ INDEX ur_expiry (ur_expiry)
+) /*$wgDBTableOptions*/;
+
-- vim: sw=2 sts=2 et