backport of commit 9c8a7422ade1b46f413274c5eb6d5306c9e3e563 (#21665)
Co-authored-by: Angel Garbarino <Monkeychip@users.noreply.github.com>
This commit is contained in:
parent
93d2fc099f
commit
ec7e69adc0
|
@ -0,0 +1,3 @@
|
|||
```release-note:bug
|
||||
ui: Surface DOMException error when browser settings prevent localStorage.
|
||||
```
|
|
@ -4,8 +4,22 @@
|
|||
*/
|
||||
|
||||
export default {
|
||||
isLocalStorageSupported() {
|
||||
try {
|
||||
const key = `__storage__test`;
|
||||
window.localStorage.setItem(key, null);
|
||||
window.localStorage.removeItem(key);
|
||||
return true;
|
||||
} catch (e) {
|
||||
// modify the e object so we can customize the error message.
|
||||
// e.message is readOnly.
|
||||
e.errors = [`This is likely due to your browser's cookie settings.`];
|
||||
throw e;
|
||||
}
|
||||
},
|
||||
|
||||
getItem(key) {
|
||||
var item = window.localStorage.getItem(key);
|
||||
const item = window.localStorage.getItem(key);
|
||||
return item && JSON.parse(item);
|
||||
},
|
||||
|
||||
|
|
|
@ -10,6 +10,7 @@ import Route from '@ember/routing/route';
|
|||
import { task, timeout } from 'ember-concurrency';
|
||||
import Ember from 'ember';
|
||||
import getStorage from '../../lib/token-storage';
|
||||
import localStorage from 'vault/lib/local-storage';
|
||||
import ClusterRoute from 'vault/mixins/cluster-route';
|
||||
import ModelBoundaryRoute from 'vault/mixins/model-boundary-route';
|
||||
|
||||
|
@ -87,6 +88,9 @@ export default Route.extend(ModelBoundaryRoute, ClusterRoute, {
|
|||
},
|
||||
|
||||
model(params) {
|
||||
// if a user's browser settings block localStorage they will be unable to use Vault. The method will throw the error and the rest of the application will not load.
|
||||
localStorage.isLocalStorageSupported();
|
||||
|
||||
const id = this.getClusterId(params);
|
||||
return this.store.findRecord('cluster', id);
|
||||
},
|
||||
|
|
Loading…
Reference in New Issue