diff options
author | elijah <elijah@riseup.net> | 2017-02-28 22:12:09 -0600 |
---|---|---|
committer | elijah <elijah@riseup.net> | 2017-02-28 22:12:31 -0600 |
commit | 4a5e181138e4ccd324d33426f3903825c178af48 (patch) | |
tree | bcaaa8eda80bd783b720e493d9b1919c614903a9 /ui/app/models | |
parent | bcfd0c7fd461876d080bca14ed4d038837834f02 (diff) |
[bug] correctly determine available services in the ui
Diffstat (limited to 'ui/app/models')
-rw-r--r-- | ui/app/models/account.js | 14 | ||||
-rw-r--r-- | ui/app/models/dummy_account.js | 33 | ||||
-rw-r--r-- | ui/app/models/provider.js | 8 |
3 files changed, 20 insertions, 35 deletions
diff --git a/ui/app/models/account.js b/ui/app/models/account.js index 3656d2c..1477360 100644 --- a/ui/app/models/account.js +++ b/ui/app/models/account.js @@ -4,6 +4,7 @@ // import bitmask from 'lib/bitmask' +import Provider from 'models/provider' export default class Account { @@ -46,8 +47,17 @@ export default class Account { return this._authenticated } - get hasEmail() { - return true + getProvider() { + if (this.provider) { + return new Promise((resolve, reject) => { + resolve(this.provider) + }) + } else { + return Provider.get(this.domain).then(provider => { + this.provider = provider + return provider + }) + } } // diff --git a/ui/app/models/dummy_account.js b/ui/app/models/dummy_account.js deleted file mode 100644 index 99fb662..0000000 --- a/ui/app/models/dummy_account.js +++ /dev/null @@ -1,33 +0,0 @@ -// -// A proxy of an account, but with a different ID. For testing. -// - -import bitmask from 'lib/bitmask' - -export default class DummyAccount { - - constructor(account) { - this.account = account - } - - get id() { - return 'dummy--' + this.account.address - } - - get domain() {return this.account.domain} - get address() {return this.account.address} - get userpart() {return this.account.userpart} - get authenticated() {return this.account.authenticated} - get hasEmail() {return this.account.hasEmail} - login(password) {return this.account.login(password)} - - logout() { - return bitmask.bonafide.user.logout(this.address).then( - response => { - this._authenticated = false - this._address = '@' + this.domain - return this - } - ) - } -} diff --git a/ui/app/models/provider.js b/ui/app/models/provider.js index 2ed2dc8..af63433 100644 --- a/ui/app/models/provider.js +++ b/ui/app/models/provider.js @@ -23,6 +23,14 @@ export default class Provider { return this._description[LOCALE] } + get hasEmail() { + return this.services.includes("mx") + } + + get hasVPN() { + return this.services.includes("openvpn") + } + static setup(domain) { return bitmask.bonafide.provider.create(domain).then( response => { |