diff --git a/public/app/core/services/context_srv.ts b/public/app/core/services/context_srv.ts index 262ac14abd4..507ebcaf60f 100644 --- a/public/app/core/services/context_srv.ts +++ b/public/app/core/services/context_srv.ts @@ -1,8 +1,8 @@ import config from '../../core/config'; import { extend } from 'lodash'; import { rangeUtil, WithAccessControlMetadata } from '@grafana/data'; -import { featureEnabled } from '@grafana/runtime'; import { AccessControlAction, UserPermission } from 'app/types'; +import { featureEnabled } from '@grafana/runtime'; export class User { id: number; @@ -83,13 +83,17 @@ export class ContextSrv { } accessControlEnabled(): boolean { + return Boolean(config.featureToggles['accesscontrol']); + } + + licensedAccessControlEnabled(): boolean { return featureEnabled('accesscontrol') && Boolean(config.featureToggles['accesscontrol']); } // Checks whether user has required permission hasPermissionInMetadata(action: AccessControlAction | string, object: WithAccessControlMetadata): boolean { // Fallback if access control disabled - if (!config.featureToggles['accesscontrol']) { + if (!this.accessControlEnabled()) { return true; } @@ -99,7 +103,7 @@ export class ContextSrv { // Checks whether user has required permission hasPermission(action: AccessControlAction | string): boolean { // Fallback if access control disabled - if (!config.featureToggles['accesscontrol']) { + if (!this.accessControlEnabled()) { return true; } @@ -126,14 +130,14 @@ export class ContextSrv { } hasAccessToExplore() { - if (config.featureToggles['accesscontrol']) { + if (this.accessControlEnabled()) { return this.hasPermission(AccessControlAction.DataSourcesExplore); } return (this.isEditor || config.viewersCanEdit) && config.exploreEnabled; } hasAccess(action: string, fallBack: boolean) { - if (!config.featureToggles['accesscontrol']) { + if (!this.accessControlEnabled()) { return fallBack; } return this.hasPermission(action); @@ -141,7 +145,7 @@ export class ContextSrv { // evaluates access control permissions, granting access if the user has any of them; uses fallback if access control is disabled evaluatePermission(fallback: () => string[], actions: string[]) { - if (!config.featureToggles['accesscontrol']) { + if (!this.accessControlEnabled()) { return fallback(); } if (actions.some((action) => this.hasPermission(action))) { diff --git a/public/app/features/admin/UserOrgs.tsx b/public/app/features/admin/UserOrgs.tsx index 8cff0b30c8c..5af09928063 100644 --- a/public/app/features/admin/UserOrgs.tsx +++ b/public/app/features/admin/UserOrgs.tsx @@ -176,7 +176,7 @@ class UnThemedOrgRow extends PureComponent { - {contextSrv.accessControlEnabled() ? ( + {contextSrv.licensedAccessControlEnabled() ? (
diff --git a/public/app/features/teams/TeamList.tsx b/public/app/features/teams/TeamList.tsx index 27c6af5be0b..9c40f286826 100644 --- a/public/app/features/teams/TeamList.tsx +++ b/public/app/features/teams/TeamList.tsx @@ -43,7 +43,7 @@ export class TeamList extends PureComponent { componentDidMount() { this.fetchTeams(); - if (contextSrv.accessControlEnabled()) { + if (contextSrv.licensedAccessControlEnabled()) { this.fetchRoleOptions(); } } @@ -89,7 +89,7 @@ export class TeamList extends PureComponent { {team.memberCount} - {contextSrv.accessControlEnabled() && ( + {contextSrv.licensedAccessControlEnabled() && ( this.state.roleOptions} /> @@ -155,7 +155,7 @@ export class TeamList extends PureComponent { Name Email Members - {contextSrv.accessControlEnabled() && Roles} + {contextSrv.licensedAccessControlEnabled() && Roles} diff --git a/public/app/features/users/UsersTable.test.tsx b/public/app/features/users/UsersTable.test.tsx index 68bba275f15..f71e0517eb7 100644 --- a/public/app/features/users/UsersTable.test.tsx +++ b/public/app/features/users/UsersTable.test.tsx @@ -9,7 +9,7 @@ jest.mock('app/core/core', () => ({ contextSrv: { hasPermission: () => true, hasPermissionInMetadata: () => true, - accessControlEnabled: () => false, + licensedAccessControlEnabled: () => false, }, })); diff --git a/public/app/features/users/UsersTable.tsx b/public/app/features/users/UsersTable.tsx index 427a32ef53a..97ae76998d5 100644 --- a/public/app/features/users/UsersTable.tsx +++ b/public/app/features/users/UsersTable.tsx @@ -40,7 +40,7 @@ const UsersTable: FC = (props) => { console.error('Error loading options'); } } - if (contextSrv.accessControlEnabled()) { + if (contextSrv.licensedAccessControlEnabled()) { fetchOptions(); } }, [orgId]); @@ -88,7 +88,7 @@ const UsersTable: FC = (props) => { {user.lastSeenAtAge} - {contextSrv.accessControlEnabled() ? ( + {contextSrv.licensedAccessControlEnabled() ? (