diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/status/status.vue | 1 | ||||
| -rw-r--r-- | src/modules/users.js | 37 | ||||
| -rw-r--r-- | src/services/entity_normalizer/entity_normalizer.service.js | 3 | ||||
| -rw-r--r-- | src/services/new_api/oauth.js | 17 | ||||
| -rw-r--r-- | src/services/version/version.service.js | 2 |
5 files changed, 50 insertions, 10 deletions
diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 6f7f826b..30969256 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -694,6 +694,7 @@ $status-margin: 0.75em; .status-content { font-family: var(--postFont, sans-serif); line-height: 1.4em; + white-space: pre-wrap; img, video { max-width: 100%; diff --git a/src/modules/users.js b/src/modules/users.js index d06e77c7..6c7a96f6 100644 --- a/src/modules/users.js +++ b/src/modules/users.js @@ -1,5 +1,6 @@ import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js' import userSearchApi from '../services/new_api/user_search.js' +import oauthApi from '../services/new_api/oauth.js' import { compact, map, each, merge, last, concat, uniq } from 'lodash' import { set } from 'vue' import { registerPushNotifications, unregisterPushNotifications } from '../services/push/push.js' @@ -397,14 +398,34 @@ const users = { }, logout (store) { - store.commit('clearCurrentUser') - store.dispatch('disconnectFromChat') - store.commit('clearToken') - store.dispatch('stopFetching', 'friends') - store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken())) - store.dispatch('stopFetching', 'notifications') - store.commit('clearNotifications') - store.commit('resetStatuses') + const { oauth, instance } = store.rootState + + const data = { + ...oauth, + commit: store.commit, + instance: instance.server + } + + return oauthApi.getOrCreateApp(data) + .then((app) => { + const params = { + app, + instance: data.instance, + token: oauth.userToken + } + + return oauthApi.revokeToken(params) + }) + .then(() => { + store.commit('clearCurrentUser') + store.dispatch('disconnectFromChat') + store.commit('clearToken') + store.dispatch('stopFetching', 'friends') + store.commit('setBackendInteractor', backendInteractorService(store.getters.getToken())) + store.dispatch('stopFetching', 'notifications') + store.commit('clearNotifications') + store.commit('resetStatuses') + }) }, loginUser (store, accessToken) { return new Promise((resolve, reject) => { diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js index 9af71e4f..df6747a6 100644 --- a/src/services/entity_normalizer/entity_normalizer.service.js +++ b/src/services/entity_normalizer/entity_normalizer.service.js @@ -70,6 +70,9 @@ export const parseUser = (data) => { output.muted = relationship.muting } + output.hide_follows = data.pleroma.hide_follows + output.hide_followers = data.pleroma.hide_followers + output.rights = { moderator: data.pleroma.is_moderator, admin: data.pleroma.is_admin diff --git a/src/services/new_api/oauth.js b/src/services/new_api/oauth.js index 0767ccf8..d0d18c03 100644 --- a/src/services/new_api/oauth.js +++ b/src/services/new_api/oauth.js @@ -125,13 +125,28 @@ const verifyRecoveryCode = ({ app, instance, mfaToken, code }) => { }).then((data) => data.json()) } +const revokeToken = ({ app, instance, token }) => { + const url = `${instance}/oauth/revoke` + const form = new window.FormData() + + form.append('client_id', app.clientId) + form.append('client_secret', app.clientSecret) + form.append('token', token) + + return window.fetch(url, { + method: 'POST', + body: form + }).then((data) => data.json()) +} + const oauth = { login, getToken, getTokenWithCredentials, getOrCreateApp, verifyOTPCode, - verifyRecoveryCode + verifyRecoveryCode, + revokeToken } export default oauth diff --git a/src/services/version/version.service.js b/src/services/version/version.service.js index a750b0dd..2e11bf3a 100644 --- a/src/services/version/version.service.js +++ b/src/services/version/version.service.js @@ -1,6 +1,6 @@ export const extractCommit = versionString => { - const regex = /-g(\w+)$/i + const regex = /-g(\w+)/i const matches = versionString.match(regex) return matches ? matches[1] : '' } |
