|
@@ -3,6 +3,7 @@ import PermissionsList from './PermissionsList';
|
|
|
import { observer } from 'mobx-react';
|
|
import { observer } from 'mobx-react';
|
|
|
import UserPicker, { User } from 'app/core/components/Picker/UserPicker';
|
|
import UserPicker, { User } from 'app/core/components/Picker/UserPicker';
|
|
|
import TeamPicker, { Team } from 'app/core/components/Picker/TeamPicker';
|
|
import TeamPicker, { Team } from 'app/core/components/Picker/TeamPicker';
|
|
|
|
|
+import { aclTypes } from 'app/stores/PermissionsStore/PermissionsStore';
|
|
|
|
|
|
|
|
export interface DashboardAcl {
|
|
export interface DashboardAcl {
|
|
|
id?: number;
|
|
id?: number;
|
|
@@ -31,22 +32,6 @@ export interface IProps {
|
|
|
|
|
|
|
|
@observer
|
|
@observer
|
|
|
class Permissions extends Component<IProps, any> {
|
|
class Permissions extends Component<IProps, any> {
|
|
|
- dashboardId: any;
|
|
|
|
|
- meta: any;
|
|
|
|
|
- items: DashboardAcl[];
|
|
|
|
|
- dummyItems: DashboardAcl[];
|
|
|
|
|
- permissionOptions = [{ value: 1, text: 'View' }, { value: 2, text: 'Edit' }, { value: 4, text: 'Admin' }];
|
|
|
|
|
- aclTypes = [
|
|
|
|
|
- { value: 'Group', text: 'Team' },
|
|
|
|
|
- { value: 'User', text: 'User' },
|
|
|
|
|
- { value: 'Viewer', text: 'Everyone With Viewer Role' },
|
|
|
|
|
- { value: 'Editor', text: 'Everyone With Editor Role' },
|
|
|
|
|
- ];
|
|
|
|
|
- newType: string;
|
|
|
|
|
- canUpdate: boolean;
|
|
|
|
|
- error: string;
|
|
|
|
|
- refreshList: any;
|
|
|
|
|
-
|
|
|
|
|
constructor(props) {
|
|
constructor(props) {
|
|
|
super(props);
|
|
super(props);
|
|
|
const { dashboardId, permissions, isFolder } = this.props;
|
|
const { dashboardId, permissions, isFolder } = this.props;
|
|
@@ -57,10 +42,6 @@ class Permissions extends Component<IProps, any> {
|
|
|
this.userPicked = this.userPicked.bind(this);
|
|
this.userPicked = this.userPicked.bind(this);
|
|
|
this.teamPicked = this.teamPicked.bind(this);
|
|
this.teamPicked = this.teamPicked.bind(this);
|
|
|
permissions.load(dashboardId, isFolder);
|
|
permissions.load(dashboardId, isFolder);
|
|
|
-
|
|
|
|
|
- this.state = {
|
|
|
|
|
- newType: 'Group',
|
|
|
|
|
- };
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
permissionChanged(index: number, permission: number, permissionName: string) {
|
|
permissionChanged(index: number, permission: number, permissionName: string) {
|
|
@@ -79,12 +60,8 @@ class Permissions extends Component<IProps, any> {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
resetNewType() {
|
|
resetNewType() {
|
|
|
- this.setState(prevState => {
|
|
|
|
|
- return {
|
|
|
|
|
- ...prevState,
|
|
|
|
|
- newType: 'Group',
|
|
|
|
|
- };
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ const { permissions } = this.props;
|
|
|
|
|
+ permissions.resetNewType();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
typeChanged(evt) {
|
|
typeChanged(evt) {
|
|
@@ -97,12 +74,7 @@ class Permissions extends Component<IProps, any> {
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- this.setState(prevState => {
|
|
|
|
|
- return {
|
|
|
|
|
- ...prevState,
|
|
|
|
|
- newType: value,
|
|
|
|
|
- };
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ permissions.setNewType(value);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
userPicked(user: User) {
|
|
userPicked(user: User) {
|
|
@@ -116,15 +88,12 @@ class Permissions extends Component<IProps, any> {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
render() {
|
|
render() {
|
|
|
- console.log('Permissions render');
|
|
|
|
|
const { permissions, backendSrv } = this.props;
|
|
const { permissions, backendSrv } = this.props;
|
|
|
- const { newType } = this.state;
|
|
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<div className="gf-form-group">
|
|
<div className="gf-form-group">
|
|
|
<PermissionsList
|
|
<PermissionsList
|
|
|
permissions={permissions.items}
|
|
permissions={permissions.items}
|
|
|
- permissionsOptions={this.permissionOptions}
|
|
|
|
|
removeItem={this.removeItem}
|
|
removeItem={this.removeItem}
|
|
|
permissionChanged={this.permissionChanged}
|
|
permissionChanged={this.permissionChanged}
|
|
|
fetching={permissions.fetching}
|
|
fetching={permissions.fetching}
|
|
@@ -135,8 +104,12 @@ class Permissions extends Component<IProps, any> {
|
|
|
<div className="gf-form-inline">
|
|
<div className="gf-form-inline">
|
|
|
<div className="gf-form">
|
|
<div className="gf-form">
|
|
|
<div className="gf-form-select-wrapper">
|
|
<div className="gf-form-select-wrapper">
|
|
|
- <select className="gf-form-input gf-size-auto" value={newType} onChange={this.typeChanged}>
|
|
|
|
|
- {this.aclTypes.map((option, idx) => {
|
|
|
|
|
|
|
+ <select
|
|
|
|
|
+ className="gf-form-input gf-size-auto"
|
|
|
|
|
+ value={permissions.newType}
|
|
|
|
|
+ onChange={this.typeChanged}
|
|
|
|
|
+ >
|
|
|
|
|
+ {aclTypes.map((option, idx) => {
|
|
|
return (
|
|
return (
|
|
|
<option key={idx} value={option.value}>
|
|
<option key={idx} value={option.value}>
|
|
|
{option.text}
|
|
{option.text}
|
|
@@ -147,13 +120,13 @@ class Permissions extends Component<IProps, any> {
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- {newType === 'User' ? (
|
|
|
|
|
|
|
+ {permissions.newType === 'User' ? (
|
|
|
<div className="gf-form">
|
|
<div className="gf-form">
|
|
|
<UserPicker backendSrv={backendSrv} handlePicked={this.userPicked} />
|
|
<UserPicker backendSrv={backendSrv} handlePicked={this.userPicked} />
|
|
|
</div>
|
|
</div>
|
|
|
) : null}
|
|
) : null}
|
|
|
|
|
|
|
|
- {newType === 'Group' ? (
|
|
|
|
|
|
|
+ {permissions.newType === 'Group' ? (
|
|
|
<div className="gf-form">
|
|
<div className="gf-form">
|
|
|
<TeamPicker backendSrv={backendSrv} handlePicked={this.teamPicked} />
|
|
<TeamPicker backendSrv={backendSrv} handlePicked={this.teamPicked} />
|
|
|
</div>
|
|
</div>
|