Merge pull request #2212 from ethereum/plugin-permissions

Improve Plugin permissions + Use emit function from plugin
pull/1/head
yann300 6 years ago committed by GitHub
commit 3d2594faf8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      src/app/components/side-panel.js
  2. 4
      src/app/components/vertical-icons.js
  3. 14
      src/app/files/fileManager.js
  4. 2
      src/app/tabs/theme-module.js
  5. 8
      src/app/ui/persmission-handler.js

@ -73,16 +73,22 @@ export class SidePanel extends AbstractPanel {
verticalIcons.events.on('toggleContent', (name) => { verticalIcons.events.on('toggleContent', (name) => {
if (!this.contents[name]) return if (!this.contents[name]) return
if (this.active === name) { if (this.active === name) {
// TODO: Only keep `this.emit` (issue#2210)
this.emit('toggle', name)
this.events.emit('toggle', name) this.events.emit('toggle', name)
return return
} }
this.showContent(name) this.showContent(name)
// TODO: Only keep `this.emit` (issue#2210)
this.emit('showing', name)
this.events.emit('showing', name) this.events.emit('showing', name)
}) })
// Force opening // Force opening
verticalIcons.events.on('showContent', (name) => { verticalIcons.events.on('showContent', (name) => {
if (!this.contents[name]) return if (!this.contents[name]) return
this.showContent(name) this.showContent(name)
// TODO: Only keep `this.emit` (issue#2210)
this.emit('showing', name)
this.events.emit('showing', name) this.events.emit('showing', name)
}) })
} }

@ -187,6 +187,8 @@ export class VerticalIcons extends Plugin {
*/ */
select (name) { select (name) {
this.updateActivations(name) this.updateActivations(name)
// TODO: Only keep `this.emit` (issue#2210)
this.emit('showContent', name)
this.events.emit('showContent', name) this.events.emit('showContent', name)
} }
@ -196,6 +198,8 @@ export class VerticalIcons extends Plugin {
*/ */
toggle (name) { toggle (name) {
this.updateActivations(name) this.updateActivations(name)
// TODO: Only keep `this.emit` (issue#2210)
this.emit('toggleContent', name)
this.events.emit('toggleContent', name) this.events.emit('toggleContent', name)
} }

@ -85,6 +85,8 @@ class FileManager extends Plugin {
this.switchFile(newFocus) this.switchFile(newFocus)
} }
} }
// TODO: Only keep `this.emit` (issue#2210)
this.emit('fileRenamed', oldName, newName)
this.events.emit('fileRenamed', oldName, newName) this.events.emit('fileRenamed', oldName, newName)
} }
@ -104,8 +106,12 @@ class FileManager extends Plugin {
delete this.openedFiles[name] delete this.openedFiles[name]
if (!Object.keys(this.openedFiles).length) { if (!Object.keys(this.openedFiles).length) {
this._deps.config.set('currentFile', '') this._deps.config.set('currentFile', '')
// TODO: Only keep `this.emit` (issue#2210)
this.emit('noFileSelected')
this.events.emit('noFileSelected') this.events.emit('noFileSelected')
} }
// TODO: Only keep `this.emit` (issue#2210)
this.emit('fileClosed', name)
this.events.emit('fileClosed', name) this.events.emit('fileClosed', name)
} }
@ -234,6 +240,8 @@ class FileManager extends Plugin {
} }
this.editor.discard(path) this.editor.discard(path)
delete this.openedFiles[path] delete this.openedFiles[path]
// TODO: Only keep `this.emit` (issue#2210)
this.emit('fileRemoved', path)
this.events.emit('fileRemoved', path) this.events.emit('fileRemoved', path)
this.switchFile() this.switchFile()
} }
@ -241,6 +249,8 @@ class FileManager extends Plugin {
unselectCurrentFile () { unselectCurrentFile () {
this.saveCurrentFile() this.saveCurrentFile()
this._deps.config.set('currentFile', '') this._deps.config.set('currentFile', '')
// TODO: Only keep `this.emit` (issue#2210)
this.emit('noFileSelected')
this.events.emit('noFileSelected') this.events.emit('noFileSelected')
} }
@ -258,6 +268,8 @@ class FileManager extends Plugin {
} else { } else {
this.editor.open(file, content) this.editor.open(file, content)
} }
// TODO: Only keep `this.emit` (issue#2210)
this.emit('currentFileChanged', file)
this.events.emit('currentFileChanged', file) this.events.emit('currentFileChanged', file)
} }
}) })
@ -271,6 +283,8 @@ class FileManager extends Plugin {
if (fileList.length) { if (fileList.length) {
_switchFile(browserProvider.type + '/' + fileList[0]) _switchFile(browserProvider.type + '/' + fileList[0])
} else { } else {
// TODO: Only keep `this.emit` (issue#2210)
this.emit('noFileSelected')
this.events.emit('noFileSelected') this.events.emit('noFileSelected')
} }
}) })

@ -60,6 +60,8 @@ export class ThemeModule extends Plugin {
document.getElementById('theme-link').setAttribute('href', nextTheme.url) document.getElementById('theme-link').setAttribute('href', nextTheme.url)
document.documentElement.style.setProperty('--theme', nextTheme.quality) document.documentElement.style.setProperty('--theme', nextTheme.quality)
if (themeName) this.active = themeName if (themeName) this.active = themeName
// TODO: Only keep `this.emit` (issue#2210)
this.emit('themeChanged', nextTheme)
this.events.emit('themeChanged', nextTheme) this.events.emit('themeChanged', nextTheme)
} }
} }

@ -78,7 +78,7 @@ export class PermissionHandler {
} }
this.persistPermissions() this.persistPermissions()
} }
resolve() resolve(true)
} }
}, },
{ {
@ -105,6 +105,7 @@ export class PermissionHandler {
* @returns {Promise<boolean>} * @returns {Promise<boolean>}
*/ */
async askPermission (from, to) { async askPermission (from, to) {
try {
this.permissions = this._getFromLocal() this.permissions = this._getFromLocal()
if (!this.permissions[to.name]) this.permissions[to.name] = {} if (!this.permissions[to.name]) this.permissions[to.name] = {}
if (!this.permissions[to.name][from.name]) return this.openPermission(from, to) if (!this.permissions[to.name][from.name]) return this.openPermission(from, to)
@ -113,11 +114,14 @@ export class PermissionHandler {
if (!allow) { if (!allow) {
const warning = notAllowWarning(from, to) const warning = notAllowWarning(from, to)
addTooltip(warning) addTooltip(warning)
throw new Error(warning) return false
} }
return hash === from.hash return hash === from.hash
? true // Allow ? true // Allow
: this.openPermission(from, to) // New version of a plugin : this.openPermission(from, to) // New version of a plugin
} catch (err) {
throw new Error(err)
}
} }
/** /**

Loading…
Cancel
Save