Login: now works again

master
guusvanmeerveld 3 years ago
parent ab1fb88274
commit e6d5cafab6

@ -4,31 +4,34 @@
* @param {*} changeInfo * @param {*} changeInfo
* @param {*} tab * @param {*} tab
*/ */
const updated = (tabId, changeInfo, tab) => { const updated = (details) => {
if (changeInfo.status == 'complete' && tab.active) { chrome.scripting.executeScript(
chrome.tabs.executeScript(tab.ib, { {
file: 'login.js', target: { tabId: details.tabId },
}); files: ['login.js'],
} },
() => {}
);
}; };
/** /**
* Run when extension is installed * Run when extension is installed
*/ */
const installed = () => { const installed = (reason) => {
window.open('@pages/options.html', '_blank'); if (reason === chrome.runtime.OnInstalledReason.INSTALL) {
chrome.tabs.create({
url: '@pages/options.html',
});
}
getAccounts((accounts) => { getAccounts((accounts) => {
chrome.storage.sync.set( chrome.storage.sync.set({
{ enabled: true,
enabled: true, accounts: accounts || [],
accounts: accounts || [], });
},
() => getAccounts(console.log)
);
}); });
chrome.browserAction.setBadgeText({ chrome.action.setBadgeText({
text: 'ON', text: 'ON',
}); });
}; };
@ -41,5 +44,13 @@ const getAccounts = (callback) => {
chrome.storage.sync.get('accounts', ({ accounts }) => callback(accounts)); chrome.storage.sync.get('accounts', ({ accounts }) => callback(accounts));
}; };
chrome.tabs.onUpdated.addListener(updated); const filter = {
url: [
{
urlMatches: 'https://accounts.magister.net/*',
},
],
};
chrome.webNavigation.onCompleted.addListener(updated, filter);
chrome.runtime.onInstalled.addListener(installed); chrome.runtime.onInstalled.addListener(installed);

@ -1,11 +1,15 @@
const $ = document.querySelector.bind(document); const $ = document.querySelector.bind(document);
const getSettings = (callback) => const getSettings = (callback) =>
chrome.storage.sync.get('accounts', ({ current, accounts }) => callback(accounts[current])); chrome.storage.sync.get(['accounts', 'primaryAccount'], ({ primaryAccount, accounts }) => {
if (accounts && accounts.length != 0) {
callback(accounts.find((account) => account.username == primaryAccount));
}
});
const login = () => { const login = () => {
getSettings(async ({ school, number, password }) => { getSettings(async ({ school, username: number, password }) => {
const schoolPicker = $('scholenkiezer_value'); const schoolPicker = $('#scholenkiezer_value');
if (schoolPicker) { if (schoolPicker) {
if (school) { if (school) {

@ -4,7 +4,7 @@
"version": "3.0", "version": "3.0",
"description": "Auto-Login for Magister 6 webapp.", "description": "Auto-Login for Magister 6 webapp.",
"options_page": "@pages/options.html", "options_page": "@pages/options.html",
"homepage_url": "http://mb-o.nl/autologin", "homepage_url": "http://github.com/guusvanmeerveld/magister-auto-login",
"background": { "background": {
"service_worker": "events.js" "service_worker": "events.js"
}, },
@ -24,6 +24,6 @@
"128": "@icons/128x.png", "128": "@icons/128x.png",
"256": "@icons/256x.png" "256": "@icons/256x.png"
}, },
"permissions": ["storage"], "permissions": ["storage", "scripting", "webNavigation"],
"host_permissions": ["https://accounts.magister.net/*"] "host_permissions": ["https://accounts.magister.net/*"]
} }

@ -12,6 +12,9 @@
position: relative position: relative
h3
margin-bottom: 0
a a
position: absolute position: absolute
cursor: pointer cursor: pointer

Loading…
Cancel
Save