diff --git a/public/app/features/datasources/AddDataSourcePermissions.test.tsx b/public/app/features/datasources/AddDataSourcePermissions.test.tsx deleted file mode 100644 index facd71b51b7..00000000000 --- a/public/app/features/datasources/AddDataSourcePermissions.test.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import { shallow } from 'enzyme'; -import { AddDataSourcePermissions, Props } from './AddDataSourcePermissions'; -import { AclTarget } from '../../types/acl'; - -const setup = () => { - const props: Props = { - onAddPermission: jest.fn(), - onCancel: jest.fn(), - }; - - return shallow(); -}; - -describe('Render', () => { - it('should render component', () => { - const wrapper = setup(); - - expect(wrapper).toMatchSnapshot(); - }); - - it('should render user picker', () => { - const wrapper = setup(); - - wrapper.instance().setState({ type: AclTarget.User }); - - expect(wrapper).toMatchSnapshot(); - }); -}); diff --git a/public/app/features/datasources/DataSourcePermissions.test.tsx b/public/app/features/datasources/DataSourcePermissions.test.tsx deleted file mode 100644 index 8e21e5760d4..00000000000 --- a/public/app/features/datasources/DataSourcePermissions.test.tsx +++ /dev/null @@ -1,77 +0,0 @@ -import React from 'react'; -import { shallow } from 'enzyme'; -import { DataSourcePermissions, Props } from './DataSourcePermissions'; -import { DataSourcePermission, DataSourcePermissionDTO } from 'app/types'; -import { AclTarget, dashboardPermissionLevels } from '../../types/acl'; - -const setup = (propOverrides?: object) => { - const props: Props = { - dataSourcePermission: {} as DataSourcePermissionDTO, - pageId: 1, - addDataSourcePermission: jest.fn(), - enableDataSourcePermissions: jest.fn(), - disableDataSourcePermissions: jest.fn(), - loadDataSourcePermissions: jest.fn(), - removeDataSourcePermission: jest.fn(), - }; - - Object.assign(props, propOverrides); - - const wrapper = shallow(); - const instance = wrapper.instance() as DataSourcePermissions; - - return { - wrapper, - instance, - }; -}; - -describe('Render', () => { - it('should render component', () => { - const { wrapper } = setup(); - - expect(wrapper).toMatchSnapshot(); - }); - - it('should render permissions enabled', () => { - const { wrapper } = setup({ - dataSourcePermission: { - enabled: true, - datasourceId: 1, - permissions: [] as DataSourcePermission[], - }, - }); - - expect(wrapper).toMatchSnapshot(); - }); -}); - -describe('Functions', () => { - describe('on add permissions', () => { - const { instance } = setup(); - - it('should add permissions for team', () => { - const mockState = { - permission: dashboardPermissionLevels[0].value, - teamId: 1, - type: AclTarget.Team, - }; - - instance.onAddPermission(mockState); - - expect(instance.props.addDataSourcePermission).toHaveBeenCalledWith(1, { teamId: 1, permission: 1 }); - }); - - it('should add permissions for user', () => { - const mockState = { - permission: dashboardPermissionLevels[0].value, - userId: 1, - type: AclTarget.User, - }; - - instance.onAddPermission(mockState); - - expect(instance.props.addDataSourcePermission).toHaveBeenCalledWith(1, { userId: 1, permission: 1 }); - }); - }); -}); diff --git a/public/app/features/datasources/DataSourcePermissions.tsx b/public/app/features/datasources/DataSourcePermissions.tsx deleted file mode 100644 index 1ea20c97933..00000000000 --- a/public/app/features/datasources/DataSourcePermissions.tsx +++ /dev/null @@ -1,155 +0,0 @@ -import React, { PureComponent } from 'react'; -import { connect } from 'react-redux'; -import SlideDown from '../../core/components/Animations/SlideDown'; -import AddDataSourcePermissions from './AddDataSourcePermissions'; -import DataSourcePermissionsList from './DataSourcePermissionsList'; -import { AclTarget } from 'app/types/acl'; -import { - addDataSourcePermission, - disableDataSourcePermissions, - enableDataSourcePermissions, - loadDataSourcePermissions, - removeDataSourcePermission, -} from './state/actions'; -import { DataSourcePermissionDTO } from 'app/types'; -import { getRouteParamsId } from '../../core/selectors/location'; - -export interface Props { - dataSourcePermission: DataSourcePermissionDTO; - pageId: number; - addDataSourcePermission: typeof addDataSourcePermission; - enableDataSourcePermissions: typeof enableDataSourcePermissions; - disableDataSourcePermissions: typeof disableDataSourcePermissions; - loadDataSourcePermissions: typeof loadDataSourcePermissions; - removeDataSourcePermission: typeof removeDataSourcePermission; -} - -interface State { - isAdding: boolean; -} - -export class DataSourcePermissions extends PureComponent { - state = { - isAdding: false, - }; - - componentDidMount() { - this.fetchDataSourcePermissions(); - } - - async fetchDataSourcePermissions() { - const { pageId, loadDataSourcePermissions } = this.props; - - return await loadDataSourcePermissions(pageId); - } - - onOpenAddPermissions = () => { - this.setState({ - isAdding: true, - }); - }; - - onEnablePermissions = () => { - const { pageId, enableDataSourcePermissions } = this.props; - enableDataSourcePermissions(pageId); - }; - - onDisablePermissions = () => { - const { pageId, disableDataSourcePermissions } = this.props; - - disableDataSourcePermissions(pageId); - }; - - onAddPermission = state => { - const { pageId, addDataSourcePermission } = this.props; - const data = { - permission: state.permission, - }; - - if (state.type === AclTarget.Team) { - addDataSourcePermission(pageId, Object.assign(data, { teamId: state.teamId })); - } else if (state.type === AclTarget.User) { - addDataSourcePermission(pageId, Object.assign(data, { userId: state.userId })); - } - }; - - onRemovePermission = item => { - this.props.removeDataSourcePermission(item.datasourceId, item.id); - }; - - onCancelAddPermission = () => { - this.setState({ - isAdding: false, - }); - }; - - render() { - const { dataSourcePermission } = this.props; - const { isAdding } = this.state; - const isPermissionsEnabled = dataSourcePermission.enabled; - - return ( -
-
-

Permissions

-
- {isPermissionsEnabled && [ - , - , - ]} -
- {!isPermissionsEnabled ? ( -
-
{'Permissions not enabled for this data source.'}
- -
- ProTip:{' '} - {'Only admins will be able to query the data source after you enable permissions.'} -
-
- ) : ( -
- - this.onAddPermission(state)} - onCancel={this.onCancelAddPermission} - /> - - this.onRemovePermission(item)} - /> -
- )} -
- ); - } -} - -function mapStateToProps(state) { - return { - pageId: getRouteParamsId(state.location), - dataSourcePermission: state.dataSources.dataSourcePermission, - }; -} - -const mapDispatchToProps = { - addDataSourcePermission, - enableDataSourcePermissions, - disableDataSourcePermissions, - loadDataSourcePermissions, - removeDataSourcePermission, -}; - -export default connect(mapStateToProps, mapDispatchToProps)(DataSourcePermissions); diff --git a/public/app/features/datasources/DataSourcePermissionsList.test.tsx b/public/app/features/datasources/DataSourcePermissionsList.test.tsx deleted file mode 100644 index f89ada9ce39..00000000000 --- a/public/app/features/datasources/DataSourcePermissionsList.test.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import React from 'react'; -import { shallow } from 'enzyme'; -import { DataSourcePermissionsList, Props } from './DataSourcePermissionsList'; -import { DataSourcePermission } from '../../types'; -import { getMockDataSourcePermissionsTeam, getMockDataSourcePermissionsUser } from './__mocks__/dataSourcesMocks'; - -const setup = (propOverrides?: object) => { - const props: Props = { - items: [] as DataSourcePermission[], - onRemoveItem: jest.fn(), - }; - - Object.assign(props, propOverrides); - - return shallow(); -}; - -describe('Render', () => { - it('should render component', () => { - const wrapper = setup(); - - expect(wrapper).toMatchSnapshot(); - }); - - it('should render items', () => { - const wrapper = setup({ - items: [getMockDataSourcePermissionsUser(), getMockDataSourcePermissionsTeam()], - }); - - expect(wrapper).toMatchSnapshot(); - }); -}); diff --git a/public/app/features/datasources/DataSourcePermissionsList.tsx b/public/app/features/datasources/DataSourcePermissionsList.tsx deleted file mode 100644 index 635f2cd87e8..00000000000 --- a/public/app/features/datasources/DataSourcePermissionsList.tsx +++ /dev/null @@ -1,109 +0,0 @@ -import React, { PureComponent } from 'react'; -import { DataSourcePermission } from 'app/types'; -import { dataSourceAclLevels, DataSourcePermissionLevel } from 'app/types/acl'; -import DescriptionPicker from '../../core/components/Picker/DescriptionPicker'; - -export interface Props { - items: DataSourcePermission[]; - onRemoveItem: (item) => void; -} - -export class DataSourcePermissionsList extends PureComponent { - renderAvatar(item) { - if (item.teamId) { - return ; - } else if (item.userId) { - return ; - } - - return ; - } - - renderDescription(item) { - if (item.userId) { - return [ - {item.userLogin} , - - (User) - , - ]; - } - if (item.teamId) { - return [ - {item.team} , - - (Team) - , - ]; - } - return (Role); - } - - render() { - const { items } = this.props; - const permissionLevels = [...dataSourceAclLevels]; - permissionLevels.push({ value: DataSourcePermissionLevel.Admin, label: 'Admin', description: '' }); - - return ( - - - - - - - - - - {items.map((item, index) => { - return ( - - - - - - - - ); - })} - -
- - - Admin - (Role) - - Can -
- {}} - value={2} - disabled={true} - className={'gf-form-input--form-dropdown-right'} - /> -
-
- -
{this.renderAvatar(item)}{this.renderDescription(item)} - Can -
- {}} - value={1} - disabled={true} - className={'gf-form-input--form-dropdown-right'} - /> -
-
- -
- ); - } -} - -export default DataSourcePermissionsList; diff --git a/public/app/features/datasources/EditDataSourcePage.tsx b/public/app/features/datasources/EditDataSourcePage.tsx deleted file mode 100644 index 1c7e67de0b9..00000000000 --- a/public/app/features/datasources/EditDataSourcePage.tsx +++ /dev/null @@ -1,84 +0,0 @@ -import React, { PureComponent } from 'react'; -import { hot } from 'react-hot-loader'; -import { connect } from 'react-redux'; -import PageHeader from '../../core/components/PageHeader/PageHeader'; -import DataSourcePermissions from './DataSourcePermissions'; -import { DataSource, NavModel } from 'app/types'; -import { loadDataSource } from './state/actions'; -import { getNavModel } from '../../core/selectors/navModel'; -import { getRouteParamsId, getRouteParamsPage } from '../../core/selectors/location'; -import { getDataSourceLoadingNav } from './state/navModel'; -import { getDataSource } from './state/selectors'; - -export interface Props { - navModel: NavModel; - dataSource: DataSource; - dataSourceId: number; - pageName: string; - loadDataSource: typeof loadDataSource; -} - -enum PageTypes { - Settings = 'settings', - Permissions = 'permissions', - Dashboards = 'dashboards', -} - -export class EditDataSourcePage extends PureComponent { - componentDidMount() { - this.fetchDataSource(); - } - - async fetchDataSource() { - await this.props.loadDataSource(this.props.dataSourceId); - } - - isValidPage(currentPage) { - return (Object as any).values(PageTypes).includes(currentPage); - } - - getCurrentPage() { - const currentPage = this.props.pageName; - - return this.isValidPage(currentPage) ? currentPage : PageTypes.Permissions; - } - - renderPage() { - switch (this.getCurrentPage()) { - case PageTypes.Permissions: - return ; - } - - return null; - } - - render() { - const { navModel } = this.props; - - return ( -
- -
{this.renderPage()}
-
- ); - } -} - -function mapStateToProps(state) { - const pageName = getRouteParamsPage(state.location) || PageTypes.Permissions; - const dataSourceId = getRouteParamsId(state.location); - const dataSourceLoadingNav = getDataSourceLoadingNav(pageName); - - return { - navModel: getNavModel(state.navIndex, `datasource-${pageName}-${dataSourceId}`, dataSourceLoadingNav), - dataSourceId: dataSourceId, - dataSource: getDataSource(state.dataSources, dataSourceId), - pageName: pageName, - }; -} - -const mapDispatchToProps = { - loadDataSource, -}; - -export default hot(module)(connect(mapStateToProps, mapDispatchToProps)(EditDataSourcePage)); diff --git a/public/app/features/datasources/__mocks__/dataSourcesMocks.ts b/public/app/features/datasources/__mocks__/dataSourcesMocks.ts index b7e237cdb50..97819a18c82 100644 --- a/public/app/features/datasources/__mocks__/dataSourcesMocks.ts +++ b/public/app/features/datasources/__mocks__/dataSourcesMocks.ts @@ -1,4 +1,4 @@ -import { DataSource, DataSourcePermission } from 'app/types'; +import { DataSource } from 'app/types'; export const getMockDataSources = (amount: number): DataSource[] => { const dataSources = []; @@ -43,32 +43,3 @@ export const getMockDataSource = (): DataSource => { user: '', }; }; - -export const getMockDataSourcePermissionsUser = (): DataSourcePermission => { - return { - created: '2018-10-10T16:50:45+02:00', - datasourceId: 1, - id: 2, - permission: 1, - permissionName: 'Query', - updated: '2018-10-10T16:50:45+02:00', - userAvatarUrl: '/avatar/926aa85c6bcefa0b4deca3223f337ae1', - userEmail: 'test@test.com', - userId: 3, - userLogin: 'testUser', - }; -}; - -export const getMockDataSourcePermissionsTeam = (): DataSourcePermission => { - return { - created: '2018-10-10T16:57:09+02:00', - datasourceId: 1, - id: 6, - permission: 1, - permissionName: 'Query', - team: 'A-team', - teamAvatarUrl: '/avatar/93c0801b955cbd443a8cfa91a401d7bc', - teamId: 1, - updated: '2018-10-10T16:57:09+02:00', - }; -}; diff --git a/public/app/features/datasources/__snapshots__/AddDataSourcePermissions.test.tsx.snap b/public/app/features/datasources/__snapshots__/AddDataSourcePermissions.test.tsx.snap deleted file mode 100644 index dab46c7609e..00000000000 --- a/public/app/features/datasources/__snapshots__/AddDataSourcePermissions.test.tsx.snap +++ /dev/null @@ -1,175 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Render should render component 1`] = ` -
- -
-
- Add Permission For -
-
-
- -
-
- -
-
- -
-
- -
-
-
-
-`; - -exports[`Render should render user picker 1`] = ` -
- -
-
- Add Permission For -
-
-
- -
-
- -
-
- -
-
- -
-
-
-
-`; diff --git a/public/app/features/datasources/__snapshots__/DataSourcePermissions.test.tsx.snap b/public/app/features/datasources/__snapshots__/DataSourcePermissions.test.tsx.snap deleted file mode 100644 index 2ea7bff53d9..00000000000 --- a/public/app/features/datasources/__snapshots__/DataSourcePermissions.test.tsx.snap +++ /dev/null @@ -1,92 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Render should render component 1`] = ` -
-
-

- Permissions -

-
-
-
-
- Permissions not enabled for this data source. -
- -
- - ProTip: - - Only admins will be able to query the data source after you enable permissions. -
-
-
-`; - -exports[`Render should render permissions enabled 1`] = ` -
-
-

- Permissions -

-
- - -
-
- - - - -
-
-`; diff --git a/public/app/features/datasources/__snapshots__/DataSourcePermissionsList.test.tsx.snap b/public/app/features/datasources/__snapshots__/DataSourcePermissionsList.test.tsx.snap deleted file mode 100644 index dba51823549..00000000000 --- a/public/app/features/datasources/__snapshots__/DataSourcePermissionsList.test.tsx.snap +++ /dev/null @@ -1,327 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`Render should render component 1`] = ` - - - - - - - - - - -
- - - Admin - - (Role) - - - - Can - -
- -
-
- -
-`; - -exports[`Render should render items 1`] = ` - - - - - - - - - - - - - - - - - - - - - - - - -
- - - Admin - - (Role) - - - - Can - -
- -
-
- -
- - - - testUser - - - - (User) - - - - Can - -
- -
-
- -
- - - - A-team - - - - (Team) - - - - Can - -
- -
-
- -
-`; diff --git a/public/app/features/datasources/state/actions.ts b/public/app/features/datasources/state/actions.ts index 664ed840928..bb8fce8424a 100644 --- a/public/app/features/datasources/state/actions.ts +++ b/public/app/features/datasources/state/actions.ts @@ -1,5 +1,5 @@ import { ThunkAction } from 'redux-thunk'; -import { DataSource, DataSourcePermissionDTO, Plugin, StoreState } from 'app/types'; +import { DataSource, Plugin, StoreState } from 'app/types'; import { getBackendSrv } from '../../../core/services/backend_srv'; import { LayoutMode } from '../../../core/components/LayoutSelector/LayoutSelector'; import { updateLocation, updateNavIndex, UpdateNavIndexAction } from '../../../core/actions'; @@ -11,7 +11,6 @@ export enum ActionTypes { LoadDataSourceTypes = 'LOAD_DATA_SOURCE_TYPES', LoadDataSource = 'LOAD_DATA_SOURCE', LoadDataSourceMeta = 'LOAD_DATA_SOURCE_META', - LoadDataSourcePermissions = 'LOAD_DATA_SOURCE_PERMISSIONS', SetDataSourcesSearchQuery = 'SET_DATA_SOURCES_SEARCH_QUERY', SetDataSourcesLayoutMode = 'SET_DATA_SOURCES_LAYOUT_MODE', SetDataSourceTypeSearchQuery = 'SET_DATA_SOURCE_TYPE_SEARCH_QUERY', @@ -52,11 +51,6 @@ export interface LoadDataSourceMetaAction { payload: Plugin; } -export interface LoadDataSourcePermissionsAction { - type: ActionTypes.LoadDataSourcePermissions; - payload: DataSourcePermissionDTO; -} - const dataSourcesLoaded = (dataSources: DataSource[]): LoadDataSourcesAction => ({ type: ActionTypes.LoadDataSources, payload: dataSources, @@ -77,13 +71,6 @@ const dataSourceTypesLoaded = (dataSourceTypes: Plugin[]): LoadDataSourceTypesAc payload: dataSourceTypes, }); -const dataSourcePermissionsLoaded = ( - dataSourcePermission: DataSourcePermissionDTO -): LoadDataSourcePermissionsAction => ({ - type: ActionTypes.LoadDataSourcePermissions, - payload: dataSourcePermission, -}); - export const setDataSourcesSearchQuery = (searchQuery: string): SetDataSourcesSearchQueryAction => ({ type: ActionTypes.SetDataSourcesSearchQuery, payload: searchQuery, @@ -108,8 +95,7 @@ export type Action = | SetDataSourceTypeSearchQueryAction | LoadDataSourceAction | UpdateNavIndexAction - | LoadDataSourceMetaAction - | LoadDataSourcePermissionsAction; + | LoadDataSourceMetaAction; type ThunkResult = ThunkAction; @@ -159,42 +145,6 @@ export function loadDataSourceTypes(): ThunkResult { }; } -export function loadDataSourcePermissions(id: number): ThunkResult { - return async dispatch => { - const response = await getBackendSrv().get(`/api/datasources/${id}/permissions`); - dispatch(dataSourcePermissionsLoaded(response)); - }; -} - -export function enableDataSourcePermissions(id: number): ThunkResult { - return async dispatch => { - await getBackendSrv().post(`/api/datasources/${id}/enable-permissions`, {}); - dispatch(loadDataSourcePermissions(id)); - }; -} - -export function disableDataSourcePermissions(id: number): ThunkResult { - return async dispatch => { - await getBackendSrv().post(`/api/datasources/${id}/disable-permissions`, {}); - dispatch(loadDataSourcePermissions(id)); - }; -} - -export function addDataSourcePermission(id: number, data: object): ThunkResult { - return async dispatch => { - await getBackendSrv().post(`/api/datasources/${id}/permissions`, data); - - dispatch(loadDataSourcePermissions(id)); - }; -} - -export function removeDataSourcePermission(id: number, permissionId: number): ThunkResult { - return async dispatch => { - await getBackendSrv().delete(`/api/datasources/${id}/permissions/${permissionId}`); - dispatch(loadDataSourcePermissions(id)); - }; -} - export function nameExits(dataSources, name) { return ( dataSources.filter(dataSource => { diff --git a/public/app/features/datasources/state/reducers.ts b/public/app/features/datasources/state/reducers.ts index 98c1e485364..7e235f5ea0a 100644 --- a/public/app/features/datasources/state/reducers.ts +++ b/public/app/features/datasources/state/reducers.ts @@ -1,4 +1,4 @@ -import { DataSource, DataSourcePermissionDTO, DataSourcesState, Plugin } from 'app/types'; +import { DataSource, DataSourcesState, Plugin } from 'app/types'; import { Action, ActionTypes } from './actions'; import { LayoutModes } from '../../../core/components/LayoutSelector/LayoutSelector'; @@ -11,7 +11,6 @@ const initialState: DataSourcesState = { dataSourceTypes: [] as Plugin[], dataSourceTypeSearchQuery: '', dataSourceMeta: {} as Plugin, - dataSourcePermission: {} as DataSourcePermissionDTO, hasFetched: false, }; @@ -37,9 +36,6 @@ export const dataSourcesReducer = (state = initialState, action: Action): DataSo case ActionTypes.LoadDataSourceMeta: return { ...state, dataSourceMeta: action.payload }; - - case ActionTypes.LoadDataSourcePermissions: - return { ...state, dataSourcePermission: action.payload }; } return state; diff --git a/public/app/routes/routes.ts b/public/app/routes/routes.ts index 9aa57b76043..e94275f6aef 100644 --- a/public/app/routes/routes.ts +++ b/public/app/routes/routes.ts @@ -13,7 +13,6 @@ import FolderPermissions from 'app/features/folders/FolderPermissions'; import DataSourcesListPage from 'app/features/datasources/DataSourcesListPage'; import NewDataSourcePage from '../features/datasources/NewDataSourcePage'; import UsersListPage from 'app/features/users/UsersListPage'; -import EditDataSourcePage from 'app/features/datasources/EditDataSourcePage'; /** @ngInject */ export function setupAngularRoutes($routeProvider, $locationProvider) { @@ -83,12 +82,6 @@ export function setupAngularRoutes($routeProvider, $locationProvider) { controller: 'DataSourceDashboardsCtrl', controllerAs: 'ctrl', }) - .when('/datasources/edit/:id/:page?', { - template: '', - resolve: { - component: () => EditDataSourcePage, - }, - }) .when('/datasources/new', { template: '', resolve: { diff --git a/public/app/store/configureStore.ts b/public/app/store/configureStore.ts index 0a93a4baa0f..ccd027a0b6d 100644 --- a/public/app/store/configureStore.ts +++ b/public/app/store/configureStore.ts @@ -11,7 +11,7 @@ import pluginReducers from 'app/features/plugins/state/reducers'; import dataSourcesReducers from 'app/features/datasources/state/reducers'; import usersReducers from 'app/features/users/state/reducers'; -const rootReducer = combineReducers({ +const rootReducers = { ...sharedReducers, ...alertingReducers, ...teamsReducers, @@ -21,13 +21,19 @@ const rootReducer = combineReducers({ ...pluginReducers, ...dataSourcesReducers, ...usersReducers, -}); +}; export let store; +export function addRootReducer(reducers) { + Object.assign(rootReducers, ...reducers); +} + export function configureStore() { const composeEnhancers = (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; + const rootReducer = combineReducers(rootReducers); + if (process.env.NODE_ENV !== 'production') { // DEV builds we had the logger middleware store = createStore(rootReducer, {}, composeEnhancers(applyMiddleware(thunk, createLogger()))); diff --git a/public/app/types/datasources.ts b/public/app/types/datasources.ts index 47261b976f4..8e1991dcd9f 100644 --- a/public/app/types/datasources.ts +++ b/public/app/types/datasources.ts @@ -1,28 +1,6 @@ import { LayoutMode } from '../core/components/LayoutSelector/LayoutSelector'; import { Plugin } from './plugins'; -export interface DataSourcePermission { - id: number; - datasourceId: number; - permission: number; - permissionName: string; - created: string; - updated: string; - userId?: number; - userLogin?: string; - userEmail?: string; - userAvatarUrl?: string; - teamId?: number; - teamAvatarUrl?: string; - team?: string; -} - -export interface DataSourcePermissionDTO { - datasourceId: number; - enabled: boolean; - permissions: DataSourcePermission[]; -} - export interface DataSource { id: number; orgId: number; @@ -49,6 +27,5 @@ export interface DataSourcesState { dataSourceTypes: Plugin[]; dataSource: DataSource; dataSourceMeta: Plugin; - dataSourcePermission: DataSourcePermissionDTO; hasFetched: boolean; } diff --git a/public/app/types/index.ts b/public/app/types/index.ts index eee34c291af..26f15d582ac 100644 --- a/public/app/types/index.ts +++ b/public/app/types/index.ts @@ -7,7 +7,7 @@ import { DashboardState } from './dashboard'; import { DashboardAcl, OrgRole, PermissionLevel } from './acl'; import { ApiKey, ApiKeysState, NewApiKey } from './apiKeys'; import { Invitee, OrgUser, User, UsersState } from './user'; -import { DataSource, DataSourcePermissionDTO, DataSourcePermission, DataSourcesState } from './datasources'; +import { DataSource, DataSourcesState } from './datasources'; import { PluginMeta, Plugin, PluginsState } from './plugins'; export { @@ -41,8 +41,6 @@ export { Plugin, PluginsState, DataSourcesState, - DataSourcePermissionDTO, - DataSourcePermission, Invitee, OrgUser, User,