User:Werdna/GlobalBlocking checklist
Appearance
Per brion's comments on bug 8707:
- GlobalBlocking class..
- GlobalBlocking::getUserPermissionsErrors
- lack of caching may or may not be worrying
- conditions...
$conds = array( 'gb_address' => $ip, 'gb_timestamp<'.$dbr->addQuotes($dbr->timestamp(wfTimestampNow())) );
- ok that looks totally broken.
- no ip range checks
- timestamp in the past? wtf? we want future blocks?
- add the range checks
- remove this extra timestamp check
- add an expiry check
- $expiry changes data types (coded timestamp -> text), this is poor practice
- change this to another var
- expiry is loaded but not checked
- expire if we're old!
- $block->gb_by_wiki is dumped straight into err msg output without a clear data type
- what's the type of db_by_wiki? dbname or interwiki?
- GlobalBlocking::getGlobalBlockingMaster()
- GlobalBlocking::getGlobalBlockingSlave()
- uses wfGetDB... is this right for the current load balancersystem?
- GlobalBlocking::buildForm
- just replace this with wfBuildForm() since it calls through...
- SpecialGlobalBlock...
- SpecialGlobalBlock::execute
if (!is_array($errors) || count($errors)>0) {
- wtf? this is some ugly damn code. :D ends up overall just looking very confusing
- pull apart this if() tree to something legible
- SpecialGlobalBlock::loadParameters()
- use getText() for reason
- quote wpExpiryOther
- SpecialGlobalBlock::trySubmit()
- Error-out for dupe blocks is done before expired blocks are purged.
- purge expired blocks at top
- range blocks are not saved properly -- missing range start and end fields
- expiry handling... shouldn't this be encapsulated for us already?
- check Block for encapsulated infinity handling
- SpecialGlobalBlock::buildExpirySelector
- doesn't this duplicate existing code?
- find and replace with clean call to core code
- SpecialGlobalBlock::buildForm
- inputs are too short (compare to 45 chars on Special:Blockip)
- labels aren't aligned properly
- SpecialGlobalBlockList
- SpecialGlobalBlockList::showList
- -> bad escaping on error messages -- use wfEscapeWikiText() or don't run these through wiki parser
- validity checks are overlong
- use IP::isIPAddress
- SpecialGlobalBlockList::unblockForm
- same bad escaping on error messages
- SpecialGlobalBlockList::tryUnblockSubmit
- overload IP checks again
- I've seen this pattern many times over:
$expiry = Block::decodeExpiry( $row->gb_expiry ); if ($expiry == 'infinity') { $expiry = wfMsg( 'infiniteblock' ); } else { global $wgLang; $expiry = $wgLang->timeanddate( wfTimestamp( TS_MW, $expiry ), true ); }
This is probably already encapsulated somewhere in Block-land. If it's not, at least make a local func for it!
- GlobalBlockListPager::formatRow
- Comments are getting formatted with the regular wiki parser.
This can be very disruptive -- images, tables, broken code...
- -> use the comment parser, like all other comments in such lists.