fix(editor): Replace isInstanceOwner checks with scopes where applicable (#7858)
Co-authored-by: Alex Grozav <alex@grozav.com>
This commit is contained in:
@@ -6,6 +6,7 @@ vi.mock('@/rbac/checks', () => ({
|
||||
hasScope: vi.fn(),
|
||||
isGuest: vi.fn(),
|
||||
isDefaultUser: vi.fn(),
|
||||
isInstanceOwner: vi.fn(),
|
||||
isAuthenticated: vi.fn(),
|
||||
isEnterpriseFeatureEnabled: vi.fn(),
|
||||
isValid: vi.fn(),
|
||||
@@ -17,6 +18,7 @@ describe('hasPermission()', () => {
|
||||
vi.mocked(checks.hasScope).mockReturnValue(true);
|
||||
vi.mocked(checks.isGuest).mockReturnValue(true);
|
||||
vi.mocked(checks.isDefaultUser).mockReturnValue(true);
|
||||
vi.mocked(checks.isInstanceOwner).mockReturnValue(true);
|
||||
vi.mocked(checks.isAuthenticated).mockReturnValue(true);
|
||||
vi.mocked(checks.isEnterpriseFeatureEnabled).mockReturnValue(true);
|
||||
vi.mocked(checks.isValid).mockReturnValue(true);
|
||||
@@ -30,6 +32,7 @@ describe('hasPermission()', () => {
|
||||
'rbac',
|
||||
'role',
|
||||
'defaultUser',
|
||||
'instanceOwner',
|
||||
]),
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import { useUsersStore } from '@/stores/users.store';
|
||||
import { isInstanceOwner } from '@/rbac/checks/isInstanceOwner';
|
||||
|
||||
vi.mock('@/stores/users.store', () => ({
|
||||
useUsersStore: vi.fn(),
|
||||
}));
|
||||
|
||||
describe('Checks', () => {
|
||||
describe('isInstanceOwner()', () => {
|
||||
it('should return false if user not logged in', () => {
|
||||
vi.mocked(useUsersStore).mockReturnValue({ isInstanceOwner: false } as ReturnType<
|
||||
typeof useUsersStore
|
||||
>);
|
||||
|
||||
expect(isInstanceOwner()).toBe(false);
|
||||
});
|
||||
|
||||
it('should return true if user is default user', () => {
|
||||
vi.mocked(useUsersStore).mockReturnValue({ isInstanceOwner: true } as unknown as ReturnType<
|
||||
typeof useUsersStore
|
||||
>);
|
||||
|
||||
expect(isInstanceOwner()).toBe(true);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -2,6 +2,7 @@ export * from './hasRole';
|
||||
export * from './hasScope';
|
||||
export * from './isAuthenticated';
|
||||
export * from './isDefaultUser';
|
||||
export * from './isInstanceOwner';
|
||||
export * from './isEnterpriseFeatureEnabled';
|
||||
export * from './isGuest';
|
||||
export * from './isValid';
|
||||
|
||||
5
packages/editor-ui/src/rbac/checks/isInstanceOwner.ts
Normal file
5
packages/editor-ui/src/rbac/checks/isInstanceOwner.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
import { useUsersStore } from '@/stores/users.store';
|
||||
import type { DefaultUserMiddlewareOptions, RBACPermissionCheck } from '@/types/rbac';
|
||||
|
||||
export const isInstanceOwner: RBACPermissionCheck<DefaultUserMiddlewareOptions> = () =>
|
||||
useUsersStore().isInstanceOwner;
|
||||
@@ -3,6 +3,7 @@ import {
|
||||
hasScope,
|
||||
isAuthenticated,
|
||||
isDefaultUser,
|
||||
isInstanceOwner,
|
||||
isEnterpriseFeatureEnabled,
|
||||
isGuest,
|
||||
isValid,
|
||||
@@ -17,6 +18,7 @@ export const permissions: Permissions = {
|
||||
authenticated: isAuthenticated,
|
||||
custom: isValid,
|
||||
defaultUser: isDefaultUser,
|
||||
instanceOwner: isInstanceOwner,
|
||||
enterprise: isEnterpriseFeatureEnabled,
|
||||
guest: isGuest,
|
||||
rbac: hasScope,
|
||||
|
||||
Reference in New Issue
Block a user