From 23ba385433bd5d37150897a6888ff451a636b3d0 Mon Sep 17 00:00:00 2001 From: Marcos Defendi Date: Tue, 22 Oct 2019 16:04:08 -0300 Subject: [PATCH] Replace personalAccessTokens publication by REST --- .../client/personalAccessTokens.js | 25 +++++++++++-------- .../publications/personalAccessTokens.js | 1 + 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/imports/personal-access-tokens/client/personalAccessTokens.js b/imports/personal-access-tokens/client/personalAccessTokens.js index 3216f4ddb02f..a327768d6755 100644 --- a/imports/personal-access-tokens/client/personalAccessTokens.js +++ b/imports/personal-access-tokens/client/personalAccessTokens.js @@ -1,5 +1,4 @@ import { Meteor } from 'meteor/meteor'; -import { Mongo } from 'meteor/mongo'; import { ReactiveVar } from 'meteor/reactive-var'; import { Tracker } from 'meteor/tracker'; import { Template } from 'meteor/templating'; @@ -9,17 +8,20 @@ import moment from 'moment'; import { t } from '../../../app/utils'; import { modal, SideNav } from '../../../app/ui-utils'; import { hasAllPermission } from '../../../app/authorization'; - import './personalAccessTokens.html'; +import { APIClient } from '../../../app/utils/client'; -const PersonalAccessTokens = new Mongo.Collection('personal_access_tokens'); +const loadTokens = async (instance) => { + const { tokens } = await APIClient.v1.get('users.getPersonalAccessTokens'); + instance.personalAccessTokens.set(tokens); +}; Template.accountTokens.helpers({ isAllowed() { return hasAllPermission(['create-personal-access-tokens']); }, tokens() { - return (PersonalAccessTokens.find({}).fetch()[0] && PersonalAccessTokens.find({}).fetch()[0].tokens) || []; + return Template.instance().personalAccessTokens.get(); }, dateFormated(date) { return moment(date).format('L LT'); @@ -50,10 +52,11 @@ Template.accountTokens.events({ return toastr.error(t(error.error)); } showSuccessModal(token); + loadTokens(instance); instance.find('#tokenName').value = ''; }); }, - 'click .remove-personal-access-token'() { + 'click .remove-personal-access-token'(e, instance) { modal.open({ title: t('Are_you_sure'), text: t('API_Personal_Access_Tokens_Remove_Modal'), @@ -71,11 +74,12 @@ Template.accountTokens.events({ if (error) { return toastr.error(t(error.error)); } + loadTokens(instance); toastr.success(t('Removed')); }); }); }, - 'click .regenerate-personal-access-token'() { + 'click .regenerate-personal-access-token'(e, instance) { modal.open({ title: t('Are_you_sure'), text: t('API_Personal_Access_Tokens_Regenerate_Modal'), @@ -93,6 +97,7 @@ Template.accountTokens.events({ if (error) { return toastr.error(t(error.error)); } + loadTokens(instance); showSuccessModal(token); }); }); @@ -100,11 +105,9 @@ Template.accountTokens.events({ }); Template.accountTokens.onCreated(function() { - this.ready = new ReactiveVar(true); - const subscription = this.subscribe('personalAccessTokens'); - this.autorun(() => { - this.ready.set(subscription.ready()); - }); + this.personalAccessTokens = new ReactiveVar([]); + + loadTokens(this); }); Template.accountTokens.onRendered(function() { diff --git a/imports/personal-access-tokens/server/publications/personalAccessTokens.js b/imports/personal-access-tokens/server/publications/personalAccessTokens.js index cff965bd494d..46949eaf690d 100644 --- a/imports/personal-access-tokens/server/publications/personalAccessTokens.js +++ b/imports/personal-access-tokens/server/publications/personalAccessTokens.js @@ -3,6 +3,7 @@ import { Meteor } from 'meteor/meteor'; import { hasPermission } from '../../../../app/authorization'; import { Users } from '../../../../app/models'; +console.warn('The publication "personalAccessTokens" is deprecated and will be removed after version v3.0.0'); Meteor.publish('personalAccessTokens', function() { if (!this.userId) { return this.ready();