mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-17 02:04:03 +00:00
Add super-admin Administration section and restructure global vs company settings
- Add Administration sidebar section (super-admin only) with Companies, Users, and Global Settings pages - Add super-admin middleware, controllers, and API routes under /api/v1/super-admin/ - Allow super-admins to manage all companies and users across tenants - Add user impersonation with short-lived tokens, audit logging, and UI banner - Move system-level settings (Mail, PDF, Backup, Update, File Disk) from per-company to Administration > Global Settings - Convert save_pdf_to_disk from CompanySetting to global Setting - Add per-company mail configuration overrides (optional, falls back to global) - Add CompanyMailConfigService to apply company mail config before sending emails
This commit is contained in:
@@ -96,6 +96,14 @@ import { required, email, maxLength, helpers } from '@vuelidate/validators'
|
||||
import useVuelidate from '@vuelidate/core'
|
||||
import { useModalStore } from '@/scripts/stores/modal'
|
||||
import { useMailDriverStore } from '@/scripts/admin/stores/mail-driver'
|
||||
import { useCompanyMailStore } from '@/scripts/admin/stores/company-mail'
|
||||
|
||||
const props = defineProps({
|
||||
storeType: {
|
||||
type: String,
|
||||
default: 'global',
|
||||
},
|
||||
})
|
||||
|
||||
let isSaving = ref(false)
|
||||
let formData = reactive({
|
||||
@@ -106,6 +114,11 @@ let formData = reactive({
|
||||
|
||||
const modalStore = useModalStore()
|
||||
const mailDriverStore = useMailDriverStore()
|
||||
const companyMailStore = useCompanyMailStore()
|
||||
|
||||
const activeStore = computed(() => {
|
||||
return props.storeType === 'company' ? companyMailStore : mailDriverStore
|
||||
})
|
||||
const { t } = useI18n()
|
||||
|
||||
const modalActive = computed(() => {
|
||||
@@ -153,7 +166,7 @@ async function onTestMailSend() {
|
||||
}
|
||||
|
||||
isSaving.value = true
|
||||
let response = await mailDriverStore.sendTestMail(formData)
|
||||
let response = await activeStore.value.sendTestMail(formData)
|
||||
if (response.data) {
|
||||
closeTestModal()
|
||||
isSaving.value = false
|
||||
|
||||
Reference in New Issue
Block a user