mirror of
https://github.com/sysadminsmedia/homebox.git
synced 2025-12-21 21:33:02 +01:00
Compare commits
5 Commits
mk/merge-e
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e4d8bb2ada | ||
|
|
3becf046e6 | ||
|
|
a21b3257d4 | ||
|
|
5f9ab577bb | ||
|
|
0a969bb64d |
@@ -181,7 +181,7 @@ HomeBox supports OpenID Connect (OIDC) authentication, allowing users to login u
|
|||||||
- `HBOX_OIDC_CLIENT_SECRET`: Client secret from your OIDC provider
|
- `HBOX_OIDC_CLIENT_SECRET`: Client secret from your OIDC provider
|
||||||
|
|
||||||
3. **Configure Redirect URI**: In your OIDC provider, set the redirect URI to:
|
3. **Configure Redirect URI**: In your OIDC provider, set the redirect URI to:
|
||||||
`https://your-homebox-domain.com/api/v1/users/login/oidc/callback`
|
`https://your-homebox-domain.example.com/api/v1/users/login/oidc/callback`
|
||||||
|
|
||||||
### Advanced OIDC Configuration
|
### Advanced OIDC Configuration
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
- HBOX_LOG_LEVEL=info
|
- HBOX_LOG_LEVEL=info
|
||||||
- HBOX_LOG_FORMAT=text
|
- HBOX_LOG_FORMAT=text
|
||||||
- HBOX_WEB_MAX_FILE_UPLOAD=10
|
- HBOX_WEB_MAX_UPLOAD_SIZE=10
|
||||||
# Please consider allowing analytics to help us improve Homebox (basic computer information, no personal data)
|
# Please consider allowing analytics to help us improve Homebox (basic computer information, no personal data)
|
||||||
- HBOX_OPTIONS_ALLOW_ANALYTICS=false
|
- HBOX_OPTIONS_ALLOW_ANALYTICS=false
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -81,17 +81,6 @@
|
|||||||
errorMessage.value = t("scanner.error");
|
errorMessage.value = t("scanner.error");
|
||||||
};
|
};
|
||||||
|
|
||||||
const checkPermissionsError = async () => {
|
|
||||||
if (navigator.permissions) {
|
|
||||||
const permissionStatus = await navigator.permissions.query({ name: "camera" as PermissionName });
|
|
||||||
if (permissionStatus.state === "denied") {
|
|
||||||
errorMessage.value = t("scanner.permission_denied");
|
|
||||||
console.error("Camera permission denied");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
const handleButtonClick = () => {
|
const handleButtonClick = () => {
|
||||||
openDialog(DialogID.ProductImport, { params: { barcode: detectedBarcode.value } });
|
openDialog(DialogID.ProductImport, { params: { barcode: detectedBarcode.value } });
|
||||||
};
|
};
|
||||||
@@ -103,11 +92,19 @@
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (await checkPermissionsError()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
// Request camera permission first
|
||||||
|
try {
|
||||||
|
const stream = await navigator.mediaDevices.getUserMedia({ video: true });
|
||||||
|
stream.getTracks().forEach(track => track.stop());
|
||||||
|
} catch (err: unknown) {
|
||||||
|
if (err instanceof Error && err.name === "NotAllowedError") {
|
||||||
|
errorMessage.value = t("scanner.permission_denied");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
const devices = await codeReader.listVideoInputDevices();
|
const devices = await codeReader.listVideoInputDevices();
|
||||||
sources.value = devices;
|
sources.value = devices;
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,7 @@
|
|||||||
{{ btn.name.value }}
|
{{ btn.name.value }}
|
||||||
<Shortcut
|
<Shortcut
|
||||||
v-if="btn.shortcut"
|
v-if="btn.shortcut"
|
||||||
class="ml-auto hidden group-hover:inline"
|
class="invisible ml-auto group-hover:visible"
|
||||||
:keys="btn.shortcut.replace('Shift', '⇧').split('+')"
|
:keys="btn.shortcut.replace('Shift', '⇧').split('+')"
|
||||||
/>
|
/>
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
|
|||||||
Reference in New Issue
Block a user