Compare commits

...
2 Commits
Author SHA1 Message Date
Graham Steffaniak d5e3ec040a removed command functions (#2018) 2026-02-23 14:22:38 -06:00
Graham Steffaniak 6ec27c16f7 updated with a couple fixes 2026-02-23 14:08:03 -06:00
7 changed files with 17 additions and 20 deletions

No files matched your search

+6
View File
@@ -2,6 +2,12 @@
All notable changes to this project will be documented in this file. For commit guidelines, please refer to [Standard Version](https://github.com/conventional-changelog/standard-version).
## v1.2.7-beta
**BugFixes**:
- head > title > infinitely duplicating titles (#2016)
- Proxy auth not working with Nginx, stuck at logo (#2013)
## v1.2.6-beta
**Security**:
-12
View File
@@ -1,12 +0,0 @@
import { globalVars } from "@/utils/constants";
const ssl = window.location.protocol === "https:";
const protocol = ssl ? "wss:" : "ws:";
export default function command(url, command, onmessage, onclose) {
url = `${protocol}//${window.location.host}${globalVars.baseURL}api/command${url}`;
let conn = new window.WebSocket(url);
conn.onopen = () => conn.send(command);
conn.onmessage = onmessage;
conn.onclose = onclose;
}
+1
View File
@@ -1,6 +1,7 @@
import { fetchURL, fetchJSON } from '@/api/utils'
import { getApiPath, getPublicApiPath } from '@/utils/url.js'
import { notify } from '@/notify' // Import notify for error handling
export async function getAllUsers() {
try {
const apiPath = getApiPath('api/users')
+3 -2
View File
@@ -11,10 +11,10 @@ import { mutations } from "@/store";
import { validateLogin } from "@/utils/auth";
import i18n from "@/i18n";
const titles = {
Login: i18n.global.t("general.login"),
Share: i18n.global.t("general.share"),
PublicShare: i18n.global.t("general.share"),
Files: i18n.global.t("general.files"),
Tools: i18n.global.t("general.tool"),
Settings: i18n.global.t("general.settings"),
@@ -180,11 +180,12 @@ router.beforeResolve(async (to, from, next) => {
to.matched.some((record) => record.meta.requiresAuth) ||
to.matched.some((record) => record.meta.optionalAuth)
) {
const isPublicRoute = to.path.startsWith("/public");
if (state?.user?.username) {
// do nothing, user is already set
} else {
try {
await validateLogin();
await validateLogin(isPublicRoute);
} catch (error) {
mutations.setCurrentUser(getters.anonymous());
}
-1
View File
@@ -76,7 +76,6 @@ export interface UserObject {
rules?: any[];
lockPassword?: boolean;
hideDotfiles?: boolean;
commands?: string[];
sorting?: {
by: string;
asc: boolean;
+5 -2
View File
@@ -2,9 +2,12 @@ import { mutations, getters,state } from "@/store";
import { getApiPath, getPublicApiPath } from "@/utils/url.js";
import { globalVars } from "@/utils/constants";
export async function validateLogin() {
export async function validateLogin(isPublicRoute = false) {
// Use direct fetch to avoid automatic logout on 401
let apiPath = getPublicApiPath('users', { id: 'self' });
// Public routes (e.g. /public/share/...) use the public API base path
const apiPath = isPublicRoute
? getPublicApiPath('users', { id: 'self' })
: getApiPath('/api/users', { id: 'self' });
const res = await fetch(apiPath, {
credentials: 'same-origin', // Ensure cookies are sent with the request
headers: {
+2 -3
View File
@@ -356,8 +356,7 @@ export default {
// Display initial data immediately
mutations.replaceRequest(file);
document.title = `${document.title} - ${file.name}`;
document.title = globalVars.name + " - " + this.$t("general.share") + " - " + file.name;
// Second pass: If directory has metadata available, fetch again with metadata IN THE BACKGROUND
if (file.type === "directory" && file.hasMetadata) {
this.loadingProgress = 90;
@@ -476,7 +475,7 @@ export default {
if (state.sources.count > 1) {
mutations.setCurrentSource(data.source);
}
document.title = `${document.title} - ${res.name}`;
document.title = globalVars.name + " - " + this.$t("general.files") + " - " + res.name;
// Display initial data immediately and clear loading spinner
mutations.replaceRequest(data);