From be03a191c4321c2f80116c0ee1ae6c826d882535 Mon Sep 17 00:00:00 2001 From: Lauri Ojansivu Date: Sun, 27 Jan 2019 18:16:27 +0200 Subject: - Try to have some progress on Wekan Sandstorm API. I did not get it fully working yet. Thanks to xet7. --- sandstorm-pkgdef.capnp | 2 +- server/authentication.js | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/sandstorm-pkgdef.capnp b/sandstorm-pkgdef.capnp index df483323..0e269034 100644 --- a/sandstorm-pkgdef.capnp +++ b/sandstorm-pkgdef.capnp @@ -226,7 +226,7 @@ const pkgdef :Spk.PackageDefinition = ( verbPhrase = (defaultText = "removed from card"), ), ], ), - apiPath = "/", + apiPath = "/api", saveIdentityCaps = true, ), ); diff --git a/server/authentication.js b/server/authentication.js index 4d3cc53e..d0d71e4d 100644 --- a/server/authentication.js +++ b/server/authentication.js @@ -16,6 +16,27 @@ Meteor.startup(() => { Authentication = {}; Authentication.checkUserId = function (userId) { + if (userId === undefined) { + // Monkey patch to work around the problem described in + // https://github.com/sandstorm-io/meteor-accounts-sandstorm/pull/31 + const _httpMethods = HTTP.methods; + HTTP.methods = (newMethods) => { + Object.keys(newMethods).forEach((key) => { + if (newMethods[key].auth) { + newMethods[key].auth = function() { + const sandstormID = this.req.headers['x-sandstorm-user-id']; + const user = Meteor.users.findOne({'services.sandstorm.id': sandstormID}); + if (user) { + userId = user._id; + } + //return user && user._id; + }; + } + }); + _httpMethods(newMethods); + }; + } + if (userId === undefined) { const error = new Meteor.Error('Unauthorized', 'Unauthorized'); error.statusCode = 401; -- cgit v1.2.3-1-g7c22