All Downloads are FREE. Search and download functionalities are using the official Maven repository.

web-interface.assets.39.746b58959a350aa1ebcf.js.map Maven / Gradle / Ivy

There is a newer version: 6.0.6
Show newest version
{"version":3,"sources":["webpack:///39.746b58959a350aa1ebcf.js","webpack:///./src/pages/RolesPage.jsx","webpack:///./src/components/users/RolesComponent.jsx","webpack:///./src/components/users/RoleList.jsx","webpack:///./src/components/users/EditRole.jsx","webpack:///./src/components/users/PermissionSelector.jsx"],"names":["webpackJsonp","1395","module","exports","__webpack_require__","_interopRequireDefault","obj","__esModule","default","Object","defineProperty","value","_react","_react2","_reactBootstrap","_RolesComponent","_RolesComponent2","_common","RolesPage","createClass","displayName","render","createElement","DocumentTitle","title","Row","Col","md","1396","_reflux","_reflux2","_immutable","_immutable2","_UserNotification","_UserNotification2","_RoleList","_RoleList2","_EditRole","_EditRole2","_PageHeader","_PageHeader2","_CombinedProvider","_CombinedProvider2","_CombinedProvider$get","get","StreamsStore","_CombinedProvider$get2","DashboardsActions","DashboardsStore","_CombinedProvider$get3","RolesStore","mixins","connect","getInitialState","roles","Set","rolesLoaded","editRole","streams","List","componentDidMount","_this","this","loadRoles","load","setState","list","_this2","then","_showCreateRole","showEditRole","_showEditRole","role","_deleteRole","_this3","window","confirm","name","getMembers","membership","users","length","error","deleteRole","_saveRole","initialName","createRole","_clearEditRole","updateRole","content","state","initialRole","dashboards","onSave","cancelEdit","actionButton","Button","bsStyle","onClick","subpage","1397","_propTypes","_propTypes2","_StoreProvider","_StoreProvider2","_PermissionsMixin","_PermissionsMixin2","CurrentUserStore","getStore","RoleList","propTypes","instanceOf","isRequired","func","_headerCellFormatter","header","className","_editButton","isPermitted","currentUser","permissions","read_only","key","bsSize","props","_deleteButton","_roleInfoFormatter","description","filterKeys","headers","DataTable","id","headerCellFormatter","sortByKey","rows","toJS","filterBy","dataRowFormatter","filterLabel","1398","_bootstrap","_PermissionSelector","_PermissionSelector2","EditRole","object","_safeRoleName","componentWillReceiveProps","newProps","_setName","ev","target","_setDescription","_updatePermissions","addedPerms","deletedPerms","subtract","union","_saveDisabled","_onSave","titleText","saveDisabled","saveDisabledAlert","Alert","style","marginBottom","marginTop","Input","type","label","onChange","required","FormGroup","ControlLabel","HelpBlock","marginRight","disabled","1399","PermissionSelector","streamItemButtons","stream","isRead","contains","isEdit","ButtonGroup","_toggleStreamReadPermissions","active","_toggleStreamEditPermissions","multiStreamButtons","streamIds","_toggleAllStreamsRead","_toggleAllStreamsEdit","dashboardItemButtons","dashboard","_toggleDashboardReadPermissions","_toggleDashboardEditPermissions","multiDashboardButtons","dashboardIds","_toggleAllDashboardsRead","_toggleAllDashboardsEdit","Tabs","defaultActiveKey","animation","Tab","eventKey","TableList","items","itemActionsFactory","headerActionsFactory","_toggleReadPermissions","of","_toggleEditPermissions","idList","added","deleted","forEach","readTarget","editTarget","add"],"mappings":"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","file":"39.746b58959a350aa1ebcf.js","sourcesContent":["webpackJsonp([39],{\n\n/***/ 1395:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _RolesComponent = __webpack_require__(1396);\n\nvar _RolesComponent2 = _interopRequireDefault(_RolesComponent);\n\nvar _common = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar RolesPage = _react2.default.createClass({\n  displayName: 'RolesPage',\n  render: function render() {\n    return _react2.default.createElement(\n      _common.DocumentTitle,\n      { title: 'Roles' },\n      _react2.default.createElement(\n        _reactBootstrap.Row,\n        null,\n        _react2.default.createElement(\n          _reactBootstrap.Col,\n          { md: 12 },\n          _react2.default.createElement(_RolesComponent2.default, null)\n        )\n      )\n    );\n  }\n});\n\nexports.default = RolesPage;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1396:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _immutable = __webpack_require__(54);\n\nvar _immutable2 = _interopRequireDefault(_immutable);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _UserNotification = __webpack_require__(6);\n\nvar _UserNotification2 = _interopRequireDefault(_UserNotification);\n\nvar _RoleList = __webpack_require__(1397);\n\nvar _RoleList2 = _interopRequireDefault(_RoleList);\n\nvar _EditRole = __webpack_require__(1398);\n\nvar _EditRole2 = _interopRequireDefault(_EditRole);\n\nvar _PageHeader = __webpack_require__(275);\n\nvar _PageHeader2 = _interopRequireDefault(_PageHeader);\n\nvar _CombinedProvider = __webpack_require__(68);\n\nvar _CombinedProvider2 = _interopRequireDefault(_CombinedProvider);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _CombinedProvider$get = _CombinedProvider2.default.get('Streams'),\n    StreamsStore = _CombinedProvider$get.StreamsStore;\n\nvar _CombinedProvider$get2 = _CombinedProvider2.default.get('Dashboards'),\n    DashboardsActions = _CombinedProvider$get2.DashboardsActions,\n    DashboardsStore = _CombinedProvider$get2.DashboardsStore;\n\nvar _CombinedProvider$get3 = _CombinedProvider2.default.get('Roles'),\n    RolesStore = _CombinedProvider$get3.RolesStore;\n\nexports.default = _react2.default.createClass({\n  displayName: 'RolesComponent',\n\n  mixins: [_reflux2.default.connect(DashboardsStore, 'dashboards')],\n  getInitialState: function getInitialState() {\n    return {\n      roles: _immutable2.default.Set(),\n      rolesLoaded: false,\n      editRole: null,\n      streams: _immutable2.default.List()\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    var _this = this;\n\n    this.loadRoles();\n    StreamsStore.load(function (streams) {\n      return _this.setState({ streams: _immutable2.default.List(streams) });\n    });\n    DashboardsActions.list();\n  },\n  loadRoles: function loadRoles() {\n    var _this2 = this;\n\n    var promise = RolesStore.loadRoles();\n    promise.then(function (roles) {\n      _this2.setState({ roles: _immutable2.default.Set(roles), rolesLoaded: true });\n    });\n  },\n  _showCreateRole: function _showCreateRole() {\n    this.setState({ showEditRole: true });\n  },\n  _showEditRole: function _showEditRole(role) {\n    this.setState({ showEditRole: true, editRole: role });\n  },\n  _deleteRole: function _deleteRole(role) {\n    var _this3 = this;\n\n    // eslint-disable-next-line no-alert\n    if (window.confirm('Do you really want to delete role ' + role.name + '?')) {\n      RolesStore.getMembers(role.name).then(function (membership) {\n        if (membership.users.length !== 0) {\n          _UserNotification2.default.error('Cannot delete role ' + role.name + '. It is still assigned to ' + membership.users.length + ' users.');\n        } else {\n          RolesStore.deleteRole(role.name).then(_this3.loadRoles);\n        }\n      });\n    }\n  },\n  _saveRole: function _saveRole(initialName, role) {\n    if (initialName === null) {\n      RolesStore.createRole(role).then(this._clearEditRole).then(this.loadRoles);\n    } else {\n      RolesStore.updateRole(initialName, role).then(this._clearEditRole).then(this.loadRoles);\n    }\n  },\n  _clearEditRole: function _clearEditRole() {\n    this.setState({ showEditRole: false, editRole: null });\n  },\n  render: function render() {\n    var content = null;\n    if (!this.state.rolesLoaded) {\n      content = _react2.default.createElement(\n        'span',\n        null,\n        'Loading roles...'\n      );\n    } else if (this.state.showEditRole) {\n      content = _react2.default.createElement(_EditRole2.default, { initialRole: this.state.editRole,\n        streams: this.state.streams,\n        dashboards: this.state.dashboards.dashboards,\n        onSave: this._saveRole,\n        cancelEdit: this._clearEditRole });\n    } else {\n      content = _react2.default.createElement(_RoleList2.default, { roles: this.state.roles,\n        showEditRole: this._showEditRole,\n        deleteRole: this._deleteRole });\n    }\n\n    var actionButton = void 0;\n    if (!this.state.showEditRole) {\n      actionButton = _react2.default.createElement(\n        _reactBootstrap.Button,\n        { bsStyle: 'success', onClick: this._showCreateRole },\n        'Add new role'\n      );\n    }\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          _PageHeader2.default,\n          { title: 'Roles', subpage: true },\n          _react2.default.createElement(\n            'span',\n            null,\n            'Roles bundle permissions which can be assigned to multiple users at once'\n          ),\n          null,\n          _react2.default.createElement(\n            'span',\n            null,\n            actionButton\n          )\n        ),\n        content\n      )\n    );\n  }\n});\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1397:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(1);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _immutable = __webpack_require__(54);\n\nvar _immutable2 = _interopRequireDefault(_immutable);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _StoreProvider = __webpack_require__(23);\n\nvar _StoreProvider2 = _interopRequireDefault(_StoreProvider);\n\nvar _PermissionsMixin = __webpack_require__(167);\n\nvar _PermissionsMixin2 = _interopRequireDefault(_PermissionsMixin);\n\nvar _common = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar CurrentUserStore = _StoreProvider2.default.getStore('CurrentUser');\n\nvar RoleList = _react2.default.createClass({\n  displayName: 'RoleList',\n\n  mixins: [_reflux2.default.connect(CurrentUserStore), _PermissionsMixin2.default],\n  propTypes: {\n    roles: _propTypes2.default.instanceOf(_immutable2.default.Set).isRequired,\n    showEditRole: _propTypes2.default.func.isRequired,\n    deleteRole: _propTypes2.default.func.isRequired\n  },\n\n  _headerCellFormatter: function _headerCellFormatter(header) {\n    var className = header === 'Actions' ? 'actions' : '';\n    return _react2.default.createElement(\n      'th',\n      { className: className },\n      header\n    );\n  },\n  _editButton: function _editButton(role) {\n    var _this = this;\n\n    if (this.isPermitted(this.state.currentUser.permissions, ['roles:edit:' + role.name]) === false || role.read_only) {\n      return null;\n    }\n    return _react2.default.createElement(\n      _reactBootstrap.Button,\n      { key: 'edit', bsSize: 'xsmall', bsStyle: 'info', onClick: function onClick() {\n          return _this.props.showEditRole(role);\n        }, title: 'Edit role' },\n      'Edit'\n    );\n  },\n  _deleteButton: function _deleteButton(role) {\n    var _this2 = this;\n\n    if (this.isPermitted(this.state.currentUser.permissions, ['roles:delete:' + role.name]) === false || role.read_only) {\n      return null;\n    }\n    return _react2.default.createElement(\n      _reactBootstrap.Button,\n      { key: 'delete', bsSize: 'xsmall', bsStyle: 'primary', onClick: function onClick() {\n          return _this2.props.deleteRole(role);\n        }, title: 'Delete role' },\n      'Delete'\n    );\n  },\n  _roleInfoFormatter: function _roleInfoFormatter(role) {\n    return _react2.default.createElement(\n      'tr',\n      { key: role.name },\n      _react2.default.createElement(\n        'td',\n        null,\n        role.name\n      ),\n      _react2.default.createElement(\n        'td',\n        { className: 'limited' },\n        role.description\n      ),\n      _react2.default.createElement(\n        'td',\n        null,\n        this._editButton(role),\n        _react2.default.createElement(\n          'span',\n          { key: 'space' },\n          '\\xA0'\n        ),\n        this._deleteButton(role)\n      )\n    );\n  },\n  render: function render() {\n    var filterKeys = ['name', 'description'];\n    var headers = ['Name', 'Description', 'Actions'];\n\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(_common.DataTable, { id: 'role-list',\n        className: 'table-hover',\n        headers: headers,\n        headerCellFormatter: this._headerCellFormatter,\n        sortByKey: 'name',\n        rows: this.props.roles.toJS(),\n        filterBy: 'Name',\n        dataRowFormatter: this._roleInfoFormatter,\n        filterLabel: 'Filter Roles',\n        filterKeys: filterKeys })\n    );\n  }\n});\n\nexports.default = RoleList;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1398:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _immutable = __webpack_require__(54);\n\nvar _immutable2 = _interopRequireDefault(_immutable);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _bootstrap = __webpack_require__(47);\n\nvar _PermissionSelector = __webpack_require__(1399);\n\nvar _PermissionSelector2 = _interopRequireDefault(_PermissionSelector);\n\nvar _PermissionsMixin = __webpack_require__(167);\n\nvar _PermissionsMixin2 = _interopRequireDefault(_PermissionsMixin);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar EditRole = _react2.default.createClass({\n  displayName: 'EditRole',\n\n  propTypes: {\n    initialRole: _propTypes2.default.object,\n    onSave: _propTypes2.default.func.isRequired,\n    cancelEdit: _propTypes2.default.func.isRequired,\n    streams: _propTypes2.default.object,\n    dashboards: _propTypes2.default.object\n  },\n\n  mixins: [_PermissionsMixin2.default],\n\n  getInitialState: function getInitialState() {\n    var role = this.props.initialRole;\n    if (role === null) {\n      // for the create dialog\n      role = { name: null, description: null, permissions: [] };\n    }\n    return {\n      role: role,\n      initialName: this._safeRoleName(this.props.initialRole)\n    };\n  },\n  componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n    this.setState({ role: newProps.initialRole, initialName: this._safeRoleName(newProps.initialRole) });\n  },\n  _safeRoleName: function _safeRoleName(role) {\n    return role === null ? null : role.name;\n  },\n  _setName: function _setName(ev) {\n    var role = this.state.role;\n    role.name = ev.target.value;\n    this.setState({ role: this.state.role });\n  },\n  _setDescription: function _setDescription(ev) {\n    var role = this.state.role;\n    role.description = ev.target.value;\n    this.setState({ role: this.state.role });\n  },\n  _updatePermissions: function _updatePermissions(addedPerms, deletedPerms) {\n    var role = this.state.role;\n    role.permissions = _immutable2.default.Set(role.permissions).subtract(deletedPerms).union(addedPerms).toJS();\n    this.setState({ role: role });\n  },\n  _saveDisabled: function _saveDisabled() {\n    return this.state.role === null || this.state.role.name === null || this.state.role.name === '' || this.state.role.permissions.length === 0;\n  },\n  _onSave: function _onSave() {\n    this.props.onSave(this.state.initialName, this.state.role);\n  },\n  render: function render() {\n    var titleText = void 0;\n    if (this.state.initialName === null) {\n      titleText = 'Create a new role';\n    } else {\n      titleText = 'Edit role ' + this.state.initialName;\n    }\n\n    var saveDisabled = this._saveDisabled();\n    var saveDisabledAlert = null;\n    if (saveDisabled) {\n      saveDisabledAlert = _react2.default.createElement(\n        _reactBootstrap.Alert,\n        { bsStyle: 'warning', style: { marginBottom: 10 } },\n        'Please name the role and select at least one permission to save it.'\n      );\n    }\n\n    return _react2.default.createElement(\n      _reactBootstrap.Row,\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.Col,\n        { md: 12 },\n        _react2.default.createElement(\n          'h1',\n          null,\n          titleText\n        ),\n        _react2.default.createElement(\n          'div',\n          { style: { marginTop: 10 } },\n          _react2.default.createElement(_bootstrap.Input, { id: 'role-name', type: 'text', label: 'Name', onChange: this._setName, value: this.state.role.name,\n            required: true }),\n          _react2.default.createElement(_bootstrap.Input, { id: 'role-description', type: 'text', label: 'Description', onChange: this._setDescription,\n            value: this.state.role.description }),\n          _react2.default.createElement(\n            _reactBootstrap.FormGroup,\n            null,\n            _react2.default.createElement(\n              _reactBootstrap.ControlLabel,\n              null,\n              'Permissions'\n            ),\n            _react2.default.createElement(\n              _reactBootstrap.HelpBlock,\n              null,\n              'Select the permissions for this role'\n            )\n          ),\n          _react2.default.createElement(_PermissionSelector2.default, { streams: this.props.streams,\n            dashboards: this.props.dashboards,\n            permissions: _immutable2.default.Set(this.state.role.permissions),\n            onChange: this._updatePermissions\n          }),\n          _react2.default.createElement('hr', null),\n          saveDisabledAlert,\n          _react2.default.createElement(\n            _reactBootstrap.Button,\n            { onClick: this._onSave, style: { marginRight: 5 }, bsStyle: 'primary', disabled: saveDisabled },\n            'Save'\n          ),\n          _react2.default.createElement(\n            _reactBootstrap.Button,\n            { onClick: this.props.cancelEdit },\n            'Cancel'\n          )\n        )\n      )\n    );\n  }\n});\n\nexports.default = EditRole;\nmodule.exports = exports['default'];\n\n/***/ }),\n\n/***/ 1399:\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n  value: true\n});\n\nvar _propTypes = __webpack_require__(5);\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _react = __webpack_require__(2);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _immutable = __webpack_require__(54);\n\nvar _immutable2 = _interopRequireDefault(_immutable);\n\nvar _reactBootstrap = __webpack_require__(16);\n\nvar _common = __webpack_require__(46);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar PermissionSelector = _react2.default.createClass({\n  displayName: 'PermissionSelector',\n\n  propTypes: {\n    onChange: _propTypes2.default.func,\n    streams: _propTypes2.default.object,\n    dashboards: _propTypes2.default.object,\n    permissions: _propTypes2.default.object\n  },\n\n  render: function render() {\n    var _this = this;\n\n    var streamItemButtons = function streamItemButtons(stream) {\n      var isRead = _this.props.permissions.contains('streams:read:' + stream.id);\n      var isEdit = _this.props.permissions.contains('streams:edit:' + stream.id);\n      return _react2.default.createElement(\n        _reactBootstrap.ButtonGroup,\n        { bsSize: 'small' },\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: isRead ? 'info' : 'default', onClick: function onClick() {\n              return _this._toggleStreamReadPermissions(stream);\n            },\n            active: isRead },\n          'Allow reading'\n        ),\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: isEdit ? 'info' : 'default', onClick: function onClick() {\n              return _this._toggleStreamEditPermissions(stream);\n            },\n            active: isEdit },\n          'Allow editing'\n        )\n      );\n    };\n\n    var multiStreamButtons = function multiStreamButtons(streamIds) {\n      return _react2.default.createElement(\n        'div',\n        { className: 'pull-right', style: { marginTop: 10, marginBottom: 10 } },\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsSize: 'xsmall', bsStyle: 'info', onClick: function onClick() {\n              return _this._toggleAllStreamsRead(streamIds);\n            } },\n          'Toggle read permissions'\n        ),\n        '\\xA0',\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsSize: 'xsmall', bsStyle: 'info', onClick: function onClick() {\n              return _this._toggleAllStreamsEdit(streamIds);\n            } },\n          'Toggle edit permissions'\n        )\n      );\n    };\n\n    var dashboardItemButtons = function dashboardItemButtons(dashboard) {\n      var isRead = _this.props.permissions.contains('dashboards:read:' + dashboard.id);\n      var isEdit = _this.props.permissions.contains('dashboards:edit:' + dashboard.id);\n      return _react2.default.createElement(\n        _reactBootstrap.ButtonGroup,\n        { bsSize: 'small' },\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: isRead ? 'info' : 'default', onClick: function onClick() {\n              return _this._toggleDashboardReadPermissions(dashboard);\n            },\n            active: isRead },\n          'Allow reading'\n        ),\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsStyle: isEdit ? 'info' : 'default', onClick: function onClick() {\n              return _this._toggleDashboardEditPermissions(dashboard);\n            },\n            active: isEdit },\n          'Allow editing'\n        )\n      );\n    };\n\n    var multiDashboardButtons = function multiDashboardButtons(dashboardIds) {\n      return _react2.default.createElement(\n        'div',\n        { className: 'pull-right', style: { marginTop: 10, marginBottom: 10 } },\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsSize: 'xsmall', bsStyle: 'info', onClick: function onClick() {\n              return _this._toggleAllDashboardsRead(dashboardIds);\n            } },\n          'Toggle read permissions'\n        ),\n        '\\xA0',\n        _react2.default.createElement(\n          _reactBootstrap.Button,\n          { bsSize: 'xsmall', bsStyle: 'info', onClick: function onClick() {\n              return _this._toggleAllDashboardsEdit(dashboardIds);\n            } },\n          'Toggle edit permissions'\n        )\n      );\n    };\n\n    return _react2.default.createElement(\n      'div',\n      null,\n      _react2.default.createElement(\n        _reactBootstrap.Tabs,\n        { id: 'permissionSelectorTabs', defaultActiveKey: 1, animation: false },\n        _react2.default.createElement(\n          _reactBootstrap.Tab,\n          { eventKey: 1, title: 'Streams' },\n          _react2.default.createElement(\n            'div',\n            { style: { marginTop: 10 } },\n            _react2.default.createElement(_common.TableList, {\n              items: this.props.streams,\n              filterLabel: 'Filter Streams',\n              filterKeys: ['title'],\n              itemActionsFactory: streamItemButtons,\n              headerActionsFactory: multiStreamButtons\n            })\n          )\n        ),\n        _react2.default.createElement(\n          _reactBootstrap.Tab,\n          { eventKey: 2, title: 'Dashboards' },\n          _react2.default.createElement(\n            'div',\n            { style: { marginTop: 10 } },\n            _react2.default.createElement(_common.TableList, {\n              items: this.props.dashboards,\n              filterLabel: 'Filter Dashboards',\n              filterKeys: ['title'],\n              itemActionsFactory: dashboardItemButtons,\n              headerActionsFactory: multiDashboardButtons\n            })\n          )\n        )\n      )\n    );\n  },\n\n\n  /*\n   * onClick actions for single edits\n   */\n  _toggleStreamReadPermissions: function _toggleStreamReadPermissions(stream) {\n    this._toggleReadPermissions('streams', _immutable2.default.Set.of(stream.id));\n  },\n  _toggleStreamEditPermissions: function _toggleStreamEditPermissions(stream) {\n    this._toggleEditPermissions('streams', _immutable2.default.Set.of(stream.id));\n  },\n  _toggleDashboardReadPermissions: function _toggleDashboardReadPermissions(dashboard) {\n    this._toggleReadPermissions('dashboards', _immutable2.default.Set.of(dashboard.id));\n  },\n  _toggleDashboardEditPermissions: function _toggleDashboardEditPermissions(dashboard) {\n    this._toggleEditPermissions('dashboards', _immutable2.default.Set.of(dashboard.id));\n  },\n\n\n  /*\n   * onClick actions for bulk edits\n   */\n\n  _toggleAllStreamsRead: function _toggleAllStreamsRead(streamIds) {\n    this._toggleReadPermissions('streams', streamIds);\n  },\n  _toggleAllStreamsEdit: function _toggleAllStreamsEdit(streamIds) {\n    this._toggleEditPermissions('streams', streamIds);\n  },\n  _toggleAllDashboardsRead: function _toggleAllDashboardsRead(dashboardIds) {\n    this._toggleReadPermissions('dashboards', dashboardIds);\n  },\n  _toggleAllDashboardsEdit: function _toggleAllDashboardsEdit(dashboardIds) {\n    this._toggleEditPermissions('dashboards', dashboardIds);\n  },\n  _toggleReadPermissions: function _toggleReadPermissions(target, idList) {\n    var _this2 = this;\n\n    var added = _immutable2.default.Set.of();\n    var deleted = _immutable2.default.Set.of();\n\n    idList.forEach(function (id) {\n      var readTarget = target + ':read:' + id;\n      var editTarget = target + ':edit:' + id;\n\n      if (_this2.props.permissions.contains(readTarget)) {\n        deleted = deleted.add(readTarget).add(editTarget);\n      } else {\n        added = added.add(readTarget);\n      }\n    }, this);\n    this.props.onChange(added, deleted);\n  },\n  _toggleEditPermissions: function _toggleEditPermissions(target, idList) {\n    var _this3 = this;\n\n    var added = _immutable2.default.Set.of();\n    var deleted = _immutable2.default.Set.of();\n\n    idList.forEach(function (id) {\n      var readTarget = target + ':read:' + id;\n      var editTarget = target + ':edit:' + id;\n\n      if (_this3.props.permissions.contains(editTarget)) {\n        deleted = deleted.add(editTarget);\n      } else {\n        added = added.add(readTarget).add(editTarget);\n      }\n    }, this);\n    this.props.onChange(added, deleted);\n  }\n});\n\nexports.default = PermissionSelector;\nmodule.exports = exports['default'];\n\n/***/ })\n\n});\n\n\n// WEBPACK FOOTER //\n// 39.746b58959a350aa1ebcf.js","import React from 'react';\nimport { Row, Col } from 'react-bootstrap';\n\nimport RolesComponent from 'components/users/RolesComponent';\nimport { DocumentTitle } from 'components/common';\n\nconst RolesPage = React.createClass({\n  render() {\n    return (\n      \n        \n          \n            \n          \n        \n      \n    );\n  },\n});\n\nexport default RolesPage;\n\n\n\n// WEBPACK FOOTER //\n// ./src/pages/RolesPage.jsx","import React from 'react';\nimport Reflux from 'reflux';\nimport Immutable from 'immutable';\nimport { Button, Col, Row } from 'react-bootstrap';\n\nimport UserNotification from 'util/UserNotification';\nimport RoleList from 'components/users/RoleList';\nimport EditRole from 'components/users/EditRole';\nimport PageHeader from 'components/common/PageHeader';\n\nimport CombinedProvider from 'injection/CombinedProvider';\n\nconst { StreamsStore } = CombinedProvider.get('Streams');\nconst { DashboardsActions, DashboardsStore } = CombinedProvider.get('Dashboards');\nconst { RolesStore } = CombinedProvider.get('Roles');\n\n\nexport default React.createClass({\n  mixins: [Reflux.connect(DashboardsStore, 'dashboards')],\n  getInitialState() {\n    return {\n      roles: Immutable.Set(),\n      rolesLoaded: false,\n      editRole: null,\n      streams: Immutable.List(),\n    };\n  },\n  componentDidMount() {\n    this.loadRoles();\n    StreamsStore.load(streams => this.setState({ streams: Immutable.List(streams) }));\n    DashboardsActions.list();\n  },\n\n  loadRoles() {\n    const promise = RolesStore.loadRoles();\n    promise.then((roles) => {\n      this.setState({ roles: Immutable.Set(roles), rolesLoaded: true });\n    });\n  },\n\n  _showCreateRole() {\n    this.setState({ showEditRole: true });\n  },\n  _showEditRole(role) {\n    this.setState({ showEditRole: true, editRole: role });\n  },\n  _deleteRole(role) {\n    // eslint-disable-next-line no-alert\n    if (window.confirm(`Do you really want to delete role ${role.name}?`)) {\n      RolesStore.getMembers(role.name).then((membership) => {\n        if (membership.users.length !== 0) {\n          UserNotification.error(`Cannot delete role ${role.name}. It is still assigned to ${membership.users.length} users.`);\n        } else {\n          RolesStore.deleteRole(role.name).then(this.loadRoles);\n        }\n      });\n    }\n  },\n  _saveRole(initialName, role) {\n    if (initialName === null) {\n      RolesStore.createRole(role).then(this._clearEditRole).then(this.loadRoles);\n    } else {\n      RolesStore.updateRole(initialName, role).then(this._clearEditRole).then(this.loadRoles);\n    }\n  },\n  _clearEditRole() {\n    this.setState({ showEditRole: false, editRole: null });\n  },\n\n  render() {\n    let content = null;\n    if (!this.state.rolesLoaded) {\n      content = Loading roles...;\n    } else if (this.state.showEditRole) {\n      content =\n        ();\n    } else {\n      content = ();\n    }\n\n    let actionButton;\n    if (!this.state.showEditRole) {\n      actionButton = ;\n    }\n    return (\n      \n        \n          \n            \n              Roles bundle permissions which can be assigned to multiple users at once\n            \n            {null}\n            \n              {actionButton}\n            \n          \n\n          {content}\n        \n      \n    );\n  },\n});\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/users/RolesComponent.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Reflux from 'reflux';\nimport Immutable from 'immutable';\nimport { Button } from 'react-bootstrap';\n\nimport StoreProvider from 'injection/StoreProvider';\n\nimport PermissionsMixin from 'util/PermissionsMixin';\nconst CurrentUserStore = StoreProvider.getStore('CurrentUser');\n\nimport { DataTable } from 'components/common';\n\nconst RoleList = React.createClass({\n  mixins: [Reflux.connect(CurrentUserStore), PermissionsMixin],\n  propTypes: {\n    roles: PropTypes.instanceOf(Immutable.Set).isRequired,\n    showEditRole: PropTypes.func.isRequired,\n    deleteRole: PropTypes.func.isRequired,\n  },\n\n  _headerCellFormatter(header) {\n    const className = (header === 'Actions' ? 'actions' : '');\n    return {header};\n  },\n  _editButton(role) {\n    if (this.isPermitted(this.state.currentUser.permissions, ['roles:edit:' + role.name]) === false || role.read_only) {\n        return null;\n    }\n    return ();\n  },\n  _deleteButton(role) {\n    if (this.isPermitted(this.state.currentUser.permissions, ['roles:delete:' + role.name]) === false || role.read_only) {\n        return null;\n    }\n    return ();\n  },\n  _roleInfoFormatter(role) {\n    return (\n      \n        {role.name}\n        {role.description}\n        \n          {this._editButton(role)}\n           \n          {this._deleteButton(role)}\n        \n      \n    );\n  },\n  render() {\n    const filterKeys = ['name', 'description'];\n    const headers = ['Name', 'Description', 'Actions'];\n\n    return (\n      
\n \n
\n );\n },\n});\n\nexport default RoleList;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/users/RoleList.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Immutable from 'immutable';\nimport { Alert, Button, Col, ControlLabel, FormGroup, HelpBlock, Row } from 'react-bootstrap';\n\nimport { Input } from 'components/bootstrap';\nimport PermissionSelector from 'components/users/PermissionSelector';\nimport PermissionsMixin from 'util/PermissionsMixin';\n\nconst EditRole = React.createClass({\n propTypes: {\n initialRole: PropTypes.object,\n onSave: PropTypes.func.isRequired,\n cancelEdit: PropTypes.func.isRequired,\n streams: PropTypes.object,\n dashboards: PropTypes.object,\n },\n\n mixins: [PermissionsMixin],\n\n getInitialState() {\n let role = this.props.initialRole;\n if (role === null) {\n // for the create dialog\n role = { name: null, description: null, permissions: [] };\n }\n return {\n role: role,\n initialName: this._safeRoleName(this.props.initialRole),\n };\n },\n\n componentWillReceiveProps(newProps) {\n this.setState({ role: newProps.initialRole, initialName: this._safeRoleName(newProps.initialRole) });\n },\n\n _safeRoleName(role) {\n return role === null ? null : role.name;\n },\n\n _setName(ev) {\n const role = this.state.role;\n role.name = ev.target.value;\n this.setState({ role: this.state.role });\n },\n _setDescription(ev) {\n const role = this.state.role;\n role.description = ev.target.value;\n this.setState({ role: this.state.role });\n },\n\n _updatePermissions(addedPerms, deletedPerms) {\n const role = this.state.role;\n role.permissions = Immutable.Set(role.permissions)\n .subtract(deletedPerms)\n .union(addedPerms)\n .toJS();\n this.setState({ role: role });\n },\n\n _saveDisabled() {\n return this.state.role === null || this.state.role.name === null || this.state.role.name === '' || this.state.role.permissions.length === 0;\n },\n\n _onSave() {\n this.props.onSave(this.state.initialName, this.state.role);\n },\n\n render() {\n let titleText;\n if (this.state.initialName === null) {\n titleText = 'Create a new role';\n } else {\n titleText = `Edit role ${this.state.initialName}`;\n }\n\n const saveDisabled = this._saveDisabled();\n let saveDisabledAlert = null;\n if (saveDisabled) {\n saveDisabledAlert = (\n \n Please name the role and select at least one permission to save it.\n \n );\n }\n\n return (\n \n \n

{titleText}

\n
\n \n \n\n \n Permissions\n Select the permissions for this role\n \n \n
\n {saveDisabledAlert}\n \n \n
\n \n
);\n },\n});\n\nexport default EditRole;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/users/EditRole.jsx","import PropTypes from 'prop-types';\nimport React from 'react';\nimport Immutable from 'immutable';\n\nimport { Tabs, Tab, Button, ButtonGroup } from 'react-bootstrap';\n\nimport { TableList } from 'components/common';\n\nconst PermissionSelector = React.createClass({\n propTypes: {\n onChange: PropTypes.func,\n streams: PropTypes.object,\n dashboards: PropTypes.object,\n permissions: PropTypes.object,\n },\n\n render() {\n const streamItemButtons = (stream) => {\n const isRead = this.props.permissions.contains(`streams:read:${stream.id}`);\n const isEdit = this.props.permissions.contains(`streams:edit:${stream.id}`);\n return (\n \n \n );\n };\n\n const multiStreamButtons = (streamIds) => {\n return (\n
\n \n  \n \n
\n );\n };\n\n const dashboardItemButtons = (dashboard) => {\n const isRead = this.props.permissions.contains(`dashboards:read:${dashboard.id}`);\n const isEdit = this.props.permissions.contains(`dashboards:edit:${dashboard.id}`);\n return (\n \n \n );\n };\n\n const multiDashboardButtons = (dashboardIds) => {\n return (\n
\n \n  \n \n
\n );\n };\n\n return (\n
\n \n \n
\n \n
\n
\n \n
\n \n
\n
\n
\n
\n );\n },\n\n /*\n * onClick actions for single edits\n */\n _toggleStreamReadPermissions(stream) {\n this._toggleReadPermissions('streams', Immutable.Set.of(stream.id));\n },\n\n _toggleStreamEditPermissions(stream) {\n this._toggleEditPermissions('streams', Immutable.Set.of(stream.id));\n },\n\n _toggleDashboardReadPermissions(dashboard) {\n this._toggleReadPermissions('dashboards', Immutable.Set.of(dashboard.id));\n },\n\n _toggleDashboardEditPermissions(dashboard) {\n this._toggleEditPermissions('dashboards', Immutable.Set.of(dashboard.id));\n },\n\n /*\n * onClick actions for bulk edits\n */\n\n _toggleAllStreamsRead(streamIds) {\n this._toggleReadPermissions('streams', streamIds);\n },\n\n _toggleAllStreamsEdit(streamIds) {\n this._toggleEditPermissions('streams', streamIds);\n },\n\n _toggleAllDashboardsRead(dashboardIds) {\n this._toggleReadPermissions('dashboards', dashboardIds);\n },\n\n _toggleAllDashboardsEdit(dashboardIds) {\n this._toggleEditPermissions('dashboards', dashboardIds);\n },\n\n _toggleReadPermissions(target, idList) {\n let added = Immutable.Set.of();\n let deleted = Immutable.Set.of();\n\n idList.forEach((id) => {\n const readTarget = `${target}:read:${id}`;\n const editTarget = `${target}:edit:${id}`;\n\n if (this.props.permissions.contains(readTarget)) {\n deleted = deleted.add(readTarget).add(editTarget);\n } else {\n added = added.add(readTarget);\n }\n }, this);\n this.props.onChange(added, deleted);\n },\n _toggleEditPermissions(target, idList) {\n let added = Immutable.Set.of();\n let deleted = Immutable.Set.of();\n\n idList.forEach((id) => {\n const readTarget = `${target}:read:${id}`;\n const editTarget = `${target}:edit:${id}`;\n\n if (this.props.permissions.contains(editTarget)) {\n deleted = deleted.add(editTarget);\n } else {\n added = added.add(readTarget).add(editTarget);\n }\n }, this);\n this.props.onChange(added, deleted);\n },\n});\n\nexport default PermissionSelector;\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/users/PermissionSelector.jsx"],"sourceRoot":""}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy