diff --git a/src/app/ui/persmission-handler.js b/src/app/ui/persmission-handler.js index 302df47783..dea16694c4 100644 --- a/src/app/ui/persmission-handler.js +++ b/src/app/ui/persmission-handler.js @@ -78,7 +78,7 @@ export class PermissionHandler { } this.persistPermissions() } - resolve() + resolve(true) } }, { @@ -105,19 +105,23 @@ export class PermissionHandler { * @returns {Promise} */ async askPermission (from, to) { - this.permissions = this._getFromLocal() - if (!this.permissions[to.name]) this.permissions[to.name] = {} - if (!this.permissions[to.name][from.name]) return this.openPermission(from, to) - - const { allow, hash } = this.permissions[to.name][from.name] - if (!allow) { - const warning = notAllowWarning(from, to) - addTooltip(warning) - throw new Error(warning) + try { + this.permissions = this._getFromLocal() + if (!this.permissions[to.name]) this.permissions[to.name] = {} + if (!this.permissions[to.name][from.name]) return this.openPermission(from, to) + + const { allow, hash } = this.permissions[to.name][from.name] + if (!allow) { + const warning = notAllowWarning(from, to) + addTooltip(warning) + throw new Error(warning) + } + return hash === from.hash + ? true // Allow + : this.openPermission(from, to) // New version of a plugin + } catch (err) { + return false } - return hash === from.hash - ? true // Allow - : this.openPermission(from, to) // New version of a plugin } /**