grafana/public/app/features/datasources/DataSourcePermissions.tsx

67 lines
1.7 KiB
TypeScript
Raw Normal View History

2018-10-08 09:05:37 -05:00
import React, { PureComponent } from 'react';
import { connect } from 'react-redux';
2018-10-09 04:07:23 -05:00
import SlideDown from '../../core/components/Animations/SlideDown';
import AddPermissions from '../../core/components/PermissionList/AddPermission';
import { AclTarget, AclTargetInfo } from 'app/types/acl';
2018-10-08 09:05:37 -05:00
export interface Props {}
2018-10-09 04:07:23 -05:00
interface State {
isAdding: boolean;
}
export class DataSourcePermissions extends PureComponent<Props, State> {
state = {
isAdding: false,
};
onOpenAddPermissions = () => {
this.setState({
isAdding: true,
});
};
onAddPermission = () => {};
onCancelAddPermission = () => {
this.setState({
isAdding: false,
});
};
2018-10-08 09:05:37 -05:00
render() {
2018-10-09 04:07:23 -05:00
const { isAdding } = this.state;
const dashboardAclTargets: AclTargetInfo[] = [
{ value: AclTarget.Team, text: 'Team' },
{ value: AclTarget.User, text: 'User' },
];
2018-10-08 09:05:37 -05:00
return (
<div>
2018-10-09 04:07:23 -05:00
<div className="page-action-bar">
<h3 className="page-sub-heading">Permissions</h3>
<div className="page-action-bar__spacer" />
<button className="btn btn-success pull-right" onClick={this.onOpenAddPermissions} disabled={isAdding}>
<i className="fa fa-plus" /> Add Permission
</button>
</div>
<SlideDown in={isAdding}>
<AddPermissions
dashboardAclTargets={dashboardAclTargets}
showPermissionLevels={false}
onAddPermission={this.onAddPermission}
onCancel={this.onCancelAddPermission}
/>
</SlideDown>
2018-10-08 09:05:37 -05:00
</div>
);
}
}
function mapStateToProps(state) {
return {};
}
export default connect(mapStateToProps)(DataSourcePermissions);