Inspired by https://greasyfork.org/en/scripts/430620-aws-sso-console-user-title-fix but modified to require less maintenence
当前为
// ==UserScript==
// @name AWS-SSO-Console-User-Title-IAM-Alias
// @namespace http://tampermonkey.net/
// @version 0.6
// @description Inspired by https://greasyfork.org/en/scripts/430620-aws-sso-console-user-title-fix but modified to require less maintenence
// @author Nick Carpenter
// @include https://console.aws.amazon.*
// @include https://*.console.aws.amazon.*
// @run-at document-end
// @inject-into content
// @license MIT
// @noframes
// @grant window.close
// @grant window.focus
// ==/UserScript==
function assert(condition, message) {
if (!condition) {
throw message || "Assertion failed";
}
}
(function() {
'use strict';
// console.log("======================================================")
// The query selector might need to change. But this is trying to find the span inside the button.
let nodes = document.querySelectorAll('[data-testid="awsc-nav-account-menu-button"]')
assert(nodes.length == 1, "Could not find proper span")
assert (nodes[0].children.length == 2, "Found the wrong number of children")
let str = nodes[0].children[0].title
assert(str != null, "String pulled from UI is null")
// console.log(`Element: ${str})
//AWSReservedSSO_688601398555-CloudAdmin_0012bb9c978edd37/[email protected] @ dot-master
let re = /\w+_(\w+-\w+)_\w+\/(.*)\s+@\s+(.*)/
let results = re.exec(str)
assert (results!=null, "String contents from span title attribute was not parsed properly by regular expression")
let role = results[1]
let username = results[2]
let account = results[3]
// console.log(`Username: ${username} Account: ${account} Role: ${role}`)
// console.log("======================================================")
nodes[0].children[0].innerText = `${account} / ${role} / ${username}`
})();