User:Joepayne/stripRights.js: Difference between revisions

Jump to navigation Jump to search
m
Removed protection from "User:Joepayne/stripRights.js": Unnecessary
(New script)
 
m (Removed protection from "User:Joepayne/stripRights.js": Unnecessary)
 
(13 intermediate revisions by one other user not shown)
Line 1: Line 1:
//Script to desysop to a user on one click
//Script to strip rights from a user on one click
//To do: add toggles for different skins
//To do: add toggles for different skins
if( mw.config.get("wgRelevantUserName") ) {
if( mw.config.get("wgRelevantUserName") ) {
Line 15: Line 15:
).done( function ( data ) {
).done( function ( data ) {
     try {
     try {
     if(data.query.users[0].groups.indexOf(!'sysop') >= 0) {/* Do nothing */}
     if(data.query.users[0].groups.indexOf('!sysop') >= 0) {/* Do nothing */}
     else {
     else {
var link = mw.util.addPortletLink(
var link = mw.util.addPortletLink(
    'sidebar',
    'sidebar',
    '#',
    '#',
    'Strip Admin',
    'Strip rights',
    'pt-stripadminlink',
    'pt-striprightslink',
'Remove admin privileges from this user'
'Remove standard rights from this user for inactivity'
);
);
$(link).click(function() {
$(link).click(function() {
checkAndPromote(username);
checkAndDemote(username);
});
});
     }
     }
Line 39: Line 39:
}
}


function checkAndPromote(username) {
function checkAndDemote(username) {
$.getJSON(
$.getJSON(
//Get user's group membership again
//Get user's group membership again
Line 52: Line 52:
).done( function ( data ) {
).done( function ( data ) {
     try {
     try {
     if(data.query.users[0].groups.indexOf(!'sysop') >= 0) {/* Do nothing */}
     if(data.query.users[0].groups.indexOf('!sysop') >= 0) {/* Do nothing */}
     else {
     else {
     check = confirm("Do you want to remove " + username + "'s administrator privileges on this wiki?");
     check = confirm("Do you want to remove " + username + "'s bureaucrat and admin rights on this wiki for inactivity?");
if (check) {
if (check) {
stripAdmin(username);
stripRights(username);
alertUser(username);
demotionAlert(username);
alert(username + " is now an desysopped");
alert(username + " has had their bureaucrat and admin removed for inactivity");
}
}
     }
     }
Line 71: Line 71:
}
}


function stripAdmin(username) {
function stripRights(username) {
$.getJSON(
$.getJSON(
//Get userrights token
//Get userrights token
Line 84: Line 84:
     try {
     try {
     var rightsToken = data.query.tokens.userrightstoken;
     var rightsToken = data.query.tokens.userrightstoken;
     //Grant admin
     //Strip rights
     $.ajax( {
     $.ajax( {
        url: mw.util.wikiScript( 'api' ),
        url: mw.util.wikiScript( 'api' ),
Line 93: Line 93:
            action: 'userrights',
            action: 'userrights',
            user: username,
            user: username,
            remove: 'sysop',
            remove: 'sysop|bureaucrat',
            reason: 'Procedural desysop as per [[Test Wiki:Inactivity Policy]]',
            reason: 'Procedural removal as per [[Test Wiki:Inactivity Policy]]',
            token: rightsToken,
            token: rightsToken,
        }
        }
    } ).done(console.log( "Removed sysop from: " + username )
    } ).done(console.log( "Removed rights from: " + username )
    ).fail( function ( e, data ){
    ).fail( function ( e, data ){
    console.log( e.message );
    console.log( e.message );
Line 112: Line 112:
}
}


function alertUser(username) {
function demotionAlert(username) {
//If page already exists
//If page already exists
$.ajax( {
$.ajax( {
Line 122: Line 122:
        action: 'edit',
        action: 'edit',
             title: 'User talk:' + username,
             title: 'User talk:' + username,
             summary: 'Notification',
             summary: 'Notification of rights removal',
             nocreate: 1,
             nocreate: 1,
             appendtext: 'Your admin access has been revoked for inactivity.',
             appendtext: '\n\n{{subst:' + 'Rights removed}}',
             token: mw.user.tokens.get( 'csrfToken' )
             token: mw.user.tokens.get( 'csrfToken' )
         }
         }
Line 143: Line 143:
        action: 'edit',
        action: 'edit',
             title: 'User talk:' + username,
             title: 'User talk:' + username,
             summary: 'Notification',
             summary: 'Notification of rights removal',
             createonly: 1,
             createonly: 1,
             text: 'Your admin access has been revoked for inactivity.',
             text: '\n\n{{subst:' + 'Rights removed}}',
             token: mw.user.tokens.get( 'csrfToken' )
             token: mw.user.tokens.get( 'csrfToken' )
         }
         }
Cookies help us deliver our services. By using our services, you agree to our use of cookies.

Navigation menu