disable permissions

This commit is contained in:
Peter Holmberg 2018-10-10 13:50:42 +02:00
parent 83480a1de6
commit 8583788119
2 changed files with 28 additions and 9 deletions

View File

@ -6,6 +6,7 @@ import DataSourcePermissionsList from './DataSourcePermissionsList';
import { AclTarget } from 'app/types/acl'; import { AclTarget } from 'app/types/acl';
import { import {
addDataSourcePermission, addDataSourcePermission,
disableDataSourcePermissions,
enableDataSourcePermissions, enableDataSourcePermissions,
loadDataSourcePermissions, loadDataSourcePermissions,
removeDataSourcePermission, removeDataSourcePermission,
@ -18,6 +19,7 @@ export interface Props {
pageId: number; pageId: number;
addDataSourcePermission: typeof addDataSourcePermission; addDataSourcePermission: typeof addDataSourcePermission;
enableDataSourcePermissions: typeof enableDataSourcePermissions; enableDataSourcePermissions: typeof enableDataSourcePermissions;
disableDataSourcePermissions: typeof disableDataSourcePermissions;
loadDataSourcePermissions: typeof loadDataSourcePermissions; loadDataSourcePermissions: typeof loadDataSourcePermissions;
removeDataSourcePermission: typeof removeDataSourcePermission; removeDataSourcePermission: typeof removeDataSourcePermission;
} }
@ -52,6 +54,12 @@ export class DataSourcePermissions extends PureComponent<Props, State> {
enableDataSourcePermissions(pageId); enableDataSourcePermissions(pageId);
}; };
onDisablePermissions = () => {
const { pageId, disableDataSourcePermissions } = this.props;
disableDataSourcePermissions(pageId);
};
onAddPermission = state => { onAddPermission = state => {
const { pageId, addDataSourcePermission } = this.props; const { pageId, addDataSourcePermission } = this.props;
const data = { const data = {
@ -89,16 +97,19 @@ export class DataSourcePermissions extends PureComponent<Props, State> {
<div className="page-action-bar"> <div className="page-action-bar">
<h3 className="page-sub-heading">Permissions</h3> <h3 className="page-sub-heading">Permissions</h3>
<div className="page-action-bar__spacer" /> <div className="page-action-bar__spacer" />
{!isPermissionsEnabled && ( {isPermissionsEnabled && [
<button className="btn btn-success pull-right" onClick={this.onEnablePermissions} disabled={isAdding}> <button
Enable Permissions key="add-permission"
</button> className="btn btn-success pull-right"
)} onClick={this.onOpenAddPermissions}
{isPermissionsEnabled && ( disabled={isAdding}
<button className="btn btn-success pull-right" onClick={this.onOpenAddPermissions} disabled={isAdding}> >
<i className="fa fa-plus" /> Add Permission <i className="fa fa-plus" /> Add Permission
</button> </button>,
)} <button key="disable-permissions" className="btn btn-danger pull-right" onClick={this.onDisablePermissions}>
Disable Permissions
</button>,
]}
</div> </div>
{!isPermissionsEnabled ? ( {!isPermissionsEnabled ? (
<div className="empty-list-cta"> <div className="empty-list-cta">
@ -140,6 +151,7 @@ function mapStateToProps(state) {
const mapDispatchToProps = { const mapDispatchToProps = {
addDataSourcePermission, addDataSourcePermission,
enableDataSourcePermissions, enableDataSourcePermissions,
disableDataSourcePermissions,
loadDataSourcePermissions, loadDataSourcePermissions,
removeDataSourcePermission, removeDataSourcePermission,
}; };

View File

@ -173,6 +173,13 @@ export function enableDataSourcePermissions(id: number): ThunkResult<void> {
}; };
} }
export function disableDataSourcePermissions(id: number): ThunkResult<void> {
return async dispatch => {
await getBackendSrv().post(`/api/datasources/${id}/disable-permissions`, {});
dispatch(loadDataSourcePermissions(id));
};
}
export function addDataSourcePermission(id: number, data: object): ThunkResult<void> { export function addDataSourcePermission(id: number, data: object): ThunkResult<void> {
return async dispatch => { return async dispatch => {
await getBackendSrv().post(`/api/datasources/${id}/permissions`, data); await getBackendSrv().post(`/api/datasources/${id}/permissions`, data);