|
|
Line 1: |
Line 1: |
| /*
| |
| Options:
| |
| * Now supports an option system.
| |
| * By setting a datalet true it shows in the header instead of the title.
| |
| * Note, all are assumed false if omitted. All but 'groups' are assumed false if undefined.
| |
| */
| |
| var showUserGroupSettings = {
| |
| 'IP':false,
| |
| 'unregistered':false,
| |
| 'registered':false,
| |
| 'groups': false,
| |
| 'groupless': false,
| |
| 'editcount':true,
| |
| 'regdate':false,
| |
| 'blocked':true
| |
| };
| |
|
| |
|
|
| |
| if((wgNamespaceNumber == 2 || wgNamespaceNumber == 3) && wgTitle.indexOf('/') == -1 && (wgAction != 'edit' || wgAction != 'submit')) addOnloadHook(showUserGroups)
| |
| function showUserGroups() {
| |
| var url = wgServer + wgScriptPath + '/api.php?action=query&format=json&callback=showUserGroupsCB&maxage=3600&smaxage=3600&usprop=blockinfo|groups|editcount|registration&list=users&ususers=' + encodeURIComponent(wgTitle);
| |
| importScriptURI(url);
| |
| }
| |
|
| |
| function showUserGroupsCB(obj) {
| |
| var show = window.showUserGroupSettings || false;
| |
| if(!obj['query'] || !obj['query']['users']) return
| |
| var user = obj['query']['users'];
| |
| if(user.length == 0) return
| |
| user = user[0];
| |
| var someHeading = document.getElementsByTagName('h1')[0] || document.getElementsByTagName('h2')[0]
| |
| if(!someHeading) return
| |
|
| |
| var span = document.createElement('span');
| |
| var title = 'User:' + user['name'] + ' ';
| |
| var text = ' ';
| |
|
| |
| if(user['invalid'] == '') {
| |
| if(show && show.IP) text += '[IP] '
| |
| else title += '[invalid or IP username] '
| |
| } else if(user['missing'] == '') {
| |
| if(show && show.unregistered) text += '[doesn\'t exist] '
| |
| else title += '[not a registered name] '
| |
| } else {
| |
| if(show && show.registered) text += '[exists] '
| |
| else title += '[username registered] '
| |
| if(user['groups']) {
| |
| if(show && show.groups || !show) text += '[user,' + user['groups'] + '] '
| |
| else title += '[user,' + user['groups'] + '] '
| |
| } else {
| |
| if(show && show.groupless) text += '[user] '
| |
| else title += '[user] '
| |
| }
| |
| if(user['editcount']) {
| |
| if(show && show.editcount) text += '[' + user['editcount'] + ' edits] '
| |
| else title += '[' + user['editcount'] + ' edits] '
| |
| }
| |
| if(user['registration']) {
| |
| if(show && show.regdate) text += '[created: ' + user['registration'].split('T')[0] + '] '
| |
| else title += '[created: ' + user['registration'] + '] '
| |
| }
| |
| if(user['blockedby']) {
| |
| if(show && show.blocked) text += '[blocked] '
| |
| else text += '[currently blocked] '
| |
| }
| |
| }
| |
|
| |
| span.setAttribute('class','detected-userrights');
| |
| span.appendChild(document.createTextNode(text));
| |
| someHeading.appendChild(span);
| |
| someHeading.setAttribute('title',title);
| |
| someHeading.className += ' detected-userrights-heading';
| |
| }
| |