# HG changeset patch # User Thomas Junk # Date 1532959339 -7200 # Node ID 9c1dfadb53aa5b1f0f64dd1f12d4b0fb31b6406a # Parent 807efc83e50766765d6a37b0b8cfe8cc364863a2 feat: usermanagement - route established and secured Added new route for prototypical implementation of usermanagement. diff -r 807efc83e507 -r 9c1dfadb53aa client/src/components/Sidebar.vue --- a/client/src/components/Sidebar.vue Mon Jul 30 13:31:35 2018 +0200 +++ b/client/src/components/Sidebar.vue Mon Jul 30 16:02:19 2018 +0200 @@ -2,10 +2,13 @@
@@ -23,8 +26,9 @@ export default { name: "sidebar", + props: ["isOverlay"], computed: { - ...mapGetters("user", ["userinfo"]), + ...mapGetters("user", ["userinfo", "is_waterway_admin"]), collapseicon() { return { fa: true, @@ -59,6 +63,7 @@ sidebarStyle() { return { sidebar: true, + overlay: this.isOverlay, sidebarcollapsed: this.collapsed, sidebarextended: !this.collapsed }; @@ -130,13 +135,16 @@ margin-top: auto; } .sidebar { - position: absolute; - z-index: 1; background-color: #ffffff; padding-top: $large-offset; height: 100vh; } +.overlay { + position: absolute; + z-index: 1; +} + .sidebarcollapsed { width: $sidebar-collapsed-width; transition: $transition; diff -r 807efc83e507 -r 9c1dfadb53aa client/src/router.js --- a/client/src/router.js Mon Jul 30 13:31:35 2018 +0200 +++ b/client/src/router.js Mon Jul 30 16:02:19 2018 +0200 @@ -1,6 +1,7 @@ import Vue from "vue"; import Router from "vue-router"; import Login from "./views/Login.vue"; +import Users from "./views/Users.vue"; import Main from "./views/Main.vue"; import store from "./store"; import { sessionStillActive, toMillisFromString } from "./lib/session"; @@ -15,6 +16,22 @@ component: Login }, { + path: "/users", + name: "users", + component: Users, + meta: { + requiresAuth: true + }, + beforeEnter: (to, from, next) => { + const isWaterwayAdmin = store.getters["user/is_waterway_admin"]; + if (!isWaterwayAdmin) { + next("/"); + } else { + next(); + } + } + }, + { path: "/", name: "mainview", component: Main, diff -r 807efc83e507 -r 9c1dfadb53aa client/src/stores/user.js --- a/client/src/stores/user.js Mon Jul 30 13:31:35 2018 +0200 +++ b/client/src/stores/user.js Mon Jul 30 16:02:19 2018 +0200 @@ -20,6 +20,9 @@ }, expires: state => { return state.expires; + }, + is_waterway_admin: state => { + return state.roles.includes("waterway_admin"); } }, mutations: { diff -r 807efc83e507 -r 9c1dfadb53aa client/src/views/Main.vue --- a/client/src/views/Main.vue Mon Jul 30 13:31:35 2018 +0200 +++ b/client/src/views/Main.vue Mon Jul 30 16:02:19 2018 +0200 @@ -1,6 +1,6 @@ diff -r 807efc83e507 -r 9c1dfadb53aa client/src/views/Users.vue --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/src/views/Users.vue Mon Jul 30 16:02:19 2018 +0200 @@ -0,0 +1,29 @@ + + + + +