mirror of
https://github.com/unraid/api.git
synced 2026-01-09 18:20:12 -06:00
chore(web): mock user session cookie during development (#997)
* chore(web): mock user session cookie during development * refactor(scripts): change default mock session name to mock-user-session * tmp: log cookies in production * refactor(api): add dev fixture for a mock user session * fix(web): only mock session cookie during development * fix(web): type coercion of MOCK_USER_SESSION env flag
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
PATHS_UNRAID_DATA=./dev/data # Where we store plugin data (e.g. permissions.json)
|
||||
PATHS_STATES=./dev/states # Where .ini files live (e.g. vars.ini)
|
||||
PATHS_AUTH_SESSIONS=./dev/sessions # Where user sessions live
|
||||
PATHS_AUTH_KEY=./dev/keys # Auth key directory
|
||||
PATHS_DYNAMIX_BASE=./dev/dynamix # Dynamix's data directory
|
||||
PATHS_DYNAMIX_CONFIG_DEFAULT=./dev/dynamix/default.cfg # Dynamix's default config file, which ships with unraid
|
||||
|
||||
0
api/dev/sessions/sess_mock-user-session
Normal file
0
api/dev/sessions/sess_mock-user-session
Normal file
@@ -7,7 +7,7 @@
|
||||
# By default, this is my-session
|
||||
|
||||
sessions_dir=/var/lib/php
|
||||
default_session_name=my-session
|
||||
default_session_name=mock-user-session
|
||||
|
||||
if [ "$1" = "--help" ]; then
|
||||
echo "This script creates a mock session on a server."
|
||||
@@ -15,7 +15,7 @@ if [ "$1" = "--help" ]; then
|
||||
echo "Usage: $0 [options]"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " [name] Name of the session to create (default: my-session)"
|
||||
echo " [name] Name of the session to create (default: mock-user-session)"
|
||||
echo " --help Display this help message and exit"
|
||||
echo ""
|
||||
echo "Example: $0 a-session-name"
|
||||
|
||||
@@ -62,7 +62,7 @@ const initialState = {
|
||||
'log-base': resolvePath('/var/log/unraid-api/' as const),
|
||||
'var-run': '/var/run' as const,
|
||||
// contains sess_ files that correspond to authenticated user sessions
|
||||
'auth-sessions': '/var/lib/php' as const,
|
||||
'auth-sessions': process.env.PATHS_AUTH_SESSIONS ?? '/var/lib/php',
|
||||
'auth-keys': resolvePath(
|
||||
process.env.PATHS_AUTH_KEY ?? ('/boot/config/plugins/dynamix.my.servers/keys' as const)
|
||||
),
|
||||
|
||||
@@ -23,7 +23,7 @@ export class CookieService {
|
||||
) {}
|
||||
|
||||
/**
|
||||
* @returns new SessionCookieOptions with `namePrefix: 'unraid_', sessionDir: '/var/lib/php'`
|
||||
* @returns new SessionCookieOptions with e.g. `namePrefix: 'unraid_', sessionDir: '/var/lib/php'`
|
||||
*/
|
||||
static defaultOpts(): SessionCookieConfig {
|
||||
return {
|
||||
|
||||
@@ -10,3 +10,5 @@ VITE_ALLOW_CONSOLE_LOGS=true
|
||||
# For an Unraid Webgui deployment, set this to 10.
|
||||
VITE_TAILWIND_BASE_FONT_SIZE=16
|
||||
VITE_WEBGUI=http://localhost:3001
|
||||
# Flag for mocking a user session during development via an unsecure cookie
|
||||
VITE_MOCK_USER_SESSION=true
|
||||
|
||||
@@ -11,6 +11,7 @@ import { useThemeStore } from '~/store/theme';
|
||||
import type { Server } from '~/types/server';
|
||||
import 'tailwindcss/tailwind.css';
|
||||
import '~/assets/main.css';
|
||||
import { devConfig } from '~/helpers/env';
|
||||
|
||||
export interface Props {
|
||||
server?: Server | string;
|
||||
@@ -92,6 +93,12 @@ onBeforeMount(() => {
|
||||
console.warn('A valid keyfile and USB Flash boot device are required to check for key renewals, key replacement eligibiliy, and OS update availability.');
|
||||
}
|
||||
});
|
||||
|
||||
onMounted(() => {
|
||||
if (devConfig.VITE_MOCK_USER_SESSION && devConfig.NODE_ENV === 'development') {
|
||||
document.cookie = 'unraid_session_cookie=mock-user-session';
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
<template>
|
||||
|
||||
5
web/helpers/env.ts
Normal file
5
web/helpers/env.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
export const devConfig = {
|
||||
/** Flag for mocking a user session during development via an unsecure cookie */
|
||||
VITE_MOCK_USER_SESSION: String(import.meta.env.VITE_MOCK_USER_SESSION) === 'true',
|
||||
NODE_ENV: process.env.NODE_ENV,
|
||||
};
|
||||
Reference in New Issue
Block a user