import React from 'react'; import superagent from 'superagent'; import { Header, Icon, Button, Table, Form, Label, Modal, Message } from 'semantic-ui-react' import * as AccountUtils from "../AccountUtils"; import ApiButtonModal from '../../CloudApi/ApiButtonModal.jsx'; export default class AccountAccessPolicyManager extends React.Component { constructor(props) { super(props); this.state = { selectedAccessPolicy: "" }; } async componentDidMount() { console.log(this.props.accessPolicies); try { let schemas = await AccountUtils.getSchemas(); this.setState({schemas}); } catch (e) { console.error(e); } } async onChange(e, { name, value }) { this.setState({ [name]: value }) } async onAddAccessPolicy() { try { const result = await superagent.put(`/api/admin/account/${this.props.accountId}/access_policy/${this.state.selectedAccessPolicy}`).accept('json').send(); console.log(result.body); if (this.props.onUpdate) { await this.props.onUpdate(); } this.setState({ selectedAccessPolicy: "" }); } catch (e) { console.log(e); } } async onRemoveAccessPolicy(accessPolicy) { try { const result = await superagent.delete(`/api/admin/account/${this.props.accountId}/access_policy/${accessPolicy}`).accept('json').send(); console.log(result.body); if (this.props.onUpdate) { await this.props.onUpdate(); } } catch (e) { console.log(e); } } render() { if (this.props.accessPolicies && this.state.schemas) { const isSuperUser = this.props.accessPolicies.includes('SuperUser'); return (
Access Policies
{isSuperUser && ( SuperUser Account Access policies for SuperUser accounts cannot be modified. )} Access Policy {!isSuperUser && Actions} {this.props.accessPolicies.map(accessPolicy => { return ( {!isSuperUser && ( this.onRemoveAccessPolicy(accessPolicy)}> Are you sure you want to remove the {accessPolicy} access policy from this account?

Warning Only super users and admins can modify access policies!
)}
) })} {!isSuperUser && (

Select an access policy to assign to the account

Note: only super users and admins can modify access policies!

)}
); } else { return null; } } }