Fork Stalwart WebUI v1.0.11 as INBUXA Admin
- One edition: whatever edition the server reports, nothing is hidden or disabled as Enterprise-only (accountStore.setAccountInfo). - INBUXA branding: name, logo (mark plus a text-colored wordmark), favicon, page titles, setup wizard text, and ihasmail's palette in light and dark. - Two-factor setup names INBUXA as the issuer and drops the image parameter that made authenticator apps fetch a logo from a third-party site. - Runs apart from the server: the server address can be set at deploy time with <meta name="api-base-url">, and OAuth endpoints the server returns as relative paths are resolved against the server's address, not the page's. Verified end to end against a separate inbuxa-server. - Upstream's release workflow moved to .github-upstream so it never runs. Upstream's history contains no Enterprise-only code, so this is an ordinary fork. upstream is a fetch-only remote.
This commit is contained in:
@@ -33,7 +33,8 @@ describe('accountStore', () => {
|
||||
|
||||
const state = useAccountStore.getState();
|
||||
expect(state.permissions).toEqual(['b', 'c']);
|
||||
expect(state.edition).toBe('oss');
|
||||
// INBUXA: one edition. A server reporting 'oss' still unlocks everything.
|
||||
expect(state.edition).toBe('enterprise');
|
||||
expect(state.locale).toBe('ja');
|
||||
});
|
||||
|
||||
@@ -101,9 +102,11 @@ describe('accountStore', () => {
|
||||
expect(useAccountStore.getState().edition).toBe('enterprise');
|
||||
});
|
||||
|
||||
it('can be changed to oss', () => {
|
||||
it('is never oss or community, whatever the server reports (INBUXA: one edition)', () => {
|
||||
useAccountStore.getState().setAccountInfo([], 'oss', 'en');
|
||||
expect(useAccountStore.getState().edition).toBe('oss');
|
||||
expect(useAccountStore.getState().edition).toBe('enterprise');
|
||||
useAccountStore.getState().setAccountInfo([], 'community', 'en');
|
||||
expect(useAccountStore.getState().edition).toBe('enterprise');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -23,8 +23,11 @@ export const useAccountStore = create<AccountState>()((set, get) => ({
|
||||
edition: 'community',
|
||||
locale: 'en',
|
||||
|
||||
setAccountInfo: (permissions, edition, locale) => {
|
||||
set({ permissions, edition, locale });
|
||||
setAccountInfo: (permissions, _edition, locale) => {
|
||||
// INBUXA has one edition, with every feature. Whatever the server reports,
|
||||
// nothing is hidden or disabled as Enterprise-only. Features the server
|
||||
// hasn't rebuilt yet answer that for themselves.
|
||||
set({ permissions, edition: 'enterprise', locale });
|
||||
},
|
||||
|
||||
hasPermission: (perm) => {
|
||||
|
||||
Reference in New Issue
Block a user