Frontend: Use public flag to disable auth #16
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
This commit is contained in:
parent
a14b74dfa6
commit
cdb7134b80
|
@ -33,14 +33,15 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
window.appConfig = {
|
window.appConfig = {
|
||||||
name: "{{ .name }}",
|
"name": "{{ .name }}",
|
||||||
version: "{{ .version }}",
|
"version": "{{ .version }}",
|
||||||
copyright: "{{ .copyright }}",
|
"copyright": "{{ .copyright }}",
|
||||||
debug: {{ .debug }},
|
"debug": {{ .debug }},
|
||||||
readonly: {{ .readonly }},
|
"readonly": {{ .readonly }},
|
||||||
cameras: {{ .cameras }},
|
"public": {{ .public }},
|
||||||
countries: {{ .countries }},
|
"cameras": {{ .cameras }},
|
||||||
thumbnails: {{ .thumbnails }}
|
"countries": {{ .countries }},
|
||||||
|
"thumbnails": {{ .thumbnails }}
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
</head>
|
</head>
|
||||||
|
|
|
@ -9,4 +9,4 @@ RUN wget -qO- https://dl.photoprism.org/fixtures/demo.tar.gz | tar xvz -C Pictur
|
||||||
RUN photoprism import
|
RUN photoprism import
|
||||||
|
|
||||||
# Start PhotoPrism server
|
# Start PhotoPrism server
|
||||||
CMD photoprism start
|
CMD photoprism --public start
|
||||||
|
|
|
@ -23,6 +23,7 @@ import { Settings } from "luxon";
|
||||||
const config = new Config(window.localStorage, window.appConfig);
|
const config = new Config(window.localStorage, window.appConfig);
|
||||||
const viewer = new Viewer();
|
const viewer = new Viewer();
|
||||||
const clipboard = new Clipboard(window.localStorage, "photo_clipboard");
|
const clipboard = new Clipboard(window.localStorage, "photo_clipboard");
|
||||||
|
const isPublic = config.getValue("public");
|
||||||
|
|
||||||
// Assign helpers to VueJS prototype
|
// Assign helpers to VueJS prototype
|
||||||
Vue.prototype.$event = Event;
|
Vue.prototype.$event = Event;
|
||||||
|
@ -69,7 +70,7 @@ const router = new Router({
|
||||||
|
|
||||||
router.beforeEach((to, from, next) => {
|
router.beforeEach((to, from, next) => {
|
||||||
if(to.matched.some(record => record.meta.admin)) {
|
if(to.matched.some(record => record.meta.admin)) {
|
||||||
if (Session.isAdmin()) {
|
if (isPublic || Session.isAdmin()) {
|
||||||
next();
|
next();
|
||||||
} else {
|
} else {
|
||||||
next({
|
next({
|
||||||
|
@ -78,7 +79,7 @@ router.beforeEach((to, from, next) => {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
} else if(to.matched.some(record => record.meta.auth)) {
|
} else if(to.matched.some(record => record.meta.auth)) {
|
||||||
if (Session.isUser()) {
|
if (isPublic || Session.isUser()) {
|
||||||
next();
|
next();
|
||||||
} else {
|
} else {
|
||||||
next({
|
next({
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
</v-list-tile-content>
|
</v-list-tile-content>
|
||||||
</v-list-tile>
|
</v-list-tile>
|
||||||
|
|
||||||
<v-list-tile to="/library" @click="" class="p-navigation-library" v-if="session.auth">
|
<v-list-tile to="/library" @click="" class="p-navigation-library" v-if="session.auth || isPublic">
|
||||||
<v-list-tile-action>
|
<v-list-tile-action>
|
||||||
<v-icon>camera_roll</v-icon>
|
<v-icon>camera_roll</v-icon>
|
||||||
</v-list-tile-action>
|
</v-list-tile-action>
|
||||||
|
@ -156,7 +156,7 @@
|
||||||
</v-list-tile-content>
|
</v-list-tile-content>
|
||||||
</v-list-tile>
|
</v-list-tile>
|
||||||
|
|
||||||
<v-list-tile to="/settings" @click="" class="p-navigation-settings" v-if="session.auth">
|
<v-list-tile to="/settings" @click="" class="p-navigation-settings" v-if="session.auth || isPublic">
|
||||||
<v-list-tile-action>
|
<v-list-tile-action>
|
||||||
<v-icon>settings</v-icon>
|
<v-icon>settings</v-icon>
|
||||||
</v-list-tile-action>
|
</v-list-tile-action>
|
||||||
|
@ -166,7 +166,7 @@
|
||||||
</v-list-tile-content>
|
</v-list-tile-content>
|
||||||
</v-list-tile>
|
</v-list-tile>
|
||||||
|
|
||||||
<v-list-tile @click="logout" class="p-navigation-logout" v-if="session.auth">
|
<v-list-tile @click="logout" class="p-navigation-logout" v-if="!isPublic && session.auth">
|
||||||
<v-list-tile-action>
|
<v-list-tile-action>
|
||||||
<v-icon>power_settings_new</v-icon>
|
<v-icon>power_settings_new</v-icon>
|
||||||
</v-list-tile-action>
|
</v-list-tile-action>
|
||||||
|
@ -176,7 +176,7 @@
|
||||||
</v-list-tile-content>
|
</v-list-tile-content>
|
||||||
</v-list-tile>
|
</v-list-tile>
|
||||||
|
|
||||||
<v-list-tile to="/login" @click="" class="p-navigation-login" v-if="!session.auth">
|
<v-list-tile to="/login" @click="" class="p-navigation-login" v-if="!isPublic && !session.auth">
|
||||||
<v-list-tile-action>
|
<v-list-tile-action>
|
||||||
<v-icon>lock</v-icon>
|
<v-icon>lock</v-icon>
|
||||||
</v-list-tile-action>
|
</v-list-tile-action>
|
||||||
|
@ -200,6 +200,7 @@
|
||||||
drawer: null,
|
drawer: null,
|
||||||
mini: mini,
|
mini: mini,
|
||||||
session: this.$session,
|
session: this.$session,
|
||||||
|
isPublic: this.$config.getValue("public"),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
|
|
@ -20,8 +20,4 @@ test('Navigate', async t => {
|
||||||
await t
|
await t
|
||||||
.click('a[href="/labels"]')
|
.click('a[href="/labels"]')
|
||||||
.expect(Selector('div.p-page-labels').exists, {timeout: 5000}).ok();
|
.expect(Selector('div.p-page-labels').exists, {timeout: 5000}).ok();
|
||||||
await page.openNav();
|
|
||||||
await t
|
|
||||||
.click('a[href="/login"]')
|
|
||||||
.expect(Selector('div.p-page-login').exists, {timeout: 5000}).ok();
|
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in a new issue