diff options
Diffstat (limited to 'apps/updatenotification/src/components/root.vue')
-rw-r--r-- | apps/updatenotification/src/components/root.vue | 43 |
1 files changed, 15 insertions, 28 deletions
diff --git a/apps/updatenotification/src/components/root.vue b/apps/updatenotification/src/components/root.vue index 351fe947765..2ffae336130 100644 --- a/apps/updatenotification/src/components/root.vue +++ b/apps/updatenotification/src/components/root.vue @@ -251,34 +251,21 @@ clickUpdaterButton: function() { $.ajax({ url: OC.generateUrl('/apps/updatenotification/credentials') - }).success(function(data) { - $.ajax({ - url: OC.getRootPath()+'/updater/', - headers: { - 'X-Updater-Auth': data - }, - method: 'POST', - success: function(data){ - if(data !== 'false') { - var body = $('body'); - $('head').remove(); - body.html(data); - - // Eval the script elements in the response - var dom = $(data); - dom.filter('script').each(function() { - eval(this.text || this.textContent || this.innerHTML || ''); - }); - - body.removeAttr('id'); - body.attr('id', 'body-settings'); - } - }, - error: function() { - OC.Notification.showTemporary(t('updatenotification', 'Could not start updater, please try the manual update')); - this.updaterEnabled = false; - }.bind(this) - }); + }).success(function(token) { + // create a form to send a proper post request to the updater + var form = document.createElement('form'); + form.setAttribute('method', 'post'); + form.setAttribute('action', OC.getRootPath() + '/updater/'); + + var hiddenField = document.createElement('input'); + hiddenField.setAttribute('type', 'hidden'); + hiddenField.setAttribute('name', 'updater-secret-input'); + hiddenField.setAttribute('value', token); + + form.appendChild(hiddenField); + + document.body.appendChild(form); + form.submit(); }.bind(this)); }, changeReleaseChannel: function() { |