瀏覽代碼

- Try to have some progress on Wekan Sandstorm API. I did not get it fully working yet.

Thanks to xet7.
Lauri Ojansivu 6 年之前
父節點
當前提交
be03a191c4
共有 2 個文件被更改,包括 22 次插入1 次删除
  1. 1 1
      sandstorm-pkgdef.capnp
  2. 21 0
      server/authentication.js

+ 1 - 1
sandstorm-pkgdef.capnp

@@ -226,7 +226,7 @@ const pkgdef :Spk.PackageDefinition = (
         verbPhrase = (defaultText = "removed from card"),
         verbPhrase = (defaultText = "removed from card"),
       ), ],
       ), ],
     ),
     ),
-    apiPath = "/",
+    apiPath = "/api",
     saveIdentityCaps = true,
     saveIdentityCaps = true,
   ),
   ),
 );
 );

+ 21 - 0
server/authentication.js

@@ -16,6 +16,27 @@ Meteor.startup(() => {
   Authentication = {};
   Authentication = {};
 
 
   Authentication.checkUserId = function (userId) {
   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) {
     if (userId === undefined) {
       const error = new Meteor.Error('Unauthorized', 'Unauthorized');
       const error = new Meteor.Error('Unauthorized', 'Unauthorized');
       error.statusCode = 401;
       error.statusCode = 401;