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

web-interface.assets.21.21.35374a790dde13712dd5.js Maven / Gradle / Ivy

There is a newer version: 5.2.6
Show newest version
webpackJsonp([21],{265:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _componentsCommonMultiSelect = __webpack_require__(200);\n\nvar _componentsCommonMultiSelect2 = _interopRequireDefault(_componentsCommonMultiSelect);\n\nvar RolesSelect = _react2['default'].createClass({\n  displayName: 'RolesSelect',\n\n  propTypes: {\n    userRoles: _react2['default'].PropTypes.arrayOf(_react2['default'].PropTypes.string),\n    availableRoles: _react2['default'].PropTypes.array.isRequired\n  },\n  getDefaultProps: function getDefaultProps() {\n    return {\n      userRoles: []\n    };\n  },\n  getValue: function getValue() {\n    return this.refs.select.getValue().split(',');\n  },\n  render: function render() {\n    var rolesValue = this.props.userRoles.join(',');\n    var rolesOptions = this.props.availableRoles.map(function (role) {\n      return { value: role.name, label: role.name };\n    });\n    return _react2['default'].createElement(_componentsCommonMultiSelect2['default'], {\n      ref: 'select',\n      options: rolesOptions,\n      value: rolesValue,\n      placeholder: 'Choose roles...'\n    });\n  }\n});\n\nexports['default'] = RolesSelect;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"RolesSelect.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/users/RolesSelect.jsx\n ** module id = 265\n ** module chunks = 21 25\n **/\n//# sourceURL=webpack:///./src/components/users/RolesSelect.jsx?")},266:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _componentsUsersTimeoutUnitSelect = __webpack_require__(267);\n\nvar _componentsUsersTimeoutUnitSelect2 = _interopRequireDefault(_componentsUsersTimeoutUnitSelect);\n\nvar TimeoutInput = _react2['default'].createClass({\n  displayName: 'TimeoutInput',\n\n  propTypes: {\n    controlSize: _react2['default'].PropTypes.number,\n    labelSize: _react2['default'].PropTypes.number,\n    value: _react2['default'].PropTypes.number,\n    onChange: _react2['default'].PropTypes.func\n  },\n\n  getDefaultProps: function getDefaultProps() {\n    return {\n      value: 60 * 60 * 1000,\n      labelSize: 2,\n      controlSize: 10\n    };\n  },\n  getInitialState: function getInitialState() {\n    var unit = this._estimateUnit(this.props.value);\n    return {\n      sessionTimeoutNever: this.props.value ? this.props.value === -1 : false,\n      value: this.props.value ? Math.floor(this.props.value / unit) : 0,\n      unit: unit\n    };\n  },\n  getValue: function getValue() {\n    if (this.state.sessionTimeoutNever) {\n      return -1;\n    }\n    return this.refs.timeout.value * this.refs.session_timeout_unit.getValue();\n  },\n  MS_DAY: 24 * 60 * 60 * 1000,\n  MS_HOUR: 60 * 60 * 1000,\n  MS_MINUTE: 60 * 1000,\n  MS_SECOND: 1000,\n  _estimateUnit: function _estimateUnit(value) {\n    if (value === 0) {\n      return this.MS_SECOND;\n    }\n\n    if (value % this.MS_DAY === 0) {\n      return this.MS_DAY;\n    }\n\n    if (value % this.MS_HOUR === 0) {\n      return this.MS_HOUR;\n    }\n\n    if (value % this.MS_MINUTE === 0) {\n      return this.MS_MINUTE;\n    }\n\n    return this.MS_SECOND;\n  },\n  _onClick: function _onClick(evt) {\n    this.setState({ sessionTimeoutNever: evt.target.checked }, this._notifyChange);\n  },\n  _onChangeValue: function _onChangeValue(evt) {\n    this.setState({ value: evt.target.value }, this._notifyChange);\n  },\n  _onChangeUnit: function _onChangeUnit(evt) {\n    this.setState({ unit: evt.target.value }, this._notifyChange);\n  },\n  _notifyChange: function _notifyChange() {\n    if (typeof this.props.onChange === 'function') {\n      this.props.onChange(this.getValue());\n    }\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'span',\n      null,\n      _react2['default'].createElement(_reactBootstrap.Input, { ref: 'session_timeout_never', type: 'checkbox', id: 'session-timeout-never', name: 'session_timeout_never',\n        labelClassName: 'col-sm-' + this.props.controlSize, wrapperClassName: 'col-sm-offset-' + this.props.labelSize + ' col-sm-' + this.props.controlSize,\n        label: 'Sessions do not time out', help: 'When checked sessions never time out due to inactivity.',\n        onClick: this._onClick, value: this.state.sessionTimeoutNever }),\n      _react2['default'].createElement(\n        _reactBootstrap.Input,\n        { label: 'Timeout',\n          help: 'Session automatically end after this amount of time, unless they are actively used.',\n          labelClassName: 'col-sm-' + this.props.labelSize, wrapperClassName: 'col-sm-' + this.props.controlSize },\n        _react2['default'].createElement(\n          _reactBootstrap.Row,\n          null,\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { sm: 2 },\n            _react2['default'].createElement('input', { ref: 'timeout', type: 'number', id: 'timeout',\n              className: 'session-timeout-fields validatable form-control',\n              name: 'timeout', min: 1, 'data-validate': 'positive_number', disabled: this.state.sessionTimeoutNever,\n              value: this.state.value, onChange: this._onChangeValue })\n          ),\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { sm: 3 },\n            _react2['default'].createElement(_componentsUsersTimeoutUnitSelect2['default'], { ref: 'session_timeout_unit', className: 'form-control session-timeout-fields',\n              disabled: this.state.sessionTimeoutNever,\n              value: this.state.unit, onChange: this._onChangeUnit })\n          )\n        )\n      )\n    );\n  }\n});\n\nexports['default'] = TimeoutInput;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"TimeoutInput.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/users/TimeoutInput.jsx\n ** module id = 266\n ** module chunks = 21 25\n **/\n//# sourceURL=webpack:///./src/components/users/TimeoutInput.jsx?")},267:function(module,exports,__webpack_require__){eval('/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require("/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js"), RootInstanceProvider = require("/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js"), ReactMount = require("react/lib/ReactMount"), React = require("react"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n"use strict";\n\nObject.defineProperty(exports, "__esModule", {\n  value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar TimeoutUnitSelect = _react2["default"].createClass({\n  displayName: "TimeoutUnitSelect",\n\n  getValue: function getValue() {\n    return this.refs.session_timeout_unit.value;\n  },\n  render: function render() {\n    return _react2["default"].createElement(\n      "select",\n      _extends({ className: "form-control", ref: "session_timeout_unit" }, this.props),\n      _react2["default"].createElement(\n        "option",\n        { value: 1000 },\n        "Seconds"\n      ),\n      _react2["default"].createElement(\n        "option",\n        { value: 60 * 1000 },\n        "Minutes"\n      ),\n      _react2["default"].createElement(\n        "option",\n        { value: 60 * 60 * 1000 },\n        "Hours"\n      ),\n      _react2["default"].createElement(\n        "option",\n        { value: 24 * 60 * 60 * 1000 },\n        "Days"\n      )\n    );\n  }\n});\n\nexports["default"] = TimeoutUnitSelect;\nmodule.exports = exports["default"];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require("/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js"); if (makeExportsHot(module, require("react"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error("Cannot not apply hot update to " + "TimeoutUnitSelect.jsx" + ": " + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/users/TimeoutUnitSelect.jsx\n ** module id = 267\n ** module chunks = 21 25\n **/\n//# sourceURL=webpack:///./src/components/users/TimeoutUnitSelect.jsx?')},274:function(module,exports,__webpack_require__){eval('/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require("/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js"), RootInstanceProvider = require("/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js"), ReactMount = require("react/lib/ReactMount"), React = require("react"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n\'use strict\';\n\nObject.defineProperty(exports, \'__esModule\', {\n  value: true\n});\nvar ValidationsUtils = {\n  setFieldValidity: function setFieldValidity(fieldElement, condition, message) {\n    // Return if browser does not support setCustomValidity\n    if (typeof fieldElement.setCustomValidity !== \'function\') {\n      return;\n    }\n\n    fieldElement.setCustomValidity(condition ? message : \'\');\n  }\n};\n\nexports[\'default\'] = ValidationsUtils;\nmodule.exports = exports[\'default\'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require("/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js"); if (makeExportsHot(module, require("react"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error("Cannot not apply hot update to " + "ValidationsUtils.js" + ": " + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/util/ValidationsUtils.js\n ** module id = 274\n ** module chunks = 21 25\n **/\n//# sourceURL=webpack:///./src/util/ValidationsUtils.js?')},931:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilUserNotification = __webpack_require__(8);\n\nvar _utilUserNotification2 = _interopRequireDefault(_utilUserNotification);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar _componentsUsersRolesSelect = __webpack_require__(265);\n\nvar _componentsUsersRolesSelect2 = _interopRequireDefault(_componentsUsersRolesSelect);\n\nvar _componentsCommon = __webpack_require__(5);\n\nvar RolesStore = _injectionStoreProvider2['default'].getStore('Roles');\nvar UsersStore = _injectionStoreProvider2['default'].getStore('Users');\n\nvar EditRolesForm = _react2['default'].createClass({\n  displayName: 'EditRolesForm',\n\n  propTypes: {\n    user: _react2['default'].PropTypes.object.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {};\n  },\n  componentDidMount: function componentDidMount() {\n    var _this = this;\n\n    RolesStore.loadRoles().then(function (roles) {\n      _this.setState({ roles: roles.sort(function (r1, r2) {\n          return r1.name.localeCompare(r2.name);\n        }) });\n    });\n  },\n  _updateRoles: function _updateRoles(evt) {\n    evt.preventDefault();\n    if (confirm('Really update roles for \"' + this.props.user.username + '\"?')) {\n      var roles = this.refs.roles.getValue().filter(function (value) {\n        return value !== '';\n      });\n      UsersStore.updateRoles(this.props.user.username, roles).then(function () {\n        _utilUserNotification2['default'].success('Roles updated successfully.', 'Success!');\n      }, function () {\n        _utilUserNotification2['default'].error('Updating roles failed.', 'Error!');\n      });\n    }\n  },\n  render: function render() {\n    var user = this.props.user;\n    if (!this.state.roles) {\n      return _react2['default'].createElement(_componentsCommon.Spinner, null);\n    }\n    var externalUser = user.external ? _react2['default'].createElement(\n      _reactBootstrap.Col,\n      { smOffset: 3, sm: 9, style: { marginBottom: 15 } },\n      _react2['default'].createElement(\n        _reactBootstrap.Alert,\n        { bsStyle: 'warning', role: 'alert' },\n        'This user was created from an external LDAP system, please consider mapping LDAP groups instead of manually editing roles here. Please update the LDAP group mapping to make changes or contact an administrator for more information.'\n      )\n    ) : null;\n    var editUserForm = user.read_only ? _react2['default'].createElement(\n      _reactBootstrap.Col,\n      { smOffset: 3, sm: 9 },\n      _react2['default'].createElement(\n        _reactBootstrap.Alert,\n        { bsStyle: 'warning', role: 'alert' },\n        'You cannot edit the admin\\'s user role.'\n      )\n    ) : _react2['default'].createElement(\n      'span',\n      null,\n      externalUser,\n      _react2['default'].createElement(\n        'form',\n        { className: 'form-horizontal', style: { marginTop: '10px' }, onSubmit: this._updateRoles },\n        _react2['default'].createElement(\n          _reactBootstrap.Input,\n          { label: 'Roles', help: 'Choose the roles the user should be a member of. All the granted permissions will be combined.',\n            labelClassName: 'col-sm-3', wrapperClassName: 'col-sm-9' },\n          _react2['default'].createElement(_componentsUsersRolesSelect2['default'], { ref: 'roles', userRoles: user.roles, availableRoles: this.state.roles })\n        ),\n        _react2['default'].createElement(\n          'div',\n          { className: 'form-group' },\n          _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { smOffset: 3, sm: 9 },\n            _react2['default'].createElement(\n              _reactBootstrap.Button,\n              { bsStyle: 'success', type: 'submit' },\n              'Update role'\n            )\n          )\n        )\n      )\n    );\n    return _react2['default'].createElement(\n      _reactBootstrap.Row,\n      { className: 'content' },\n      _react2['default'].createElement(\n        _reactBootstrap.Col,\n        { md: 8 },\n        _react2['default'].createElement(\n          'h2',\n          null,\n          'Change user role'\n        ),\n        editUserForm\n      )\n    );\n  }\n});\n\nexports['default'] = EditRolesForm;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"EditRolesForm.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/users/EditRolesForm.jsx\n ** module id = 931\n ** module chunks = 21\n **/\n//# sourceURL=webpack:///./src/components/users/EditRolesForm.jsx?")},936:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reflux = __webpack_require__(4);\n\nvar _reflux2 = _interopRequireDefault(_reflux);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _utilPermissionsMixin = __webpack_require__(27);\n\nvar _utilPermissionsMixin2 = _interopRequireDefault(_utilPermissionsMixin);\n\nvar _utilUserNotification = __webpack_require__(8);\n\nvar _utilUserNotification2 = _interopRequireDefault(_utilUserNotification);\n\nvar _utilValidationsUtils = __webpack_require__(274);\n\nvar _utilValidationsUtils2 = _interopRequireDefault(_utilValidationsUtils);\n\nvar _utilFormsUtils = __webpack_require__(12);\n\nvar _utilFormsUtils2 = _interopRequireDefault(_utilFormsUtils);\n\nvar _utilObjectUtils = __webpack_require__(57);\n\nvar _utilObjectUtils2 = _interopRequireDefault(_utilObjectUtils);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar _componentsUsersTimeoutInput = __webpack_require__(266);\n\nvar _componentsUsersTimeoutInput2 = _interopRequireDefault(_componentsUsersTimeoutInput);\n\nvar _componentsUsersEditRolesForm = __webpack_require__(931);\n\nvar _componentsUsersEditRolesForm2 = _interopRequireDefault(_componentsUsersEditRolesForm);\n\nvar _componentsCommon = __webpack_require__(5);\n\nvar StreamsStore = _injectionStoreProvider2['default'].getStore('Streams');\nvar DashboardsStore = _injectionStoreProvider2['default'].getStore('Dashboards');\nvar CurrentUserStore = _injectionStoreProvider2['default'].getStore('CurrentUser');\nvar UsersStore = _injectionStoreProvider2['default'].getStore('Users');\n\nvar UserForm = _react2['default'].createClass({\n  displayName: 'UserForm',\n\n  propTypes: {\n    user: _react2['default'].PropTypes.object.isRequired\n  },\n  mixins: [_utilPermissionsMixin2['default'], _reflux2['default'].connect(CurrentUserStore)],\n  getInitialState: function getInitialState() {\n    return {\n      streams: undefined,\n      dashboards: undefined,\n      roles: undefined,\n      user: this._getUserStateFromProps(this.props)\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    var _this = this;\n\n    StreamsStore.listStreams().then(function (streams) {\n      _this.setState({\n        streams: streams.sort(function (s1, s2) {\n          return s1.title.localeCompare(s2.title);\n        })\n      });\n    });\n    DashboardsStore.listDashboards().then(function (dashboards) {\n      _this.setState({ dashboards: dashboards.toArray().sort(function (d1, d2) {\n          return d1.title.localeCompare(d2.title);\n        }) });\n    });\n  },\n\n  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n    if (this.props.user.username !== nextProps.user.username) {\n      this.setState({\n        user: this._getUserStateFromProps(nextProps)\n      });\n    }\n  },\n\n  _getUserStateFromProps: function _getUserStateFromProps(props) {\n    return {\n      full_name: props.user.full_name,\n      email: props.user.email,\n      session_timeout_ms: props.user.session_timeout_ms,\n      timezone: props.user.timezone,\n      permissions: props.user.permissions\n    };\n  },\n\n  formatMultiselectOptions: function formatMultiselectOptions(collection) {\n    return collection.map(function (item) {\n      return { value: item.id, label: item.title };\n    });\n  },\n  formatSelectedOptions: function formatSelectedOptions(permissions, permission, collection) {\n    var _this2 = this;\n\n    return collection.filter(function (item) {\n      return _this2.isPermitted(permissions, [permission + ':' + item.id]);\n    }).map(function (item) {\n      return item.id;\n    }).join(',');\n  },\n  _onPasswordChange: function _onPasswordChange() {\n    var passwordField = this.refs.password.getInputDOMNode();\n    var passwordConfirmField = this.refs.password_repeat.getInputDOMNode();\n\n    if (passwordField.value !== '' && passwordConfirmField.value !== '') {\n      _utilValidationsUtils2['default'].setFieldValidity(passwordConfirmField, passwordField.value !== passwordConfirmField.value, 'Passwords do not match');\n    }\n  },\n\n  _changePassword: function _changePassword(evt) {\n    evt.preventDefault();\n    var request = {};\n\n    if (this.refs.old_password) {\n      request.old_password = this.refs.old_password.getValue();\n    }\n    request.password = this.refs.password.getValue();\n\n    UsersStore.changePassword(this.props.user.username, request).then(function () {\n      _utilUserNotification2['default'].success('Password updated successfully.', 'Success');\n    }, function () {\n      _utilUserNotification2['default'].error('Could not update password. Please verify that your current password is correct.', 'Updating password failed');\n    });\n  },\n\n  _updateUser: function _updateUser(evt) {\n    evt.preventDefault();\n\n    UsersStore.update(this.props.user.username, this.state.user).then(function () {\n      _utilUserNotification2['default'].success('User updated successfully.', 'Success');\n    }, function () {\n      _utilUserNotification2['default'].error('Could not update the user. Please check your logs for more information.', 'Updating user failed');\n    });\n  },\n\n  _updateField: function _updateField(name, value) {\n    var updatedUser = _utilObjectUtils2['default'].clone(this.state.user);\n    updatedUser[name] = value;\n    this.setState({ user: updatedUser });\n  },\n\n  _bindValue: function _bindValue(event) {\n    this._updateField(event.target.name, _utilFormsUtils2['default'].getValueFromInput(event.target));\n  },\n\n  _onFieldChange: function _onFieldChange(name) {\n    var _this3 = this;\n\n    return function (value) {\n      _this3._updateField(name, value);\n    };\n  },\n\n  _onPermissionsChange: function _onPermissionsChange(entity, permission) {\n    var _this4 = this;\n\n    return function (entityIds) {\n      var userPermissions = _this4.state.user.permissions.slice();\n      var newUserPermissions = userPermissions.filter(function (p) {\n        return p.indexOf(entity + ':' + permission) !== 0;\n      });\n\n      var updatedPermissions = entityIds === '' ? [] : entityIds.split(',').map(function (id) {\n        return entity + ':' + permission + ':' + id;\n      });\n      var previousPermissions = userPermissions.filter(function (p) {\n        return p.indexOf(entity + ':' + permission) === 0;\n      });\n\n      // Remove edit permissions to entities without read permissions\n      if (permission === 'read') {\n        previousPermissions.forEach(function (previousPermission) {\n          // Do nothing if permission is still there\n          if (updatedPermissions.some(function (p) {\n            return p === previousPermission;\n          })) {\n            return;\n          }\n\n          // Remove edit permission\n          var entityId = previousPermission.split(':').pop();\n          newUserPermissions = newUserPermissions.filter(function (p) {\n            return p !== entity + ':edit:' + entityId;\n          });\n        });\n      }\n\n      // Grant read permissions to entities with edit permissions\n      if (permission === 'edit') {\n        updatedPermissions.forEach(function (updatePermission) {\n          // Do nothing if permission was there before\n          if (previousPermissions.some(function (p) {\n            return p === updatePermission;\n          })) {\n            return;\n          }\n\n          // Grant read permission\n          var entityId = updatePermission.split(':').pop();\n          newUserPermissions.push(entity + ':read:' + entityId);\n        });\n      }\n\n      _this4._updateField('permissions', newUserPermissions.concat(updatedPermissions));\n    };\n  },\n\n  render: function render() {\n    if (!this.state.streams || !this.state.dashboards) {\n      return _react2['default'].createElement(_componentsCommon.Spinner, null);\n    }\n\n    var user = this.state.user;\n    var permissions = this.state.currentUser.permissions;\n\n    var requiresOldPassword = true;\n    if (this.isPermitted(permissions, 'users:passwordchange:*')) {\n      // Ask for old password if user is editing their own account\n      requiresOldPassword = this.props.user.username === this.state.currentUser.username;\n    }\n\n    var streamReadOptions = this.formatSelectedOptions(this.state.user.permissions, 'streams:read', this.state.streams);\n    var streamEditOptions = this.formatSelectedOptions(this.state.user.permissions, 'streams:edit', this.state.streams);\n\n    var dashboardReadOptions = this.formatSelectedOptions(this.state.user.permissions, 'dashboards:read', this.state.dashboards);\n    var dashboardEditOptions = this.formatSelectedOptions(this.state.user.permissions, 'dashboards:edit', this.state.dashboards);\n\n    return _react2['default'].createElement(\n      'div',\n      null,\n      _react2['default'].createElement(\n        _reactBootstrap.Row,\n        { className: 'row content' },\n        _react2['default'].createElement(\n          _reactBootstrap.Col,\n          { lg: 8 },\n          _react2['default'].createElement(\n            'h2',\n            null,\n            'User information'\n          ),\n          _react2['default'].createElement(\n            'form',\n            { className: 'form-horizontal user-form', id: 'edit-user-form', onSubmit: this._updateUser },\n            user.read_only && _react2['default'].createElement(\n              'span',\n              null,\n              _react2['default'].createElement(\n                _reactBootstrap.Col,\n                { smOffset: 3, sm: 9 },\n                _react2['default'].createElement(\n                  _reactBootstrap.Alert,\n                  { bsStyle: 'warning', role: 'alert' },\n                  'The admin user can only be modified in your Graylog server configuration file.'\n                )\n              ),\n              _react2['default'].createElement('div', { className: 'clearfix' }),\n              _react2['default'].createElement('br', null)\n            ),\n            _react2['default'].createElement(\n              'fieldset',\n              { disabled: user.read_only },\n              _react2['default'].createElement(_reactBootstrap.Input, { name: 'full_name', id: 'full_name', type: 'text', maxLength: 200, value: user.full_name,\n                onChange: this._bindValue, labelClassName: 'col-sm-3', wrapperClassName: 'col-sm-9',\n                label: 'Full Name', help: 'Give a descriptive name for this account, e.g. the full name.',\n                required: true }),\n              _react2['default'].createElement(_reactBootstrap.Input, { ref: 'email', name: 'email', id: 'email', type: 'email', maxLength: 254, value: user.email,\n                onChange: this._bindValue, labelClassName: 'col-sm-3', wrapperClassName: 'col-sm-9',\n                label: 'Email Address', help: 'Give the contact email address.', required: true }),\n              this.isPermitted(permissions, 'USERS_EDIT') && _react2['default'].createElement(\n                'span',\n                null,\n                _react2['default'].createElement(\n                  'div',\n                  { className: 'form-group' },\n                  _react2['default'].createElement(\n                    _reactBootstrap.Col,\n                    { sm: 9, smOffset: 3 },\n                    _react2['default'].createElement(\n                      _reactBootstrap.Panel,\n                      { bsStyle: 'danger', header: 'Setting individual permissions is deprecated, please consider migrating to roles instead.' },\n                      'The permissions listed here are the result of combining all granted permissions by the roles assigned to a user, which you can edit at the bottom of this page, as well as legacy, individual permissions which were assigned to the user before.'\n                    )\n                  ),\n                  _react2['default'].createElement(\n                    'label',\n                    { className: 'col-sm-3 control-label', htmlFor: 'streampermissions' },\n                    'Streams Permissions'\n                  ),\n                  _react2['default'].createElement(\n                    _reactBootstrap.Col,\n                    { sm: 9 },\n                    _react2['default'].createElement(_componentsCommon.MultiSelect, { ref: 'streamReadOptions', placeholder: 'Choose streams read permissions...',\n                      options: this.formatMultiselectOptions(this.state.streams),\n                      value: streamReadOptions,\n                      onChange: this._onPermissionsChange('streams', 'read') }),\n                    _react2['default'].createElement(\n                      'span',\n                      { className: 'help-block' },\n                      'Choose streams the user can ',\n                      _react2['default'].createElement(\n                        'strong',\n                        null,\n                        'view'\n                      ),\n                      '. Removing read access will remove edit access, too.'\n                    ),\n                    _react2['default'].createElement(_componentsCommon.MultiSelect, { ref: 'streamEditOptions', placeholder: 'Choose streams edit permissions...',\n                      options: this.formatMultiselectOptions(this.state.streams),\n                      value: streamEditOptions,\n                      onChange: this._onPermissionsChange('streams', 'edit') }),\n                    _react2['default'].createElement(\n                      'span',\n                      { className: 'help-block' },\n                      'Choose the streams the user can ',\n                      _react2['default'].createElement(\n                        'strong',\n                        null,\n                        'edit'\n                      ),\n                      '. Values chosen here will enable read access, too.'\n                    )\n                  )\n                ),\n                _react2['default'].createElement(\n                  'div',\n                  { className: 'form-group' },\n                  _react2['default'].createElement(\n                    'label',\n                    { className: 'col-sm-3 control-label', htmlFor: 'dashboardpermissions' },\n                    'Dashboard Permissions'\n                  ),\n                  _react2['default'].createElement(\n                    _reactBootstrap.Col,\n                    { sm: 9 },\n                    _react2['default'].createElement(_componentsCommon.MultiSelect, { ref: 'dashboardReadOptions', placeholder: 'Choose dashboards read permissions...',\n                      options: this.formatMultiselectOptions(this.state.dashboards),\n                      value: dashboardReadOptions,\n                      onChange: this._onPermissionsChange('dashboards', 'read') }),\n                    _react2['default'].createElement(\n                      'span',\n                      { className: 'help-block' },\n                      'Choose dashboards the user can ',\n                      _react2['default'].createElement(\n                        'strong',\n                        null,\n                        'view'\n                      ),\n                      '. Removing read access will remove edit access, too.'\n                    ),\n                    _react2['default'].createElement(_componentsCommon.MultiSelect, { ref: 'dashboardEditOptions', placeholder: 'Choose dashboards edit permissions...',\n                      options: this.formatMultiselectOptions(this.state.dashboards),\n                      value: dashboardEditOptions,\n                      onChange: this._onPermissionsChange('dashboards', 'edit') }),\n                    _react2['default'].createElement(\n                      'span',\n                      { className: 'help-block' },\n                      'Choose dashboards the user can ',\n                      _react2['default'].createElement(\n                        'strong',\n                        null,\n                        'edit'\n                      ),\n                      '. Values chosen here will enable read access, too.'\n                    )\n                  )\n                )\n              ),\n              this.isPermitted(permissions, '*') && _react2['default'].createElement(_componentsUsersTimeoutInput2['default'], { ref: 'session_timeout_ms', value: user.session_timeout_ms, labelSize: 3, controlSize: 9,\n                onChange: this._onFieldChange('session_timeout_ms') }),\n              _react2['default'].createElement(\n                _reactBootstrap.Input,\n                { label: 'Time Zone',\n                  help: 'Choose your local time zone or leave it as it is to use the system\\'s default.',\n                  labelClassName: 'col-sm-3', wrapperClassName: 'col-sm-9' },\n                _react2['default'].createElement(_componentsCommon.TimezoneSelect, { ref: 'timezone', className: 'timezone-select', value: user.timezone,\n                  onChange: this._onFieldChange('timezone') })\n              ),\n              _react2['default'].createElement(\n                'div',\n                { className: 'form-group' },\n                _react2['default'].createElement(\n                  _reactBootstrap.Col,\n                  { smOffset: 3, sm: 9 },\n                  _react2['default'].createElement(\n                    _reactBootstrap.Button,\n                    { type: 'submit', bsStyle: 'success', className: 'create-user' },\n                    'Update User'\n                  )\n                )\n              )\n            )\n          )\n        )\n      ),\n      _react2['default'].createElement(\n        _reactBootstrap.Row,\n        { className: 'content' },\n        _react2['default'].createElement(\n          _reactBootstrap.Col,\n          { lg: 8 },\n          _react2['default'].createElement(\n            'h2',\n            null,\n            'Change password'\n          ),\n          user.read_only ? _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { smOffset: 3, sm: 9 },\n            _react2['default'].createElement(\n              _reactBootstrap.Alert,\n              { bsStyle: 'warning', role: 'alert' },\n              'Please edit your Graylog server configuration file to change the admin password.'\n            )\n          ) : user.external ? _react2['default'].createElement(\n            _reactBootstrap.Col,\n            { smOffset: 3, sm: 9 },\n            _react2['default'].createElement(\n              _reactBootstrap.Alert,\n              { bsStyle: 'warning', role: 'alert' },\n              'This user was created from an external system and you can\\'t change the password here. Please contact an administrator for more information.'\n            )\n          ) : _react2['default'].createElement(\n            'form',\n            { className: 'form-horizontal', style: { marginTop: 10 }, onSubmit: this._changePassword },\n            requiresOldPassword && _react2['default'].createElement(_reactBootstrap.Input, { ref: 'old_password', name: 'old_password', id: 'old_password', type: 'password', maxLength: 100,\n              labelClassName: 'col-sm-3', wrapperClassName: 'col-sm-9',\n              label: 'Old Password', required: true }),\n            _react2['default'].createElement(_reactBootstrap.Input, { ref: 'password', name: 'password', id: 'password', type: 'password', maxLength: 100,\n              labelClassName: 'col-sm-3', wrapperClassName: 'col-sm-9',\n              label: 'New Password', required: true, minLength: '6',\n              help: 'Passwords must be at least 6 characters long. We recommend using a strong password.',\n              onChange: this._onPasswordChange }),\n            _react2['default'].createElement(_reactBootstrap.Input, { ref: 'password_repeat', name: 'password_repeat', id: 'password_repeat', type: 'password', maxLength: 100,\n              labelClassName: 'col-sm-3', wrapperClassName: 'col-sm-9',\n              label: 'Repeat Password', required: true, minLength: '6', onChange: this._onPasswordChange }),\n            _react2['default'].createElement(\n              'div',\n              { className: 'form-group' },\n              _react2['default'].createElement(\n                _reactBootstrap.Col,\n                { smOffset: 3, sm: 9 },\n                _react2['default'].createElement(\n                  _reactBootstrap.Button,\n                  { bsStyle: 'success', type: 'submit' },\n                  'Update Password'\n                )\n              )\n            )\n          )\n        )\n      ),\n      _react2['default'].createElement(\n        _componentsCommon.IfPermitted,\n        { permissions: 'USERS_ROLESEDIT' },\n        _react2['default'].createElement(_componentsUsersEditRolesForm2['default'], { user: this.props.user })\n      )\n    );\n  }\n});\n\nexports['default'] = UserForm;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"UserForm.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/users/UserForm.jsx\n ** module id = 936\n ** module chunks = 21\n **/\n//# sourceURL=webpack:///./src/components/users/UserForm.jsx?");
},938:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _componentsUsersUserPreferencesModal = __webpack_require__(939);\n\nvar _componentsUsersUserPreferencesModal2 = _interopRequireDefault(_componentsUsersUserPreferencesModal);\n\nvar UserPreferencesButton = _react2['default'].createClass({\n  displayName: 'UserPreferencesButton',\n\n  propTypes: {\n    userName: _react2['default'].PropTypes.string.isRequired\n  },\n  onClick: function onClick() {\n    this.refs.userPreferencesModal.openModal();\n  },\n  render: function render() {\n    return _react2['default'].createElement(\n      'span',\n      null,\n      _react2['default'].createElement(\n        _reactBootstrap.Button,\n        { onClick: this.onClick, bsStyle: 'success' },\n        'User preferences'\n      ),\n      _react2['default'].createElement(_componentsUsersUserPreferencesModal2['default'], { ref: 'userPreferencesModal', userName: this.props.userName })\n    );\n  }\n});\n\nexports['default'] = UserPreferencesButton;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"UserPreferencesButton.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/users/UserPreferencesButton.jsx\n ** module id = 938\n ** module chunks = 21\n **/\n//# sourceURL=webpack:///./src/components/users/UserPreferencesButton.jsx?")},939:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar _componentsBootstrapBootstrapModalForm = __webpack_require__(33);\n\nvar _componentsBootstrapBootstrapModalForm2 = _interopRequireDefault(_componentsBootstrapBootstrapModalForm);\n\nvar PreferencesStore = _injectionStoreProvider2['default'].getStore('Preferences');\n\nvar UserPreferencesModal = _react2['default'].createClass({\n  displayName: 'UserPreferencesModal',\n\n  propTypes: {\n    userName: _react2['default'].PropTypes.string.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return { preferences: [] };\n  },\n  _onPreferenceChanged: function _onPreferenceChanged(event) {\n    var name = event.target.name;\n    var preferenceToChange = this.state.preferences.filter(function (preference) {\n      return preference.name === name;\n    })[0];\n    // TODO: we need the type of the preference to set it properly\n    if (preferenceToChange) {\n      preferenceToChange.value = event.target.value;\n      this.setState({ preferences: this.state.preferences });\n    }\n  },\n  _save: function _save() {\n    PreferencesStore.saveUserPreferences(this.state.preferences, this.refs.modal.close);\n  },\n  openModal: function openModal() {\n    var _this = this;\n\n    PreferencesStore.loadUserPreferences(this.props.userName, function (preferences) {\n      _this.setState({ preferences: preferences });\n      _this.refs.modal.open();\n    });\n  },\n  render: function render() {\n    var _this2 = this;\n\n    var shouldAutoFocus = true;\n\n    var formattedPreferences = this.state.preferences.map(function (preference, index) {\n      var formattedPreference = _react2['default'].createElement(\n        'div',\n        { className: 'form-group', key: preference.name + '-' + index },\n        _react2['default'].createElement(_reactBootstrap.Input, { type: 'text',\n          id: preference.name + '-' + index,\n          name: preference.name,\n          label: preference.name,\n          onChange: _this2._onPreferenceChanged,\n          value: preference.value,\n          required: true,\n          autoFocus: shouldAutoFocus })\n      );\n\n      if (shouldAutoFocus) {\n        shouldAutoFocus = false;\n      }\n\n      return formattedPreference;\n    });\n    return _react2['default'].createElement(\n      _componentsBootstrapBootstrapModalForm2['default'],\n      { ref: 'modal',\n        title: 'Preferences for user ' + this.props.userName,\n        onSubmitForm: this._save,\n        submitButtonText: 'Save' },\n      _react2['default'].createElement(\n        'div',\n        null,\n        formattedPreferences\n      )\n    );\n  }\n});\n\nexports['default'] = UserPreferencesModal;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"UserPreferencesModal.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/components/users/UserPreferencesModal.jsx\n ** module id = 939\n ** module chunks = 21\n **/\n//# sourceURL=webpack:///./src/components/users/UserPreferencesModal.jsx?")},972:function(module,exports,__webpack_require__){eval("/* REACT HOT LOADER */ if (false) { (function () { var ReactHotAPI = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-api/modules/index.js\"), RootInstanceProvider = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/RootInstanceProvider.js\"), ReactMount = require(\"react/lib/ReactMount\"), React = require(\"react\"); module.makeHot = module.hot.data ? module.hot.data.makeHot : ReactHotAPI(function () { return RootInstanceProvider.getRootInstances(ReactMount); }, React); })(); } try { (function () {\n\n'use strict';\n\nObject.defineProperty(exports, '__esModule', {\n  value: true\n});\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _react = __webpack_require__(1);\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _reactBootstrap = __webpack_require__(2);\n\nvar _injectionStoreProvider = __webpack_require__(3);\n\nvar _injectionStoreProvider2 = _interopRequireDefault(_injectionStoreProvider);\n\nvar _componentsCommonPageHeader = __webpack_require__(38);\n\nvar _componentsCommonPageHeader2 = _interopRequireDefault(_componentsCommonPageHeader);\n\nvar _componentsCommonSpinner = __webpack_require__(23);\n\nvar _componentsCommonSpinner2 = _interopRequireDefault(_componentsCommonSpinner);\n\nvar _componentsUsersUserForm = __webpack_require__(936);\n\nvar _componentsUsersUserForm2 = _interopRequireDefault(_componentsUsersUserForm);\n\nvar _componentsUsersUserPreferencesButton = __webpack_require__(938);\n\nvar _componentsUsersUserPreferencesButton2 = _interopRequireDefault(_componentsUsersUserPreferencesButton);\n\nvar UsersStore = _injectionStoreProvider2['default'].getStore('Users');\nvar StartpageStore = _injectionStoreProvider2['default'].getStore('Startpage');\n\nvar EditUsersPage = _react2['default'].createClass({\n  displayName: 'EditUsersPage',\n\n  propTypes: {\n    params: _react2['default'].PropTypes.object.isRequired\n  },\n  getInitialState: function getInitialState() {\n    return {\n      user: undefined\n    };\n  },\n  componentDidMount: function componentDidMount() {\n    this._loadUser(this.props.params.username);\n  },\n\n  componentWillReceiveProps: function componentWillReceiveProps(nextProps) {\n    if (this.props.params.username !== nextProps.params.username) {\n      this._loadUser(nextProps.params.username);\n    }\n  },\n\n  _loadUser: function _loadUser(username) {\n    var _this = this;\n\n    UsersStore.load(username).then(function (user) {\n      _this.setState({ user: user });\n    });\n  },\n  _resetStartpage: function _resetStartpage() {\n    var _this2 = this;\n\n    if (window.confirm('Are you sure you want to reset the start page?')) {\n      (function () {\n        var username = _this2.props.params.username;\n        StartpageStore.set(username).then(function () {\n          return _this2._loadUser(username);\n        });\n      })();\n    }\n  },\n  render: function render() {\n    if (!this.state.user) {\n      return _react2['default'].createElement(_componentsCommonSpinner2['default'], null);\n    }\n\n    var user = this.state.user;\n    var resetStartpageButton = undefined;\n    if (!user.read_only && user.startpage !== null && Object.keys(user.startpage).length > 0) {\n      resetStartpageButton = _react2['default'].createElement(\n        _reactBootstrap.Button,\n        { bsStyle: 'info', onClick: this._resetStartpage },\n        'Reset custom startpage'\n      );\n    }\n\n    var userPreferencesButton = !user.read_only ? _react2['default'].createElement(\n      'span',\n      { id: 'react-user-preferences-button', 'data-user-name': this.props.params.username },\n      _react2['default'].createElement(_componentsUsersUserPreferencesButton2['default'], { userName: user.username })\n    ) : null;\n\n    return _react2['default'].createElement(\n      'span',\n      null,\n      _react2['default'].createElement(\n        _componentsCommonPageHeader2['default'],\n        { title: _react2['default'].createElement(\n            'span',\n            null,\n            'Edit user ',\n            _react2['default'].createElement(\n              'em',\n              null,\n              this.props.params.username\n            )\n          ) },\n        _react2['default'].createElement(\n          'span',\n          null,\n          'You can either change the details of a user here or set a new password.'\n        ),\n        null,\n        _react2['default'].createElement(\n          'div',\n          null,\n          resetStartpageButton,\n          ' ',\n          userPreferencesButton\n        )\n      ),\n      _react2['default'].createElement(_componentsUsersUserForm2['default'], { user: this.state.user })\n    );\n  }\n});\n\nexports['default'] = EditUsersPage;\nmodule.exports = exports['default'];\n\n/* REACT HOT LOADER */ }).call(this); } finally { if (false) { (function () { var foundReactClasses = module.hot.data && module.hot.data.foundReactClasses || false; if (module.exports && module.makeHot) { var makeExportsHot = require(\"/var/lib/jenkins/jobs/graylog-release/workspace/target/checkout/graylog2-web-interface/node_modules/react-hot-loader/makeExportsHot.js\"); if (makeExportsHot(module, require(\"react\"))) { foundReactClasses = true; } var shouldAcceptModule = true && foundReactClasses; if (shouldAcceptModule) { module.hot.accept(function (err) { if (err) { console.error(\"Cannot not apply hot update to \" + \"EditUsersPage.jsx\" + \": \" + err.message); } }); } } module.hot.dispose(function (data) { data.makeHot = module.makeHot; data.foundReactClasses = foundReactClasses; }); })(); } }\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-hot-loader!./~/babel-loader!./src/pages/EditUsersPage.jsx\n ** module id = 972\n ** module chunks = 21\n **/\n//# sourceURL=webpack:///./src/pages/EditUsersPage.jsx?./~/react-hot-loader!./~/babel-loader")}});




© 2015 - 2024 Weber Informatics LLC | Privacy Policy