Initial commit

This commit is contained in:
Maurus Decimus
2026-04-20 15:02:57 +02:00
parent e72c9614f1
commit 4470616775
115 changed files with 26207 additions and 21 deletions
+37
View File
@@ -0,0 +1,37 @@
/*
* SPDX-FileCopyrightText: 2020 Stalwart Labs LLC <[email protected]>
*
* SPDX-License-Identifier: AGPL-3.0-only OR LicenseRef-SEL
*/
import { create } from 'zustand';
type Edition = 'enterprise' | 'community' | 'oss';
interface AccountState {
permissions: string[];
edition: Edition;
locale: string;
setAccountInfo: (permissions: string[], edition: Edition, locale: string) => void;
hasPermission: (perm: string) => boolean;
hasObjectPermission: (prefix: string, action: 'Get' | 'Query' | 'Create' | 'Update' | 'Destroy') => boolean;
}
export const useAccountStore = create<AccountState>()((set, get) => ({
permissions: [],
edition: 'community',
locale: 'en',
setAccountInfo: (permissions, edition, locale) => {
set({ permissions, edition, locale });
},
hasPermission: (perm) => {
return get().permissions.includes(perm);
},
hasObjectPermission: (prefix, action) => {
return get().permissions.includes(`${prefix}${action}`);
},
}));