From a71aee94875670cc9e96c6ef59c21624eda18b4b Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 6 Sep 2026 15:36:55 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D"=E5=AE=89=E5=85=A8"=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E9=A1=B5=E9=80=80=E5=87=BA=E7=99=BB=E5=BD=95=E6=97=A0?= =?UTF-8?q?=E4=BA=8C=E6=AC=A1=E7=A1=AE=E8=AE=A4=EF=BC=8C=E5=8D=95=E5=87=BB?= =?UTF-8?q?=E7=AB=8B=E5=8D=B3=E7=99=BB=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 现象:从 account-settings-view.jsx"账户设置"、info-view.jsx,以及第2章系统消息列表"前往 安全设置"跳转按钮都能到达 acc-security-view.jsx 这个"安全"页(并非废弃页面,是与 personal-settings-view.jsx"设置"页并存的独立入口),点击"登出"没有任何二次确认,单击 图标就会立即退出登录,且没有任何撤销机会。 根因:该文件里"登出"按钮的 onClick 直接调用 this.props.onLogout(),而同文件里紧挨着的 "删除帐户"按钮走的是 onShowAlert 弹确认框(handleDeleteAccount)。此前 46a98782 那一轮 已经把 personal-settings-view.jsx"设置"页的登出从原生 window.confirm() 改成了自己的 ConfirmSheet/LogoutConfirm,但漏改了这个仍然可达的旧版"安全"页入口。 修复:新增 handleLogoutRequest,复用本文件已有的 onShowAlert 机制弹确认框,文案 ("退出登录"/"确定要退出当前登录吗?")与 personal-settings-view.jsx 的 LogoutConfirm 保持一致,不新造一套措辞。 验证:本地登录后访问 #security,点击"登出"确认弹出对话框(标题/正文/按钮文案核对无误); 点击"取消"保持登录态且仍停留在安全页;点击"好"确认后正确清除 auth-token 并退回登录/租户 判断逻辑接管的空 hash。 Co-Authored-By: Claude Sonnet 5 --- src/views/acc-security-view.jsx | 23 ++++++++++++++++++- umd/src_views_acc-security-view_jsx.dev.js | 10 ++++---- ...src_views_acc-security-view_jsx.dev.js.map | 2 +- 3 files changed, 29 insertions(+), 6 deletions(-) diff --git a/src/views/acc-security-view.jsx b/src/views/acc-security-view.jsx index ba3afc8e..c4989b5f 100644 --- a/src/views/acc-security-view.jsx +++ b/src/views/acc-security-view.jsx @@ -43,6 +43,7 @@ class AccSecurityView extends React.Component { this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this); this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this); this.handleDeleteAccount = this.handleDeleteAccount.bind(this); + this.handleLogoutRequest = this.handleLogoutRequest.bind(this); this.handleCheckboxClick = this.handleCheckboxClick.bind(this); } @@ -89,6 +90,26 @@ class AccSecurityView extends React.Component { ); } + // "退出登录"这个按钮原来是 onClick 里直接 `this.props.onLogout()`,没有任何二次确认——同一个文件里 + // 紧挨着的"删除帐户"按钮反而是走 onShowAlert 弹确认框的(见上面 handleDeleteAccount)。本页 + // ('security' 路由)并不是废弃页面:account-settings-view.jsx、info-view.jsx 的"安全"入口,以及 + // 第2章系统消息列表里"前往安全设置"跳转按钮(message-center-view.jsx)都会真的落到这个页面, + // 跟 personal-settings-view.jsx 的"设置"页(那边的退出登录已经在别的改造里换成了自己的 + // ConfirmSheet/LogoutConfirm)是两条并存的独立路径——用户从系统消息点"前往安全设置"进来,单击一下 + // 图标就会被立即退出登录,且没有任何撤销机会。改成跟"删除帐户"一样走 onShowAlert,文案与 + // personal-settings-view.jsx 的 LogoutConfirm 保持一致,不新造一套措辞。 + handleLogoutRequest(e) { + e.preventDefault(); + this.props.onShowAlert( + '退出登录', + '确定要退出当前登录吗?', + (_ => this.props.onLogout()), + null, // use default text "OK" + true, // Show Reject button + null // use default text "Cancel" + ); + } + render() { return ( <>{this.state.showPermissionEditorFor ? @@ -143,7 +164,7 @@ class AccSecurityView extends React.Component {
- {e.preventDefault(); this.props.onLogout();}}> + exit_to_app   diff --git a/umd/src_views_acc-security-view_jsx.dev.js b/umd/src_views_acc-security-view_jsx.dev.js index ff36c279..94a3e581 100644 --- a/umd/src_views_acc-security-view_jsx.dev.js +++ b/umd/src_views_acc-security-view_jsx.dev.js @@ -56,6 +56,7 @@ class AccSecurityView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Comp this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this); this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this); this.handleDeleteAccount = this.handleDeleteAccount.bind(this); + this.handleLogoutRequest = this.handleLogoutRequest.bind(this); this.handleCheckboxClick = this.handleCheckboxClick.bind(this); } handlePasswordUpdate(pwd) { @@ -95,6 +96,10 @@ class AccSecurityView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Comp } = this.props.intl; this.props.onShowAlert(formatMessage(messages.delete_account), formatMessage(messages.delete_account_warning), _ => this.props.onDeleteAccount(), null, true, null); } + handleLogoutRequest(e) { + e.preventDefault(); + this.props.onShowAlert('退出登录', '确定要退出当前登录吗?', _ => this.props.onLogout(), null, true, null); + } render() { return (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, { children: this.state.showPermissionEditorFor ? (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)(_widgets_permissions_editor_jsx__WEBPACK_IMPORTED_MODULE_4__["default"], { @@ -203,10 +208,7 @@ class AccSecurityView extends (react__WEBPACK_IMPORTED_MODULE_0___default().Comp children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("a", { href: "#", className: "danger flat-button", - onClick: e => { - e.preventDefault(); - this.props.onLogout(); - }, + onClick: this.handleLogoutRequest, children: [(0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxDEV)("i", { className: "material-icons", children: "exit_to_app" diff --git a/umd/src_views_acc-security-view_jsx.dev.js.map b/umd/src_views_acc-security-view_jsx.dev.js.map index e15dc3f9..51f130e4 100644 --- a/umd/src_views_acc-security-view_jsx.dev.js.map +++ b/umd/src_views_acc-security-view_jsx.dev.js.map @@ -1 +1 @@ -{"version":3,"file":"src_views_acc-security-view_jsx.dev.js","mappings":";;;;;;;;;;;;;;;;;;AAC0B;AACgD;AAE3B;AACQ;AACW;AAAA;AAElE,MAAM,QAAQ,GAAG,0DAAc,CAAC;EAC9B,cAAc,EAAE;IACd,EAAE,EAAE,gBAAgB;IACpB,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE;EACf,CAAC;EACD,sBAAsB,EAAE;IACtB,EAAE,EAAE,wBAAwB;IAC5B,cAAc,EAAE,oEAAoE;IACpF,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAEF,MAAM,eAAe,SAAS,wDAAe,CAAC;EAC5C,WAAW,CAAC,KAAK,EAAE;IACjB,KAAK,CAAC,KAAK,CAAC;IAEZ,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,IAAI,YAAY,GAAG,CAAC;IACpB,EAAE,CAAC,QAAQ,CAAE,CAAC,IAAK;MACjB,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE;QAC9B,YAAY,EAAG;MACjB;IACF,CAAC,CAAC;IACF,MAAM,MAAM,GAAG,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACpC,IAAI,CAAC,KAAK,GAAG;MACX,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI;MACjC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,IAAI,GAAG,IAAI;MACjC,uBAAuB,EAAE,SAAS;MAClC,YAAY,EAAE;IAChB,CAAC;IAED,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC;IAChE,IAAI,CAAC,6BAA6B,GAAG,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,CAAC;IAClF,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9E,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC;IACxE,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC;EAChE;EAEA,oBAAoB,CAAC,GAAG,EAAE;IACxB,IAAI,CAAC,QAAQ,CAAC;MAAC,QAAQ,EAAE;IAAG,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC;EAClC;EAEA,6BAA6B,CAAC,KAAK,EAAE;IACnC,IAAI,CAAC,QAAQ,CAAC;MACZ,uBAAuB,EAAE,KAAK;MAC9B,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;IACrC,CAAC,CAAC;EACJ;EAEA,2BAA2B,GAAG;IAC5B,IAAI,CAAC,QAAQ,CAAC;MAAC,uBAAuB,EAAE;IAAS,CAAC,CAAC;EACrD;EAEA,wBAAwB,CAAC,IAAI,EAAE;IAC7B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;IACjD,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC;IAElE,IAAI,QAAQ,GAAG;MAAC,uBAAuB,EAAE;IAAS,CAAC;IACnD,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,GAAG,IAAI;IACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;EACzB;EAEA,mBAAmB,CAAC,IAAI,EAAE,OAAO,EAAE;IACjC,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC;EAC3C;EAEA,mBAAmB,CAAC,CAAC,EAAE;IACrB,CAAC,CAAC,cAAc,CAAC,CAAC;IAClB,MAAM;MAAC;IAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;IACvC,IAAI,CAAC,KAAK,CAAC,WAAW,CACpB,aAAa,CAAC,QAAQ,CAAC,cAAc,CAAC,EACtC,aAAa,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EAC7C,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,EAClC,IAAI,EACJ,IAAI,EACJ,IACF,CAAC;EACH;EAEA,MAAM,GAAG;IACP,OACE;MAAA,UAAG,IAAI,CAAC,KAAK,CAAC,uBAAuB,GACnC,8DAAC,uEAAiB;QAChB,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAkB;QACnC,IAAI,EAAC,GAAG;QACR,QAAQ,EAAE,IAAI,CAAC,wBAAyB;QACxC,QAAQ,EAAE,IAAI,CAAC;MAA4B,gBAAE,CAAC,GAEhD;QAAK,SAAS,EAAC,kBAAkB;QAAA,WAC/B;UAAK,SAAS,EAAC,mBAAmB;UAAA,WAChC;YAAO,SAAS,EAAC,OAAO;YAAA,UACtB,8DAAC,wDAAgB;cAAC,EAAE,EAAC,gBAAgB;cAAC,cAAc,EAAC,UAAU;cAC3D,WAAW,EAAC;YAA4B,gBAAE;UAAC,gBAC1C,CAAC,EACR;YAAA,UACE,8DAAC,wDAAgB;cAAC,EAAE,EAAC,2BAA2B;cAAC,cAAc,EAAC,WAAW;cACzE,WAAW,EAAC,+CAA+C;cAAA,UAC1D,kBAAkB,IAAK,8DAAC,kEAAW;gBAClC,WAAW,EAAE,kBAAmB;gBAChC,IAAI,EAAC,UAAU;gBACf,UAAU,EAAE,IAAI,CAAC;cAAqB,gBAAE;YAAC,gBAC1B;UAAC,gBACjB,CAAC;QAAA,eACH,CAAC,EACN;UAAK,SAAS,EAAC;QAAI,gBAAE,CAAC,EACtB;UAAK,SAAS,EAAC,gBAAgB;UAAA,WAC7B;YAAO,OAAO,EAAC,gBAAgB;YAAA,UAC7B,8DAAC,wDAAgB;cAAC,EAAE,EAAC,sBAAsB;cAAC,cAAc,EAAC,iBAAiB;cAC1E,WAAW,EAAC;YAAiC,gBAAE;UAAC,gBAC7C,CAAC,EACR,8DAAC,6DAAQ;YAAC,IAAI,EAAC,WAAW;YAAC,EAAE,EAAC,gBAAgB;YAC5C,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,aAAc;YAAC,QAAQ,EAAE,IAAI,CAAC;UAAoB,gBAAE,CAAC;QAAA,eACxE,CAAC,EACN;UAAK,SAAS,EAAC,gBAAgB;UAAA,UAC7B;YAAM,SAAS,EAAC,YAAY;YAAA,UAC1B,8DAAC,wDAAgB;cAAC,EAAE,EAAC,4BAA4B;cAAC,cAAc,EAAC,gDAAgD;cAC/G,WAAW,EAAC;YAAuC,gBAAE;UAAC,gBACpD;QAAC,gBACJ,CAAC,EACN;UAAK,SAAS,EAAC;QAAI,gBAAE,CAAC,EACtB;UAAK,SAAS,EAAC,0CAA0C;UAAA,WACvD;YAAQ,IAAI,EAAC,QAAQ;YAAC,SAAS,EAAC,aAAa;YAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAE;YAAA,WAC7F;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAa,gBAAG,CAAC;cAAA,UAAM;YAAI,gBAAM,CAAC;cAAG,SAAS,EAAC,yBAAyB;cAAA,UAAC;YAAa,gBAAG,CAAC;UAAA,eAClH,CAAC,EACT;YAAQ,IAAI,EAAC,QAAQ;YAAC,SAAS,EAAC,aAAa;YAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAE;YAAA,WACnG;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAc,gBAAG,CAAC;cAAA,UAAM;YAAI,gBAAM,CAAC;cAAG,SAAS,EAAC,yBAAyB;cAAA,UAAC;YAAa,gBAAG,CAAC;UAAA,eACnH,CAAC,EACT;YAAQ,IAAI,EAAC,QAAQ;YAAC,SAAS,EAAC,aAAa;YAAC,OAAO,EAAE,MAAM,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,sBAAsB,CAAE;YAAA,WACzG;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAQ,gBAAG,CAAC;cAAA,UAAM;YAAM,gBAAM,CAAC;cAAG,SAAS,EAAC,yBAAyB;cAAA,UAAC;YAAa,gBAAG,CAAC;UAAA,eAC/G,CAAC;QAAA,eACN,CAAC,EACN;UAAK,SAAS,EAAC;QAAI,gBAAE,CAAC,EACtB;UAAK,SAAS,EAAC,mBAAmB;UAAA,WAChC;YAAG,IAAI,EAAC,GAAG;YAAC,SAAS,EAAC,oBAAoB;YAAC,OAAO,EAAG,CAAC,IAAK;cAAC,CAAC,CAAC,cAAc,CAAC,CAAC;cAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAAC,CAAE;YAAA,WACtG;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAW,gBAAG,CAAC,SAAO,gEAAC,wDAAgB;cAAC,EAAE,EAAC,eAAe;cACtF,cAAc,EAAC,QAAQ;cAAC,WAAW,EAAC;YAAiB,gBAAE,CAAC;UAAA,eACzD,CAAC,EACJ;YAAG,IAAI,EAAC,GAAG;YAAC,SAAS,EAAC,oBAAoB;YAAC,OAAO,EAAG,CAAC,IAAK;cAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;YAAC,CAAE;YAAA,WACxF;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAM,gBAAG,CAAC,SAAO,gEAAC,wDAAgB;cAAC,EAAE,EAAC,uBAAuB;cACzF,cAAc,EAAC,gBAAgB;cAAC,WAAW,EAAC;YAAyB,gBAAE,CAAC;UAAA,eACzE,CAAC;QAAA,eACD,CAAC,EACN;UAAK,SAAS,EAAC;QAAI,gBAAE,CAAC,EACtB;UAAK,SAAS,EAAC,mBAAmB;UAAA,WAChC;YAAA,UACE;cAAO,SAAS,EAAC,OAAO;cAAA,UACtB,8DAAC,wDAAgB;gBAAC,EAAE,EAAC,2BAA2B;gBAAC,cAAc,EAAC,sBAAsB;gBACpF,WAAW,EAAC;cAA+B,gBAAE;YAAC,gBAC3C;UAAC,gBACL,CAAC,EACN;YAAK,SAAS,EAAC,QAAQ;YAAA,WACrB;cAAA,WAAK,QAAM;gBAAI,SAAS,EAAC,WAAW;gBAClC,OAAO,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAE;gBAAA,UAAE,IAAI,CAAC,KAAK,CAAC;cAAI,gBAAK,CAAC;YAAA,eAAK,CAAC,EAC9F;cAAA,WAAK,QAAM;gBAAI,SAAS,EAAC,WAAW;gBAClC,OAAO,EAAE,IAAI,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAE;gBAAA,UAAE,IAAI,CAAC,KAAK,CAAC;cAAI,gBAAK,CAAC;YAAA,eAAK,CAAC;UAAA,eAC3F,CAAC;QAAA,eACH,CAAC,EACL,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,GAC1B;UAAA,WACE;YAAK,SAAS,EAAC;UAAI,gBAAE,CAAC,EACtB;YAAK,SAAS,EAAC,gBAAgB;YAAA,WAC7B;cAAG,SAAS,EAAC,gBAAgB;cAAA,UAAC;YAAK,gBAAG,CAAC,QACvC;cAAG,IAAI,EAAC,GAAG;cAAC,SAAS,EAAC,MAAM;cAAC,OAAO,EAAG,CAAC,IAAK;gBAAC,CAAC,CAAC,cAAc,CAAC,CAAC;gBAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;cAAC,CAAE;cAAA,UAC7F,8DAAC,wDAAgB;gBAAC,EAAE,EAAC,uBAAuB;gBAAC,cAAc,EAAC,4BAA4B;gBACtF,MAAM,EAAE;kBAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC;gBAAa,CAAE;gBAAC,WAAW,EAAC;cAAuB,gBAAE;YAAC,gBACnF,CAAC;UAAA,eACD,CAAC;QAAA,eACN,CAAC,GACD,IAAI;MAAA,eACL;IAAC,gBACL,CAAC;EAER;AACF;AAAC;AAED,+DAAe,sDAAU,CAAC,eAAe,CAAC,E;;;;;;;;;;;;;;;;;;;ACzLhB;AACgD;AAEpC;AACF;AAEkB;AAAA;AAGtD,MAAM,QAAQ,GAAG,0DAAc,CAAC;EAC9B,MAAM,EAAE;IACN,EAAE,EAAE,iBAAiB;IACrB,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE;EACf,CAAC;EACD,MAAM,EAAE;IACN,EAAE,EAAE,iBAAiB;IACrB,cAAc,EAAE,cAAc;IAC9B,WAAW,EAAE;EACf,CAAC;EACD,MAAM,EAAE;IACN,EAAE,EAAE,kBAAkB;IACtB,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE;EACf,CAAC;EACD,MAAM,EAAE;IACN,EAAE,EAAE,iBAAiB;IACrB,cAAc,EAAE,sBAAsB;IACtC,WAAW,EAAE;EACf,CAAC;EACD,QAAQ,EAAE;IACR,EAAE,EAAE,kBAAkB;IACtB,cAAc,EAAE,iBAAiB;IACjC,WAAW,EAAE;EACf,CAAC;EACD,MAAM,EAAE;IACN,EAAE,EAAE,kBAAkB;IACtB,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE;EACf,CAAC;EACD,OAAO,EAAE;IACP,EAAE,EAAE,mBAAmB;IACvB,cAAc,EAAE,gBAAgB;IAChC,WAAW,EAAE;EACf,CAAC;EACD,KAAK,EAAE;IACL,EAAE,EAAE,kBAAkB;IACtB,cAAc,EAAE,eAAe;IAC/B,WAAW,EAAE;EACf;AACF,CAAC,CAAC;AAEF,MAAM,iBAAiB,SAAS,wDAAe,CAAC;EAC9C,WAAW,CAAC,KAAK,EAAE;IACjB,KAAK,CAAC,KAAK,CAAC;IAEZ,IAAI,CAAC,KAAK,GAAG;MACX,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE;IAC1C,CAAC;IAED,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;EAClD;EAEA,YAAY,CAAC,GAAG,EAAE;IAChB,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IAC7B,IAAI,GAAG,IAAI,CAAC,CAAC,EAAE;MACb,IAAI,IAAI,GAAG;IACb,CAAC,MAAM;MACL,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IAC9B;IACA,IAAI,CAAC,QAAQ,CAAC;MAAC,IAAI,EAAE;IAAI,CAAC,CAAC;EAC7B;EAEA,YAAY,GAAG;IAEb,MAAM,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IAC/D,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,GAAG,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IACjE,IAAI,IAAI,KAAK,MAAM,EAAE;MACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC,MAAM;MACL,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB;EACF;EAEA,YAAY,GAAG;IACb,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;EACvB;EAEA,MAAM,GAAG;IACP,MAAM;MAAC;IAAa,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;IACvC,MAAM,GAAG,GAAG,UAAU;IACtB,MAAM,KAAK,GAAG;MACZ,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MACjD,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,MAAM,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAC/C,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,OAAO,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC,CAAC;MAChD,GAAG,EAAE,aAAa,CAAC,QAAQ,CAAC,KAAK,EAAE;QAAC,GAAG,EAAE;MAAG,CAAC;IAC/C,CAAC;IAED,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE;IAChC,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI;IAC1B,IAAI,OAAO,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;IACzD,IAAI,KAAK,GAAG,EAAE;IACd,KAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;MAC/B,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;MACrB,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QAE/C;MACF;MACA,KAAK,CAAC,IAAI,CACR;QAAA,WACE;UAAA,UAAK,KAAK,CAAC,CAAC;QAAC,gBAAK,CAAC,EACnB;UAAI,SAAS,EAAC,UAAU;UAAA,UAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAC3C,8DAAC,qDAAQ;YAAC,IAAI,EAAE,CAAE;YAAC,OAAO,EAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAG;YAAC,QAAQ,EAAE,IAAI,CAAC;UAAa,gBAAC,CAAC,GAElF,8DAAC,qDAAQ;YAAC,IAAI,EAAE,CAAE;YAAC,OAAO,EAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;UAAG,gBAAE;QAAC,gBACnD,CAAC,EAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG;UAAI,SAAS,EAAC,UAAU;UAAA,UAClD,8DAAC,qDAAQ;YAAC,IAAI,EAAE,CAAE;YAAC,OAAO,EAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI;UAAG,gBAAC;QAAC,gBACtD,CAAC,GAAG,IAAI;MAAA,GARL,CAAC,MASN,CACN,CAAC;IACH;IAEA,OACE;MAAK,SAAS,EAAC,mBAAmB;MAAA,WAC/B,IAAI,CAAC,KAAK,CAAC,SAAS,GACnB;QAAI,SAAS,EAAC,mBAAmB;QAAA,UAAC,8DAAC,oDAAO;UACxC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAO;UAC1B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAK;UACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAU;UAC5B,KAAK,EAAE,IAAK;UACZ,MAAM,EAAE,kEAAY,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI;QAAE,gBAAE;MAAC,gBAAI,CAAC,GAAG,IAAI,EAC9F;QAAO,SAAS,EAAC,OAAO;QAAA,UAAC,8DAAC,wDAAgB;UAAC,EAAE,EAAC,mBAAmB;UAC/D,cAAc,EAAC,aAAa;UAAC,WAAW,EAAC;QAAe,gBAAC;MAAC,gBAAO,CAAC,EACpE;QAAO,SAAS,EAAC,mBAAmB;QAAA,WACnC,IAAI,CAAC,KAAK,CAAC,OAAO,GACjB;UAAA,UAAO;YAAA,WACL,qFAAQ,CAAC;cAAA,UAAK,IAAI,CAAC,KAAK,CAAC;YAAS,gBAAK,CAAC,EACxC;cAAA,UAAK,IAAI,CAAC,KAAK,CAAC;YAAY,gBAAK,CAAC;UAAA,eAChC;QAAC,gBAAO,CAAC,GACb,IAAI,EACN;UAAA,UACG;QAAK,gBACD,CAAC;MAAA,eAAO,CAAC,EAChB,qFAAK,CAAC,EACN;QAAK,SAAS,EAAC,gBAAgB;QAAA,WAC7B;UAAQ,SAAS,EAAC,SAAS;UAAC,OAAO,EAAE,IAAI,CAAC,YAAa;UAAA,UACrD,8DAAC,wDAAgB;YAAC,EAAE,EAAC,eAAe;YAAC,cAAc,EAAC,QAAQ;YAAC,WAAW,EAAC;UAAiB,gBAAE;QAAC,gBACvF,CAAC,EACT;UAAQ,SAAS,EAAC,SAAS;UAAC,OAAO,EAAE,IAAI,CAAC,YAAa;UAAA,UACrD,8DAAC,wDAAgB;YAAC,EAAE,EAAC,WAAW;YAAC,cAAc,EAAC,IAAI;YAAC,WAAW,EAAC;UAAa,gBAAE;QAAC,gBAC3E,CAAC;MAAA,eACN,CAAC;IAAA,eACH,CAAC;EAEV;AACF;AAAC;AAED,+DAAe,sDAAU,CAAC,iBAAiB,CAAC,E","sources":["webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx"],"sourcesContent":["// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleCheckboxClick(what, checked) {\n this.props.onToggleIncognitoMode(checked);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (_ => this.props.onDeleteAccount()), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n \n :\n
\n
\n \n
\n {\n (password_unchanged) => \n }\n
\n
\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
Auth: {this.state.auth}
\n
Anon: {this.state.anon}
\n
\n
\n {this.state.blockedCount > 0 ?\n <>\n \n }\n );\n }\n};\n\nexport default injectIntl(AccSecurityView);\n","// PermissionsEditor: Component for editing permissions\n// \nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from './checkbox.jsx';\nimport Contact from './contact.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\n// Translatable permission names.\nconst messages = defineMessages({\n joiner: {\n id: 'permission_join',\n defaultMessage: \"Join ({val})\",\n description: 'Name of J permission'\n },\n reader: {\n id: 'permission_read',\n defaultMessage: \"Read ({val})\",\n description: 'Name of R permission'\n },\n writer: {\n id: 'permission_write',\n defaultMessage: \"Write ({val})\",\n description: 'Name of W permission'\n },\n preser: {\n id: 'permission_pres',\n defaultMessage: \"Get notified ({val})\",\n description: 'Name of P permission'\n },\n approver: {\n id: 'permission_admin',\n defaultMessage: \"Approve ({val})\",\n description: 'Name of A permission'\n },\n sharer: {\n id: 'permission_share',\n defaultMessage: \"Share ({val})\",\n description: 'Name of S permission'\n },\n deleter: {\n id: 'permission_delete',\n defaultMessage: \"Delete ({val})\",\n description: 'Name of D permission'\n },\n owner: {\n id: 'permission_owner',\n defaultMessage: \"Owner ({val})\",\n description: 'Name of O permission'\n }\n});\n\nclass PermissionsEditor extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n mode: (props.mode || '').replace('N', '')\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n handleChange(val) {\n let mode = this.state.mode;\n const idx = mode.indexOf(val);\n if (idx == -1) {\n mode += val;\n } else {\n mode = mode.replace(val, '');\n }\n this.setState({mode: mode});\n }\n\n handleSubmit() {\n // Normalize string, otherwise cannot check if mode has changed.\n const mode = (this.state.mode || 'N').split('').sort().join('');\n const before = (this.props.mode || 'N').split('').sort().join('')\n if (mode !== before) {\n this.props.onSubmit(mode);\n } else {\n this.props.onCancel();\n }\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const all = 'JRWPASDO';\n const names = {\n 'J': formatMessage(messages.joiner, {val: 'J'}),\n 'R': formatMessage(messages.reader, {val: 'R'}),\n 'W': formatMessage(messages.writer, {val: 'W'}),\n 'P': formatMessage(messages.preser, {val: 'P'}),\n 'A': formatMessage(messages.approver, {val: 'A'}),\n 'S': formatMessage(messages.sharer, {val: 'S'}),\n 'D': formatMessage(messages.deleter, {val: 'D'}),\n 'O': formatMessage(messages.owner, {val: 'O'})\n };\n\n let skip = this.props.skip || '';\n let mode = this.state.mode;\n let compare = (this.props.compare || '').replace('N', '');\n let items = [];\n for (let i=0; i= 0 && mode.indexOf(c) < 0) {\n // Permission is marked as inactive: hide unchecked permissions, disable checked permissions\n continue;\n }\n items.push(\n \n {names[c]}\n {skip.indexOf(c) < 0 ?\n = 0)} onChange={this.handleChange}/>\n :\n = 0)} />\n }{this.props.compare ? \n = 0)}/>\n : null}\n \n );\n }\n\n return (\n
\n {this.props.userTitle ?\n
: null}\n \n \n {this.props.compare ?\n \n \n \n :\n null}\n \n {items}\n
{this.props.modeTitle}{this.props.compareTitle}
\n
\n
\n \n \n
\n
\n );\n }\n};\n\nexport default injectIntl(PermissionsEditor);\n"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"src_views_acc-security-view_jsx.dev.js","mappings":"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","sources":["webpack://tinode-webapp/./src/views/acc-security-view.jsx","webpack://tinode-webapp/./src/widgets/permissions-editor.jsx"],"sourcesContent":["// Edit account parameters.\nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from '../widgets/checkbox.jsx';\nimport InPlaceEdit from '../widgets/in-place-edit.jsx';\nimport PermissionsEditor from '../widgets/permissions-editor.jsx';\n\nconst messages = defineMessages({\n delete_account: {\n id: 'delete_account',\n defaultMessage: 'Delete account',\n description: 'Title for delete account warning'\n },\n delete_account_warning: {\n id: 'delete_account_warning',\n defaultMessage: 'Are you sure you want to delete your account? It cannot be undone.',\n description: 'Warning message when deleting an account'\n }\n});\n\nclass AccSecurityView extends React.Component {\n constructor(props) {\n super(props);\n\n const me = this.props.tinode.getMeTopic();\n let blockedCount = 0;\n me.contacts((c) => {\n if (c.acs && !c.acs.isJoiner()) {\n blockedCount ++;\n }\n });\n const defacs = me.getDefaultAccess();\n this.state = {\n auth: defacs ? defacs.auth : null,\n anon: defacs ? defacs.anon : null,\n showPermissionEditorFor: undefined,\n blockedCount: blockedCount,\n };\n\n this.handlePasswordUpdate = this.handlePasswordUpdate.bind(this);\n this.handleLaunchPermissionsEditor = this.handleLaunchPermissionsEditor.bind(this);\n this.handleHidePermissionsEditor = this.handleHidePermissionsEditor.bind(this);\n this.handlePermissionsChanged = this.handlePermissionsChanged.bind(this);\n this.handleDeleteAccount = this.handleDeleteAccount.bind(this);\n this.handleLogoutRequest = this.handleLogoutRequest.bind(this);\n this.handleCheckboxClick = this.handleCheckboxClick.bind(this);\n }\n\n handlePasswordUpdate(pwd) {\n this.setState({password: pwd});\n this.props.onUpdatePassword(pwd);\n }\n\n handleLaunchPermissionsEditor(which) {\n this.setState({\n showPermissionEditorFor: which,\n editedPermissions: this.state[which]\n });\n }\n\n handleHidePermissionsEditor() {\n this.setState({showPermissionEditorFor: undefined});\n }\n\n handlePermissionsChanged(perm) {\n let defacs = {};\n defacs[this.state.showPermissionEditorFor] = perm;\n this.props.onUpdateAccountDesc('me', undefined, undefined, defacs);\n\n let newState = {showPermissionEditorFor: undefined};\n newState[this.state.showPermissionEditorFor] = perm;\n this.setState(newState);\n }\n\n handleCheckboxClick(what, checked) {\n this.props.onToggleIncognitoMode(checked);\n }\n\n handleDeleteAccount(e) {\n e.preventDefault();\n const {formatMessage} = this.props.intl;\n this.props.onShowAlert(\n formatMessage(messages.delete_account), // title\n formatMessage(messages.delete_account_warning), // content\n (_ => this.props.onDeleteAccount()), // onConfirm\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n // \"退出登录\"这个按钮原来是 onClick 里直接 `this.props.onLogout()`,没有任何二次确认——同一个文件里\n // 紧挨着的\"删除帐户\"按钮反而是走 onShowAlert 弹确认框的(见上面 handleDeleteAccount)。本页\n // ('security' 路由)并不是废弃页面:account-settings-view.jsx、info-view.jsx 的\"安全\"入口,以及\n // 第2章系统消息列表里\"前往安全设置\"跳转按钮(message-center-view.jsx)都会真的落到这个页面,\n // 跟 personal-settings-view.jsx 的\"设置\"页(那边的退出登录已经在别的改造里换成了自己的\n // ConfirmSheet/LogoutConfirm)是两条并存的独立路径——用户从系统消息点\"前往安全设置\"进来,单击一下\n // 图标就会被立即退出登录,且没有任何撤销机会。改成跟\"删除帐户\"一样走 onShowAlert,文案与\n // personal-settings-view.jsx 的 LogoutConfirm 保持一致,不新造一套措辞。\n handleLogoutRequest(e) {\n e.preventDefault();\n this.props.onShowAlert(\n '退出登录',\n '确定要退出当前登录吗?',\n (_ => this.props.onLogout()),\n null, // use default text \"OK\"\n true, // Show Reject button\n null // use default text \"Cancel\"\n );\n }\n\n render() {\n return (\n <>{this.state.showPermissionEditorFor ?\n \n :\n
\n
\n \n
\n {\n (password_unchanged) => \n }\n
\n
\n
\n
\n \n \n
\n
\n \n \n \n
\n
\n
\n \n \n \n
\n
\n \n
\n
\n
\n \n
\n
\n
Auth: {this.state.auth}
\n
Anon: {this.state.anon}
\n
\n
\n {this.state.blockedCount > 0 ?\n <>\n \n }\n );\n }\n};\n\nexport default injectIntl(AccSecurityView);\n","// PermissionsEditor: Component for editing permissions\n// \nimport React from 'react';\nimport { FormattedMessage, defineMessages, injectIntl } from 'react-intl';\n\nimport CheckBox from './checkbox.jsx';\nimport Contact from './contact.jsx';\n\nimport { makeImageUrl } from '../lib/blob-helpers.js';\n\n// Translatable permission names.\nconst messages = defineMessages({\n joiner: {\n id: 'permission_join',\n defaultMessage: \"Join ({val})\",\n description: 'Name of J permission'\n },\n reader: {\n id: 'permission_read',\n defaultMessage: \"Read ({val})\",\n description: 'Name of R permission'\n },\n writer: {\n id: 'permission_write',\n defaultMessage: \"Write ({val})\",\n description: 'Name of W permission'\n },\n preser: {\n id: 'permission_pres',\n defaultMessage: \"Get notified ({val})\",\n description: 'Name of P permission'\n },\n approver: {\n id: 'permission_admin',\n defaultMessage: \"Approve ({val})\",\n description: 'Name of A permission'\n },\n sharer: {\n id: 'permission_share',\n defaultMessage: \"Share ({val})\",\n description: 'Name of S permission'\n },\n deleter: {\n id: 'permission_delete',\n defaultMessage: \"Delete ({val})\",\n description: 'Name of D permission'\n },\n owner: {\n id: 'permission_owner',\n defaultMessage: \"Owner ({val})\",\n description: 'Name of O permission'\n }\n});\n\nclass PermissionsEditor extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n mode: (props.mode || '').replace('N', '')\n };\n\n this.handleChange = this.handleChange.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleCancel = this.handleCancel.bind(this);\n }\n\n handleChange(val) {\n let mode = this.state.mode;\n const idx = mode.indexOf(val);\n if (idx == -1) {\n mode += val;\n } else {\n mode = mode.replace(val, '');\n }\n this.setState({mode: mode});\n }\n\n handleSubmit() {\n // Normalize string, otherwise cannot check if mode has changed.\n const mode = (this.state.mode || 'N').split('').sort().join('');\n const before = (this.props.mode || 'N').split('').sort().join('')\n if (mode !== before) {\n this.props.onSubmit(mode);\n } else {\n this.props.onCancel();\n }\n }\n\n handleCancel() {\n this.props.onCancel();\n }\n\n render() {\n const {formatMessage} = this.props.intl;\n const all = 'JRWPASDO';\n const names = {\n 'J': formatMessage(messages.joiner, {val: 'J'}),\n 'R': formatMessage(messages.reader, {val: 'R'}),\n 'W': formatMessage(messages.writer, {val: 'W'}),\n 'P': formatMessage(messages.preser, {val: 'P'}),\n 'A': formatMessage(messages.approver, {val: 'A'}),\n 'S': formatMessage(messages.sharer, {val: 'S'}),\n 'D': formatMessage(messages.deleter, {val: 'D'}),\n 'O': formatMessage(messages.owner, {val: 'O'})\n };\n\n let skip = this.props.skip || '';\n let mode = this.state.mode;\n let compare = (this.props.compare || '').replace('N', '');\n let items = [];\n for (let i=0; i= 0 && mode.indexOf(c) < 0) {\n // Permission is marked as inactive: hide unchecked permissions, disable checked permissions\n continue;\n }\n items.push(\n \n {names[c]}\n {skip.indexOf(c) < 0 ?\n = 0)} onChange={this.handleChange}/>\n :\n = 0)} />\n }{this.props.compare ? \n = 0)}/>\n : null}\n \n );\n }\n\n return (\n
\n {this.props.userTitle ?\n
: null}\n \n \n {this.props.compare ?\n \n \n \n :\n null}\n \n {items}\n
{this.props.modeTitle}{this.props.compareTitle}
\n
\n
\n \n \n
\n
\n );\n }\n};\n\nexport default injectIntl(PermissionsEditor);\n"],"names":[],"sourceRoot":""} \ No newline at end of file