User:Justarandomamerican/globalUserLock.js: Difference between revisions
From WikiOasis Meta
More actions
Undo revision 4633 by Justarandomamerican (talk) Tag: Undo |
Me attempting to get a Claude script to work |
||
| Line 627: | Line 627: | ||
// ── API helpers ──────────────────────────────────────────────────────────── | // ── API helpers ──────────────────────────────────────────────────────────── | ||
function | function getSetGlobalAccountStatusToken() { | ||
return $.ajax( { | return $.ajax( { | ||
url: API_ENDPOINT, | url: API_ENDPOINT, | ||
data: { action: 'query', meta: 'tokens', type: ' | data: { action: 'query', meta: 'tokens', type: 'setglobalaccountstatus', format: 'json' } | ||
} ).then( function ( data ) { | } ).then( function ( data ) { | ||
return data.query.tokens. | return data.query.tokens.setglobalaccountstatustoken; | ||
} ); | } ); | ||
} | } | ||
| Line 705: | Line 705: | ||
/** | /** | ||
* Lock a single global account via the CentralAuth API. | * Lock a single global account via the CentralAuth API. | ||
* Uses action=setglobalaccountstatus per Extension:CentralAuth/API. | |||
* | |||
* @param {string} username | |||
* @param {string} token setglobalaccountstatus token | |||
* @param {string} reason | |||
* @param {boolean} hide Apply "lists" (hidden from global user list) flag | |||
* @param {boolean} suppress Apply "suppressed" flag (overrides hide) | |||
*/ | */ | ||
function lockAccount( username, token, reason, hide, suppress ) { | function lockAccount( username, token, reason, hide, suppress ) { | ||
// hidden param: '' = not hidden, 'lists' = hidden from list, 'suppressed' = suppressed | |||
let hidden = ''; | |||
if ( suppress ) { | if ( suppress ) { | ||
hidden = 'suppressed'; | |||
} else if ( hide ) { | } else if ( hide ) { | ||
hidden = 'lists'; | |||
} | } | ||
return $.ajax( { | return $.ajax( { | ||
| Line 722: | Line 726: | ||
method: 'POST', | method: 'POST', | ||
data: { | data: { | ||
action: | action: 'setglobalaccountstatus', | ||
user: | user: username, | ||
locked: 'lock', | |||
hidden: hidden, | |||
token: | reason: reason, | ||
format: | token: token, | ||
format: 'json' | |||
} | } | ||
} ); | } ); | ||
| Line 868: | Line 873: | ||
$( '#gul-progress' ).addClass( 'visible' ); | $( '#gul-progress' ).addClass( 'visible' ); | ||
setProgress( 0, selected.length ); | setProgress( 0, selected.length ); | ||
setStatus( 'Fetching | setStatus( 'Fetching token…', 'info' ); | ||
getSetGlobalAccountStatusToken() | |||
.then( function ( token ) { | .then( function ( token ) { | ||
setStatus( 'Locking ' + selected.length + ' account(s)…', 'info' ); | setStatus( 'Locking ' + selected.length + ' account(s)…', 'info' ); | ||
| Line 916: | Line 921: | ||
setBadge( username, 'failed', | setBadge( username, 'failed', | ||
'Error: ' + mw.html.escape( data.error.info || data.error.code ) ); | 'Error: ' + mw.html.escape( data.error.info || data.error.code ) ); | ||
} else if ( data.setglobalaccountstatus ) { | |||
locked++; | |||
setBadge( username, 'locked', 'Locked ✓' ); | |||
} else { | } else { | ||
// Unexpected response shape — treat as success if no error key | |||
locked++; | locked++; | ||
setBadge( username, 'locked', 'Locked ✓' ); | setBadge( username, 'locked', 'Locked ✓' ); | ||
| Line 938: | Line 947: | ||
.fail( function () { | .fail( function () { | ||
setStatus( | setStatus( | ||
'Failed to obtain | 'Failed to obtain token. Are you logged in with the centralauth-lock right?', | ||
'error' | 'error' | ||
); | ); | ||