From 15d4bc9d6d894c897e16b769c4ea0b42c003c89d Mon Sep 17 00:00:00 2001 From: Jaco Greeff Date: Mon, 3 Jul 2017 10:03:29 +0200 Subject: [PATCH] Save permissions (#5970) --- js/src/shell/DappMethods/store.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/js/src/shell/DappMethods/store.js b/js/src/shell/DappMethods/store.js index 20347955b..7ab6e631d 100644 --- a/js/src/shell/DappMethods/store.js +++ b/js/src/shell/DappMethods/store.js @@ -15,17 +15,24 @@ // along with Parity. If not, see . import { action, observable } from 'mobx'; +import store from 'store'; import { sha3 } from '@parity/api/util/sha3'; import filteredRequests from '../DappRequests/filteredRequests'; +const LS_PERMISSIONS = '_parity::dapps::methods'; + export default class Store { @observable filteredRequests = Object.keys(filteredRequests); @observable modalOpen = false; @observable permissions = {}; @observable tokens = {}; + constructor () { + this.permissions = store.get(LS_PERMISSIONS) || {}; + } + @action closeModal = () => { this.modalOpen = false; } @@ -50,6 +57,7 @@ export default class Store { this.permissions = Object.assign({}, this.permissions, { [id]: true }); + this.savePermissions(); } @action toggleAppPermission = (method, appId) => { @@ -58,6 +66,7 @@ export default class Store { this.permissions = Object.assign({}, this.permissions, { [id]: !this.permissions[id] }); + this.savePermissions(); } hasTokenPermission = (method, token) => { @@ -68,6 +77,10 @@ export default class Store { return this.permissions[`${method}:${appId}`] || false; } + savePermissions = () => { + store.set(LS_PERMISSIONS, this.permissions); + } + static instance = null; static get () {