Implement authentication and access control

This commit is contained in:
Zaid Abdulla committed 2018-12-26 00:22:07 -08:00
1 parent e1bdcda191
commit 327cb78f1a
27 files changed
+600 -167

No files matched your search

+10 -4
View File
@@ -4,11 +4,15 @@ import m from "mithril";
import layout from "./layout";
import * as store from "./store";
import * as loginPage from "./login-page";
import * as overviewPage from "./overview-page";
import * as devicesPage from "./devices-page";
import * as devicePage from "./device-page";
import * as errorPage from "./error-page";
import * as faultsPage from "./faults-page";
import Authorizer from "../common/authorizer";
window.authorizer = new Authorizer(window.permissionSets);
let state;
@@ -29,17 +33,18 @@ function pagify(pageName, page) {
const component = {
render: () => {
lastRenderTimestamp = Date.now();
let c;
if (state && state.error) c = m(errorPage.component, state);
else c = m(layout, { page: pageName }, m(page.component, state));
let p;
if (state && state.error) p = m(errorPage.component, state);
else p = m(page.component, state);
fulfill();
return c;
return m(layout, { page: pageName }, p);
}
};
component.onmatch = args => {
pageVisitTimestamp = Date.now();
if (!page.init) {
state = null;
fulfill();
return;
}
@@ -64,6 +69,7 @@ function pagify(pageName, page) {
}
m.route(document.body, "/overview", {
"/login": pagify("login", loginPage),
"/overview": pagify("overview", overviewPage),
"/devices": pagify("devices", devicesPage),
"/devices/:id": pagify("devices", devicePage),