mirror of
https://github.com/element-hq/element-web
synced 2024-11-27 03:36:07 +03:00
Show terms modal when inviting by email
This invokes the terms modal flow when inviting someone by email. Entering an email triggers a lookup to the IS, and if it has terms you need to agree to, then a separate modal is shown to complete this activity. You then come back to invite screen after agreeing to the terms. Fixes https://github.com/vector-im/riot-web/issues/10093
This commit is contained in:
parent
7bb1e503cb
commit
348f6f971a
1 changed files with 17 additions and 1 deletions
|
@ -14,7 +14,10 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
import * as Matrix from 'matrix-js-sdk';
|
||||
|
||||
import MatrixClientPeg from './MatrixClientPeg';
|
||||
import { Service, startTermsFlow } from './Terms';
|
||||
|
||||
export default class IdentityAuthClient {
|
||||
constructor() {
|
||||
|
@ -57,7 +60,20 @@ export default class IdentityAuthClient {
|
|||
}
|
||||
|
||||
async _checkToken(token) {
|
||||
await MatrixClientPeg.get().getIdentityAccount(token);
|
||||
try {
|
||||
await MatrixClientPeg.get().getIdentityAccount(token);
|
||||
} catch (e) {
|
||||
if (e.errcode === "M_TERMS_NOT_SIGNED") {
|
||||
console.log("Identity Server requires new terms to be agreed to");
|
||||
await startTermsFlow([new Service(
|
||||
Matrix.SERVICE_TYPES.IS,
|
||||
MatrixClientPeg.get().idBaseUrl,
|
||||
token,
|
||||
)]);
|
||||
return;
|
||||
}
|
||||
throw e;
|
||||
}
|
||||
|
||||
// We should ensure the token in `localStorage` is cleared
|
||||
// appropriately. We already clear storage on sign out, but we'll need
|
||||
|
|
Loading…
Reference in a new issue