diff options
author | Lauri Ojansivu <x@xet7.org> | 2019-01-27 18:16:27 +0200 |
---|---|---|
committer | Lauri Ojansivu <x@xet7.org> | 2019-01-27 18:16:27 +0200 |
commit | be03a191c4321c2f80116c0ee1ae6c826d882535 (patch) | |
tree | 530d1d7db47d30456106b6f3ea1d54d356303c07 | |
parent | cf7d3b5a7ea7043eb454f7c3330f2c316957b3dc (diff) | |
download | wekan-be03a191c4321c2f80116c0ee1ae6c826d882535.tar.gz wekan-be03a191c4321c2f80116c0ee1ae6c826d882535.tar.bz2 wekan-be03a191c4321c2f80116c0ee1ae6c826d882535.zip |
- Try to have some progress on Wekan Sandstorm API. I did not get it fully working yet.
Thanks to xet7.
-rw-r--r-- | sandstorm-pkgdef.capnp | 2 | ||||
-rw-r--r-- | server/authentication.js | 21 |
2 files changed, 22 insertions, 1 deletions
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 @@ -17,6 +17,27 @@ Meteor.startup(() => { 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; throw error; |